Error while running Tvm on Android with OpenCL

@tqchen
Am trying to run android rpc test script (https://github.com/dmlc/tvm/tree/master/apps/android_rpc) "Build with OpenCL" with my following environment with OpenCL enable in make/config.mk.
Environment :
Laptop::
Description:	Ubuntu 17.10
Release:	17.10
Target::
Huawei Mate 9
Mali G71 GPU
Error :
xxxxxxx@Dayananda:~/shared-windows7/nnvm/nnvm/tvm/apps/android_rpc$ python tests/android_rpc_test.py
TVM: Initializing cython mode...
[16:03:39] src/runtime/opencl/opencl_device_api.cc:190: No OpenCL platform matched given existing options ...
Traceback (most recent call last):
  File "tests/android_rpc_test.py", line 75, in <module>
    test_rpc_module()
  File "tests/android_rpc_test.py", line 34, in test_rpc_module
    f = tvm.build(s, [A, B], "opencl", target_host=target, name="myadd")
  File "/home/xxxxxxx/.local/lib/python3.6/site-packages/tvm-0.2.0-py3.6-linux-x86_64.egg/tvm/build_module.py", line 449, in build
    mdev = codegen.build_module(fdevice, str(target_device))
  File "/home/xxxxxxx/.local/lib/python3.6/site-packages/tvm-0.2.0-py3.6-linux-x86_64.egg/tvm/codegen.py", line 20, in build_module
    return _Build(lowered_func, target)
  File "/home/xxxxxxx/.local/lib/python3.6/site-packages/tvm-0.2.0-py3.6-linux-x86_64.egg/tvm/_ffi/function.py", line 255, in my_api_func
    return flocal(*args)
  File "tvm/_ffi/_cython/./function.pxi", line 264, in core.FunctionBase.__call__
  File "tvm/_ffi/_cython/./function.pxi", line 213, in core.FuncCall
  File "tvm/_ffi/_cython/./function.pxi", line 205, in core.FuncCall3
  File "tvm/_ffi/_cython/./base.pxi", line 131, in core.CALL
tvm._ffi.base.TVMError: b'[16:03:39] src/runtime/opencl/opencl_module.cc:94: Check failed: workspace_->context != nullptr No OpenCL device

Note : For compilation success purpose libOpenCl.so is pointing with "/usr/lib/x86_64-linux-gnu/libOpenCL.so.1"
Questions::

How to resolve this problem?
"Build with OpenCL" tutorial i couldn't find any much information related to OpenCl installation??
Why tvm.build is depending on host libOpenCl.so?

tvm.build with CPU  is success but tvm.build with OPENCL is failure.

TVM uses a cross compiler. For android, you will need to download specific OpenCL library from the vendor or find it in your phone.

@tqchen
phone libOpenCl.so  is not compatible when we are trying to compile tvm with phone libOpenCl.so. So couldn't figure to resolve this problem.

You don't have to build tvm itself with OpenCL library on phone. Instead, try link the final of compiled library to the phone OpenCL

@tqchen
am facing above error which i mentioned in first post of this thread.

f = tvm.build(s, [A, B], "opencl", target_host=target, name="myadd")
why this depend on OpenCl device while building on respective target? if in case depend where to configure to resolve this problem?

it is fine to build your host code without opencl support, by setting USE_OPENCL=0 while still being able to cross compile to opencl

@tqchen
you mean to be while building host code with target USE_OPENCL=0 and later cross compile host compiled  library and deploy on target host?
if in that case what could be the reason to enable USE_OPENCL=1 under Build with OpenCL and run test script code here

@tqchen
Thanks for your feedback, i understand the OPENCL macro in depth with android application.
Addition to this am not able to load DlTemsor.data from my input image running TVM standalone (excpet RPC)., from this reference code will you please provide how "cat.bin" is created??
    std::ifstream data_fin("cat.bin", std::ios::binary);
    data_fin.read(static_cast<char*>(x->data), 3 * 224 * 224 * 4);

You can ignore cat.bin as that is the image data. You can simply create your own TVMArray in java and feed it to TVM

Do we need to add topi compute and schedule in CPP to support for running in Android device with OpenCL? or the ones with python alone can work fine?

Please I don't know how to link the opencl library for RK3288.
"The cross compiled library: runs on your phone, this must be built with USE_OPENCL=1, and link to proper opencl library on your phone"
Help


Client Server Program each running as a Container Not Able to Communicate with each Other Using POSIX Socket API

BUG REPORT INFORMATION
Issue Description with Steps to Reproduce:
I have a Server program written in C++ ,using posix Socket API. The Dockerfile used for building the Server image is:
$ cat Dockerfile
FROM gcc:4.9
WORKDIR /home/vikrana
COPY . .
EXPOSE 1001
RUN g++ -o testcplusplus testprogram.cpp
ENV PATH /home/vikrana:$PATH
ENTRYPOINT ["testcplusplus", "1001"]

Below is the link for the Server program written in C++.
testprogram.txt
Following is the Docker command I am using to run my server program in the container:
$ docker run --net=user_def_nw -ti -P --name server1 my-server-app

On running above command the container gets attached with user_def_nw and an IP address "<IP_ADDRESS>" is assigned to the container, which is always is the case. The same IP address I have used in my server program cpp file.
Command to  identify the host port where the container server1 is listening for any incoming request
$ docker port server1
1001/tcp -> <IP_ADDRESS>:32768

On the other hand following are the details of my Client program written in C++ using posix Socket API.
DockerFile to create client image:
$ cat Dockerfile
FROM gcc:4.9
WORKDIR /home/vikrana
COPY . .
RUN g++ -o testcplusplus testclientprogram.cpp
ENV PATH /home/vikrana:$PATH
ENTRYPOINT ["testcplusplus", "<IP_ADDRESS>", "1001"]

Below is the link for the Client program:
testclientprogram.txt
Following is the Docker command I am using to run my client program in the container:
$ docker run --net=user_def_nw -ti --name cli1 my-client-app

On running the above command it is noticed Client is not able to connect to the server at IP: <IP_ADDRESS> listening at port 1001.
The error code return my the connect API is "111" which means, connection refused.
My understanding is since both the containers namely server1 and cli1 are attached to the same user defined network "user_def_nw" bridge network, they should be able to communicate with each other over Socket. But here connect API itself is failing to establish connection with the Server.
Please help me out in solving this issue.
Note: My client and server program are written in C++.
Output of docker version:
$ docker version
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 21:49:11 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 21:49:11 2016
 OS/Arch:      linux/amd64

Output of docker info:
$ docker info
Containers: 31
 Running: 0
 Paused: 0
 Stopped: 31
Images: 209
Server Version: 1.10.3
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 190
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: null host bridge
Kernel Version: 4.1.19-boot2docker
Operating System: Boot2Docker 1.10.3 (TCL 6.4.1); master : 625117e - Thu Mar 10
22:09:02 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.1 MiB
Name: default
ID: NKOP:JPNZ:6X7J:SZHG:YUNP:35JK:JWT5:4KME:ANGS:FJQD:I6RR:YO3L
Debug mode (server): true
 File Descriptors: 10
 Goroutines: 22
 System Time: 2016-05-23T11:45:46.31574063Z
 EventsListeners: 0
 Init SHA1:
 Init Path: /usr/local/bin/docker
 Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
 provider=virtualbox

Additional environment details (AWS, VirtualBox, physical, etc.):
I have setup a Docker in Windows 7 machine.
My Docker Host is running on VM installed in Windows as part of Docker installation setup.
Please help me out in solving this issue.
Let me know if any more additional information is required about my environment.

First of all, you should not rely on those ip-addresses as they are random. For user-defined networks, simply connect using the name of the container, or an alias if you provided this
For example
docker network create my-network
docker run -d --net my-network --name myserver nginx:alpine

docker run -it --rm --net my-network --name myclient alpine sh
/ # ping -c3 myserver
PING myserver (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=64 time=0.079 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=64 time=0.094 ms
64 bytes from <IP_ADDRESS>: seq=2 ttl=64 time=0.072 ms

--- myserver ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.072/0.081/0.094 ms

exit

You mentioned you're trying to connect using a socket. Containers have their own private filesystem, so if the server creates a socket somewhere in the server filesystem, the client won't be able to connect to that. You can possibly use a volume and use the same volume for both containers, so that the client can access the socket that the server created, something like;
docker run -d --volume shared:/sockets/ my-server
docker run -d --volume shared:/sockets/ my-client

Then both "client" and "server" share the "/sockets/" directory. However, doing this makes your containers non-portable, because they always have to be running on the same machine / host (which limits its use if you're running on multiple nodes, for example, on Swarm). I'd really recommend using a regular tcp connection, not sockets.
Finally, I noticed you're using the "legacy link" environment variables (e.g. CLISERV_PORT_1001_TCP_ADDR). These environment variables are deprecated, and only used for "legacy links" in the default network, not for user-defined networks. Just make your server listen on <IP_ADDRESS> and your client should be able to connect over tcp/ip.
I'm going to close this issue, because this is a support question, not a bug, and the GitHub issue tracker is not intended for that. Please use either one of:

forums.docker.com
the #docker IRC channel
StackOverflow

As mentioned, I'll close this issue, but I hope the above helps you further. But feel free to comment after I closed

Thanks for your comment. I have got more clear understanding on Container communication in Docker. In future I will raise such queries in forums.docker.com
I have few more queries, related to this for my better understanding:

In my Dockerfile for creating server image, I have exposed port 1001 and the same I am publishing while running the server image in my container. Below is the command again I am mentioning for reference:
$ docker run --net=user_def_nw -ti -P --name server1 my-server-app

When the server container starts;  the exposed port 1001 is mapped to a randomly chosen port in the host machine. Hence the actual port where the server is listening is different from the one which is exposed.
This I verified, by running the following Docker command:
$ docker port server1
1001/tcp -> <IP_ADDRESS>:32768
Now, it is Docker daemon responsibility to forward incoming connection request on a given exposed  port of a given network interface to actual listening port in a given user defined network. But I think that is not happening.
Based on your statement:

Just make your server listen on <IP_ADDRESS> and your client should be able to connect over tcp/ip.

Now, I am running my client container by linking it to the server container. Also I am no more using deprecated env variables in my program.
Modified version of client program:
testclientprogram.txt
$ docker run --net=user_def_nw -ti --link server1:cliserv --name cli1 my-client
-app
And also in my client program, I am making specifying the usage of tcp protocol in socket API to establish the connection with the server program. Still I am getting connection refused error in my client program.
Note: I checked ping utility program, it also make use of socket API to establish connection with the target. Then why ping utility is able to establish connection and not my client program ?

I have exposed port 1001 and the same I am publishing while running the server image in my container.

You only need to publish the port (-p / -P) if you need the port to be accessible on the public network interface of the docker host. If you want to connect between containers on the same ('container-container') network, you don't have to publish those ports. Container can directly access the other container, using the "regular" (non-random) port, so for example, a web server listening on port 80, can be accessed by other containers on port 80 (if they are in the same network)

Note: I checked ping utility program, it also make use of socket API to establish connection with the target. Then why ping utility is able to establish connection and not my client program ?

Ok, perhaps I misunderstood your use case (and I'm not a C/C++ developer :D); I thought you wanted to use create a socket (similar to /var/run/docker.sock, and have the client connect to that socket)

You can find more info on networking in docker here; https://docs.docker.com/engine/userguide/networking/dockernetworks/

Container can directly access the other container, using the "regular" (non-random) port, so for example, a web server listening on port 80, can be accessed by other containers on port 80 (if they are in the same network)

Then in my server program , I am using "listen" API of the socket library to listen for incoming request on port 1001. ( On similar line, in webserver source code written in any langugae, might  be using certain functions provided to listen on port 80 )
On the other side i.e on my client program, I am using "connect" API of the socket library to connect to port 1001. But the connection is getting refused.  ( On similar line, the client source code written in any language, might be using certain functions provided to connect to port 80 )
My question remains same, why by using C/C++ socket API, I am not able to establish the connection. Is there some limitation at Docker level, or my understanding is going wrong some where.
I sincerely and very curious  to know the reason for this behaviour of my programs in Docker.
My apologies, if I am missing anything to understand the Docker networking feature.
Thanks for sharing the link. I went through this documentation, but was not able to find an answer still for this behaviour.

Is the server listening on <IP_ADDRESS>, not just on a single IP address?

Yes, the server is listening on <IP_ADDRESS>
I ran the following command to verify, after my server container was up and running:
$ docker port server1
1001/tcp -> <IP_ADDRESS>:32769

that can be misleading, because that only shows what port-mapping docker made. If the server itself doesn't listen on <IP_ADDRESS>:1001, it would still show that. For example;
docker network create something
docker run -dit -p 1234:5678 --net=something --name not-a-server busybox sh
docker port not-a-server
5678/tcp -> <IP_ADDRESS>:1234

So docker forwards connections from the "host" interface port 1234 to the container's 5678, but there's nothing listening in the container.
Same goes for connecting from another container on the container-container network;
docker run -it --rm --net=something alpine sh
/ # apk add --no-cache curl
(......)
/ # curl http://not-a-server:5678
curl: (7) Failed to connect to not-a-server port 5678: Connection refused

To verify if my server container is actually listening on port 1001, I stopped , and then started my server  container again. This time the port mapping to host was:
$ docker port server1
1001/tcp -> <IP_ADDRESS>:32770
Then I logged into into the VM which is acting as my DOCKER_HOST using the following command:
$ docker-machine ssh default
After logging into VM, I ran the netstat command to check the port status:
docker@default:~$ sudo -s
root@default:/home/docker# netstat -tulpn
Active Internet connections (only servers)
Proto  Recv-Q  Send-Q     Local Address           Foreign Address         State   PID/Program name
tcp        0            0                 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN     1243/sshd
tcp        0            0                  :::32770                 :::*                    LISTEN         2506/docker-proxy
tcp        0            0                  :::2376                   :::*                    LISTEN        1471/docker
The second entry indicates docker-proxy process is listening on port 32770.
My guess from this o/p is; any incoming request should be forwarded to the container running the server image by the docker-proxy process. I guess that is not happening here, and hence client is not able to establish the connection.
Another case, could be as my server and client image is build on the base image of gcc:4.9.
So running my server and client images, as a container, might not work properly with base image as gcc:4.9.  Better would have been, making my base image as ubuntu, or centos, or some linux flavour OS and then creating my client and sever images on these linux flavour images. But this will make my image size very huge.
Till now my understaning on Docker was, you create your own images, from those base images which are required by you to build and run your application as a container. Rest of the dependency stuff docker should take care.
Not sure, to resolve this issue, should I change my base image to some Linnux OS and then try and see ?

wrong assumption; the fact that the docker-proxy is listening, doesn't mean the server inside your container is working correctly. Same example as before;
docker run -dit -p 1234:5678 --name not-a-server busybox sh
netstat -tulpn

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:6000            <IP_ADDRESS>:*               LISTEN      9589/3
tcp        0      0 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN      32344/sshd
tcp6       0      0 :::6000                 :::*                    LISTEN      9589/3
tcp6       0      0 :::80                   :::*                    LISTEN      17618/docker-proxy
tcp6       0      0 :::1234                 :::*                    LISTEN      9697/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      32344/sshd

The fact that port 1234 is opened here, doesn't guarantee that there's something inside the container that's listening, or accepting connections

the fact that the docker-proxy is listening, doesn't mean the server inside your container is working correctly.

Then, what conclusion I am able to make it out is the C Socket library provided by POSIX for communicating over Socket using tcp protocol will not work when a given C/C++ program is run as a container in Docker.

I would like to open this issue.


CHEBI:135938 missing stere config

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2206632/ names the compound as {(5R,6S)-6-phenyl-5-[4-(2-pyrrolidin-1-yl-ethoxy)-phenyl]-5,6,7,8-tetrahydro-naphthalen-2-ol} and gives the structure too. Can you please add what's missing?

Now fixed. Thanks


Connection to terminal's pty host process is becoming unresponsive

Type: Bug
The #130320 is still very much an issue.
I'm using integrated terminal to setup required tunnels and they stop working shortly after the view containing terminal is hidden. I have to go back to terminal and do something (like, press a space bar) to release the lock.
Using the same command in an external terminal works and tunnels stay alive for as long as connection to the remote host is stable.

Also, please reopen https://github.com/microsoft/vscode/issues/198793
It's very annoying.

I believe this is already fixed, can you see if you can reproduce in the Insiders build?

Yes, I can reproduce it with insiders build, even with fresh one.
This is somewhat tricky to reproduce, but a more or less reliable way of doing it is to spawn and close consoles.
Like, start the terminal with SSH session to establish tunnels.
Run a search task across the project (SilverSearcher, see #169381 btw), don't close the results window. Run build task (rsync to the dev. vm), run more build tasks over and over again.
Hide the view with terminals in between runs. At some point, the programs running in initial terminal get stuck and cease to pass the tunnel traffic around (rsync, mysql, xdebug - all gets hung trying to send data), the solution is to open the terminal with tunnels and do something in it. Press space bar for example.
Then it gets unstuck and everything works again until the next lock.
Version: 1.88.0-insider (system setup)
Commit: 61187a0b6547df5911a0ee259f7afda46bac7ec3
Date: 2024-03-04T05:46:35.204Z
Electron: 28.2.2
ElectronBuildId: 26836304
Chromium: 120.0.6099.276
Node.js: 18.18.2
V8: 12.0.267.19-electron.0
OS: Windows_NT x64 10.0.19045


new drop object request

replace the per object type drop requests with a unified drop object request.
STS changes:

@Benjin is your STS change safe to be brought over to ADS right now?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.005%) to 42.323%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/jupyter/serverInstance.ts
4
75.5%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
30797

Relevant Lines:
67581

💛  - Coveralls


Token authentication error: token signed by untrusted key with ID: "xyz"

I am trying to setup token authentication using the cesanta/docker_auth token authentication server.  I am constantly getting an error in the log for my registry that indicates the token is signed by an untrusted key:
time="2015-10-29T18:55:40Z" level=error msg="token signed by untrusted key with ID: \"OTHY:JAXH:VSAD:VYKK:CYKB:GP4N:P7OL:KDII:2VIS:C3B4:73PC:AOMT\""

I believe I have all of the configuration settings correct when running the registry:
docker run -d --name docker-registry-v2  \
     --restart=always  \
     -p 5000:5000  \
     -v ${CERTS_DIR}:/ssl:ro  \
     -e REGISTRY_HTTP_TLS_CERTIFICATE=/ssl/linaro.org.crt  \
     -e REGISTRY_HTTP_TLS_KEY=/ssl/linaro.org.key   \
     -e REGISTRY_AUTH=token \
     -e REGISTRY_AUTH_TOKEN_REALM=https://docker-auth.linaro.org:5001/auth \
     -e REGISTRY_AUTH_TOKEN_SERVICE="Docker registry" \
     -e REGISTRY_AUTH_TOKEN_ISSUER="Linaro Registry Auth Service" \
     -e REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/ssl/gd_bundle-g2-g1.crt \
     -v ${REGISTRY_DATA_DIR}:/var/lib/registry  \
     registry:2.1.1

The HTTP_TLS_CERTIFICATE and HTTP_TLS_KEY are issued by GoDaddy.com, and are working correctly for HTTPS.  I have specified their root certificate bundle in AUTH_TOKEN_ROOTCERTBUNDLE, which is what is supposed to be necessary to validate the token issued correct?
For the authentication server, this is the configuration I am using (https://github.com/cesanta/docker_auth/blob/master/examples/simple.yml).  Referencing the same certificate and private key that I am using for HTTPS:
...
server:
  addr: ":5001"
  certificate: "/certs/linaro.org.crt"
  key: "/certs/linaro.org.key"

token:
  issuer: "Linaro Registry Auth Service"  # Must match issuer in the Registry config.
  expiration: 900
...

Does AUTH_TOKEN_ROOTCERTBUNDLE need to be something else?

I used the public key for the certificate used to sign the tokens and it worked.

Indeed it's very misleading, that the regitry's config setting is named "rootcertbundle" even if just the certificate (public key) is expected there.

I used the public key for the certificate used to sign the tokens and it worked.

Is this still true?  I tried using the pubkey generated with
openssl x509 -pubkey -noout -in rootCA.pem > rootCA.pubkey

but that causes
panic: unable to configure authorization (token): unable to parse token auth root certificate: asn1: structure error: tags don't match (2 vs {class:0 tag:6 length:9 isCompound:false}) {optional:false explicit:false application:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false}  @2

I have asked related question here, https://gitlab.com/gitlab-org/gitlab-ee/issues/1424

@CVTJNII the rootcertbundle should be a pem encoded x509 certificate. The public key of the certificate should be the same key used to sign the tokens.
@gajus maybe ask your question again here? Seems like there is some configuration issue but it looks like it could be on the token server side and not the registry. The token server should be configured to sign tokens using the private key associated with a public key here /etc/gitlab/registry-certs/registry-auth.crt. How that association is made is determined by how the chain is set in the JWT by the token server. The token server can add a key id which is directly associated with a public key for one of the certificates or can add an x509 chain from the signing key to one of the roots in that bundle.

@dmcgowan can you have a look at https://gitlab.com/gitlab-org/gitlab-ee/blob/e27ebba57dbf8195873cff678b38900084e766d5/app/services/auth/container_registry_authentication_service.rb#L19-31 ? This is the logic for generating the token. I am not much of a Ruby developer, but from I can tell, it is using rsa_token to generate the token. I don't see any adding of IDs, etc.
Therefore, is there something wrong with how I generate the certificate?
These are the only files that I generate:
openssl req -nodes -newkey rsa:4096 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 3650

I give registry-auth.key to to the token server and registry-auth.crt to the Docker.

What is the relation between REGISTRY_HTTP_TLS_CERTIFICATE, REGISTRY_HTTP_TLS_KEY and REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE? Where each of those are used. Understanding that would help to understand the issue better.

Indeed it's very misleading, that the registry's config setting is named "rootcertbundle" even if just the certificate (public key) is expected there.

If thats the case, then how is REGISTRY_HTTP_TLS_CERTIFICATE different from REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE?

REGISTRY_HTTP_TLS_CERTIFICATE and REGISTRY_HTTP_TLS_KEY are used to enable HTTPS on the registry web server that is exposed to users. REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE is one or more x509 certificates used to verify tokens signed by the token auth server. Your token auth server might sign tokens with a key signed by a different certificate authority than the key used by the registry server, thus the two separate cert configuration options.

REGISTRY_HTTP_TLS_CERTIFICATE and REGISTRY_HTTP_TLS_KEY are used to enable HTTPS on the registry web server that is exposed to users. REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE is one or more x509 certificates used to verify tokens signed by the token auth server. Your token auth server might sign tokens with a key signed by a different certificate authority than the key used by the registry server, thus the two separate cert configuration options.

Understood. Thats what I thought from the start. Just wanted to make sure.
This still leaves me completely baffled as to why my setup is not working, though. The HTTPS bit is working as expected.
I have done:
# gitlab server
[root@gitlab /]# mkdir /etc/gitlab/registry-certs
[root@gitlab /]# cd /etc/gitlab/registry-certs
[root@gitlab registry-certs]# openssl req -nodes -newkey rsa:4096 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
Generating a 4096 bit RSA private key
............
............................................................................................................++
..........................................++
writing new private key to 'registry-auth.key'
-----
[root@gitlab registry-certs]# openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 3650
Signature ok
subject=/CN=gitlab-issuer
Getting Private key
[root@gitlab registry-certs]# openssl x509 -text -in /etc/gitlab/registry-certs/registry-auth.crt
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:<PHONE_NUMBER>918743687 (0x808d37a6fcf13687)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN=gitlab-issuer
        Validity
            Not Before: Dec 27 18:22:54 2016 GMT
            Not After : Dec 25 18:22:54 2026 GMT
        Subject: CN=gitlab-issuer
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:df:a5:b0:f3:bc:f7:a2:5d:54:cb:e0:3c:e4:f4:
                    31:24:53:37:84:ab:4e:42:d9:5e:0d:98:65:ca:e7:
                    0f:f7:0c:41:d5:2c:0e:b0:02:e1:57:3a:df:10:03:
                    c7:8a:d0:56:c9:55:11:0a:bd:f7:a7:55:1d:fe:76:
                    f4:80:74:68:a0:fa:dd:86:6a:29:0f:2a:63:e7:62:
                    7d:20:b9:a4:78:ae:07:80:16:54:a5:72:80:4c:6b:
                    e6:62:4d:c7:46:21:14:16:45:c6:57:2b:b9:29:79:
                    c5:3c:cb:66:41:45:18:06:fb:48:62:ba:15:6f:66:
                    d0:e7:f3:5a:4f:3b:41:18:12:72:5f:08:b5:2f:6b:
                    3e:ac:39:ee:0f:69:1e:0e:33:35:e8:d1:d9:9c:c7:
                    e0:0b:5c:9b:d9:1c:9e:2d:f8:48:30:26:4d:b9:3a:
                    b8:94:c9:4f:45:45:95:11:0a:d8:07:26:ca:6e:94:
                    dd:4a:8a:6c:0c:2d:ea:2d:cd:fa:0c:3b:f7:aa:ef:
                    33:bf:5d:f1:ca:d0:14:c9:76:b9:ac:ca:bb:7d:d6:
                    99:fc:5f:aa:39:de:bb:e5:71:d4:80:4e:39:82:2b:
                    f0:35:a1:5e:88:26:c8:58:8a:37:91:c4:1c:1f:4b:
                    f8:92:71:a6:b3:d9:5b:1f:22:1c:90:c5:5b:c6:32:
                    a1:ef:1a:a0:a1:67:ee:89:b6:27:88:1f:9b:cd:e2:
                    cf:c8:af:9b:a8:86:8e:ae:2d:36:b7:71:ec:7a:40:
                    df:29:df:09:1d:d6:46:95:29:3d:00:6c:08:b7:dd:
                    56:b9:65:f8:1a:fc:ad:58:df:72:8d:4d:6b:68:67:
                    c0:c6:25:42:8b:06:65:99:8c:2f:76:ea:e2:c1:5a:
                    e3:04:9b:c1:1c:d2:96:f0:b2:f2:34:1e:87:a9:de:
                    29:50:35:9a:05:c9:e6:d8:4f:84:28:f5:60:51:a8:
                    aa:8e:93:b0:0f:a8:1e:52:c0:1b:42:27:70:1d:d6:
                    5b:8f:1e:df:59:82:0f:28:87:d4:2c:f2:39:3d:1e:
                    37:c9:23:75:e4:84:97:cb:a3:8a:81:c3:9d:0f:4b:
                    15:d2:d2:57:fa:f6:63:8c:fa:da:bc:5d:63:5b:19:
                    70:9f:a4:de:db:67:00:f8:a6:1a:e4:91:f0:38:ba:
                    e3:1c:c0:68:fd:cd:4a:86:55:74:32:d1:ba:30:8a:
                    a7:66:ee:50:a3:59:d1:9f:78:fa:a3:c1:4b:7a:5e:
                    61:72:a6:15:b5:98:f0:10:e7:b3:c1:d5:6f:e0:35:
                    da:98:ef:b2:da:78:a7:5b:79:e7:1e:ba:c6:45:b2:
                    51:28:00:1a:4c:3e:82:2d:0d:8e:1a:61:a2:5b:0e:
                    4f:17:55
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
         6e:36:42:3d:ca:ab:4b:e3:bd:7a:be:49:af:f8:2b:27:5a:99:
         87:ab:31:22:fa:25:c2:43:2d:c7:cf:28:26:00:a2:95:bf:43:
         d8:94:cd:f6:a5:4d:d0:43:ff:c2:ad:82:38:fb:98:b1:63:31:
         32:6c:9b:8c:4e:f2:30:b7:cf:c8:88:ef:ce:de:6f:8e:8a:b3:
         62:32:e9:31:62:a6:e3:89:bb:9a:3c:77:e0:c4:f9:8b:da:b9:
         94:e9:86:14:8b:54:38:b6:df:9a:0d:dc:c6:51:cb:c7:ae:57:
         fb:95:4a:21:aa:ca:ec:bf:4b:b6:4e:3f:f4:2a:29:f9:af:24:
         aa:fd:ac:f9:5a:47:e2:62:29:8e:5c:b5:89:69:9f:9e:82:5f:
         3f:ec:4f:72:e0:aa:72:03:5f:74:4c:01:a8:0b:f7:00:bd:a6:
         47:43:c5:11:d7:c6:02:a8:89:66:d8:ca:68:6b:a8:71:df:29:
         40:a1:76:35:17:3a:b2:1a:cb:3e:59:55:1b:fc:f4:a9:5c:a4:
         1f:eb:cc:7f:e8:c0:cd:92:3c:53:57:50:54:36:b6:25:3a:e6:
         43:d4:a4:cb:93:2d:5b:d1:8b:37:57:98:5f:2e:5f:4e:cf:a4:
         a4:e5:7a:ef:dc:be:d5:bc:3a:41:3a:21:ea:f3:01:06:c5:20:
         8b:be:67:c3:c9:4a:02:94:91:82:96:fa:25:ed:e9:a9:87:d3:
         25:e3:27:a5:1a:b0:64:dc:62:b3:f6:80:12:25:0a:13:35:ec:
         44:e8:d0:82:0d:aa:8d:67:a1:cf:5b:4f:88:23:f2:94:2f:78:
         18:04:07:25:29:6b:79:59:37:3b:db:8c:7e:c2:92:f7:6f:0e:
         45:96:1e:63:ab:93:24:ce:46:4d:e2:be:5a:4a:f6:0a:4a:80:
         3b:a3:2e:cf:a9:89:b4:2b:a6:94:c4:83:bd:77:d5:ae:3b:e6:
         87:4b:7b:06:4e:86:aa:0f:8c:0f:a8:e4:e0:75:d5:27:2e:ef:
         8f:ff:36:46:f4:14:32:55:63:91:e4:c6:7c:e8:da:61:31:f3:
         f3:ab:db:d8:ac:b6:40:b4:db:73:ea:3a:c7:7d:6b:2c:18:42:
         28:7e:01:0d:64:80:d6:21:62:fa:5c:b0:32:a5:d6:82:d4:c8:
         09:c3:94:ea:0d:f6:10:85:b0:73:b4:1e:cb:3d:67:1a:e4:58:
         ac:88:ea:86:b6:fc:fc:03:d5:4d:20:62:de:c5:d0:b3:3a:da:
         11:dd:a9:99:e6:36:9f:d6:ed:7c:ae:a5:2b:22:01:dc:6a:32:
         bd:11:35:78:0b:cf:f8:c2:78:85:bb:b7:b9:a9:d9:0c:71:8e:
         6b:d5:64:d5:07:e1:1d:8e
-----BEGIN CERTIFICATE-----
MIIErDCCApQCCQCAjTem/PE2hzANBgkqhkiG9w0BAQUFADAYMRYwFAYDVQQDDA1n
aXRsYWItaXNzdWVyMB4XDTE2MTIyNzE4MjI1NFoXDTI2MTIyNTE4MjI1NFowGDEW
MBQGA1UEAwwNZ2l0bGFiLWlzc3VlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBAN+lsPO896JdVMvgPOT0MSRTN4SrTkLZXg2YZcrnD/cMQdUsDrAC4Vc6
3xADx4rQVslVEQq996dVHf529IB0aKD63YZqKQ8qY+difSC5pHiuB4AWVKVygExr
5mJNx0YhFBZFxlcruSl5xTzLZkFFGAb7SGK6FW9m0OfzWk87QRgScl8ItS9rPqw5
7g9pHg4zNejR2ZzH4Atcm9kcni34SDAmTbk6uJTJT0VFlREK2Acmym6U3UqKbAwt
6i3N+gw796rvM79d8crQFMl2uazKu33Wmfxfqjneu+Vx1IBOOYIr8DWhXogmyFiK
N5HEHB9L+JJxprPZWx8iHJDFW8Yyoe8aoKFn7om2J4gfm83iz8ivm6iGjq4tNrdx
7HpA3ynfCR3WRpUpPQBsCLfdVrll+Br8rVjfco1Na2hnwMYlQosGZZmML3bq4sFa
4wSbwRzSlvCy8jQeh6neKVA1mgXJ5thPhCj1YFGoqo6TsA+oHlLAG0IncB3WW48e
31mCDyiH1CzyOT0eN8kjdeSEl8ujioHDnQ9LFdLSV/r2Y4z62rxdY1sZcJ+k3ttn
APimGuSR8Di64xzAaP3NSoZVdDLRujCKp2buUKNZ0Z94+qPBS3peYXKmFbWY8BDn
s8HVb+A12pjvstp4p1t55x66xkWyUSgAGkw+gi0NjhpholsOTxdVAgMBAAEwDQYJ
KoZIhvcNAQEFBQADggIBAG42Qj3Kq0vjvXq+Sa/4KydamYerMSL6JcJDLcfPKCYA
opW/Q9iUzfalTdBD/8Ktgjj7mLFjMTJsm4xO8jC3z8iI787eb46Ks2Iy6TFipuOJ
u5o8d+DE+YvauZTphhSLVDi235oN3MZRy8euV/uVSiGqyuy/S7ZOP/QqKfmvJKr9
rPlaR+JiKY5ctYlpn56CXz/sT3LgqnIDX3RMAagL9wC9pkdDxRHXxgKoiWbYymhr
qHHfKUChdjUXOrIayz5ZVRv89KlcpB/rzH/owM2SPFNXUFQ2tiU65kPUpMuTLVvR
izdXmF8uX07PpKTleu/cvtW8OkE6IerzAQbFIIu+Z8PJSgKUkYKW+iXt6amH0yXj
J6UasGTcYrP2gBIlChM17ETo0IINqo1noc9bT4gj8pQveBgEByUpa3lZNzvbjH7C
kvdvDkWWHmOrkyTORk3ivlpK9gpKgDujLs+pibQrppTEg7131a475odLewZOhqoP
jA+o5OB11Scu74//Nkb0FDJVY5Hkxnzo2mEx8/Or29istkC023PqOsd9aywYQih+
AQ1kgNYhYvpcsDKl1oLUyAnDlOoN9hCFsHO0Hss9ZxrkWKyI6oa2/PwD1U0gYt7F
0LM62hHdqZnmNp/W7XyupSsiAdxqMr0RNXgLz/jCeIW7t7mp2QxxjmvVZNUH4R2O
-----END CERTIFICATE-----

I have copied /etc/gitlab/registry-certs/registry-auth.crt to Docker registry server and used to set REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE.
Docker logs:
WARN[0045] error authorizing context: authorization token required  go.version=go1.6.3 http.request.host=registry.anuary.com http.request.id=a9ac3795-d9ac-40ce-9cd4-07f29b77843c http.request.method=GET http.request.remoteaddr=<IP_ADDRESS>:57715 http.request.uri=/v2/ http.request.useragent=docker/1.12.5 go/go1.6.4 git-commit/7392c3b kernel/4.4.39-moby os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.5 \(darwin\)) instance.id=57d8be55-05d3-4323-8e79-0314386459af version=v2.5.1
<IP_ADDRESS> - - [27/Dec/2016:18:29:31 +0000] "GET /v2/ HTTP/1.1" 401 87 "" "docker/1.12.5 go/go1.6.4 git-commit/7392c3b kernel/4.4.39-moby os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.5 \\(darwin\\))"
ERRO[0046] token signed by untrusted key with ID: "7K7M:VDNO:YAOL:X4ST:E2XK:HYLF:ROY4:7L7L:SCLH:46TJ:W3LZ:FJCH"
WARN[0046] error authorizing context: invalid token      go.version=go1.6.3 http.request.host=registry.anuary.com http.request.id=3c23c782-643e-4ddc-9871-533db0f11d51 http.request.method=GET http.request.remoteaddr=<IP_ADDRESS>:57717 http.request.uri=/v2/ http.request.useragent=docker/1.12.5 go/go1.6.4 git-commit/7392c3b kernel/4.4.39-moby os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.5 \(darwin\)) instance.id=57d8be55-05d3-4323-8e79-0314386459af version=v2.5.1
<IP_ADDRESS> - - [27/Dec/2016:18:29:32 +0000] "GET /v2/ HTTP/1.1" 401 87 "" "docker/1.12.5 go/go1.6.4 git-commit/7392c3b kernel/4.4.39-moby os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.5 \\(darwin\\))"

Auth server logs:
Started POST "/ci/api/v1/builds/register.json" for <IP_ADDRESS> at 2016-12-27 18:29:30 +0000
Started GET "/jwt/auth?account=gajus&client_id=docker&offline_token=true&service=container_registry" for <IP_ADDRESS> at 2016-12-27 18:29:31 +0000
Processing by JwtController#auth as HTML
  Parameters: {"account"=>"gajus", "client_id"=>"docker", "offline_token"=>"true", "service"=>"container_registry"}
Completed 200 OK in 388ms (Views: 0.9ms | ActiveRecord: 10.5ms)
Started POST "/ci/api/v1/builds/register.json" for <IP_ADDRESS> at 2016-12-27 18:29:33 +0000

What am I possibly missing?
How do I further debug this issue?

I chased my tail on this for days as well.  ROOTCERTBUNDLE is not the certificate bundle bundle, it's confusingly named.  It needs to be the certificate of a signed key pair, in my experience CA certificates won't work.  Who signs the certificate doesn't matter and isn't checked, but it must be signed.  I went with a self signed certificate because the CA doesn't matter.
@gajus If I'm reading your post correctly I think the signing might be the issue.  This is the command I used to generate the key/cert I'm using for Portus:
openssl req -x509 -newkey rsa:4096 -keyout token.key -out token.crt -days 3650 -nodes

Give that a shot.  It would be nice if Docker could use an existing JWT library instead of rolling their own, I believe most of this difficulty is coming from the implementation.

It works.
First of all, thank you @CVTJNII for contributing the solution.
However, I don't understand whats the difference between:
openssl req -nodes -newkey rsa:4096 -keyout registry-auth.key -out registry-auth.crt -days 3650 -x509 -subj "/CN=gitlab-issuer"

and
openssl req -nodes -newkey rsa:4096 -keyout registry-auth.key -out registry-auth.csr -subj "/CN=gitlab-issuer"
openssl x509 -in registry-auth.csr -out registry-auth.crt -req -signkey registry-auth.key -days 3650

Aren't they supposed to generate exactly the same thing?

Comparing the output of those two sets of commands the only thing that jumps out at me is the first does produce a CA certificate.   So it looks like to work the certificate needs to be a CA cert signed by the key but not an intermediary CA cert?
After figuring this out myself I started to look into why this is so fussy, and in my opinion it's due to the Docker JWT implementation handling SSL itself and not using a JWT library resulting in implementation eccentricities.  If nothing else the registry seems to be requiring a very specific type of certificate (too specific, in my opinion) and it isn't clearly documented what those requirements are.

Docker distribution (at least as of v2.3.1) requires the full bundle (not just the public certificate). This is unclear in the documentation, as well as, I believe, an unnecessary requirement, since the public certificate alone is sufficient to verify a token's signature.
Playing with a running v2 registry using token authentication, a signed token from the token server (in this case, Portus ), and the jwt debugger at https://jwt.io I spent some time trying to understand how the token signature was verified. The registry and portus server both use a provided crt file for verification/signing when deploying Portus with docker-compose. However, I was initially unable to verify the signature with the tool, using both the portus.crt file linked above, as well as the public key generated from it with openssl tools. Here's a sample token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBUV1Q6Rk5KRTo3VFc3OlVMSTc6RFpRQTpKSkpJOlJESlE6Mk03NjpIRDZHOlpSU0M6VlBJRjpPNUJVIn0.eyJpc3MiOiIxNzIuMTcuMC4xIiwic3ViIjoicG9ydHVzIiwiYXVkIjoiMTcyLjE3LjAuMTo1MDAwIiwiaWF0IjoxNDkwMTMyNjY3LCJuYmYiOjE0OTAxMzI2NjIsImV4cCI6MTQ5MDEzMjk2NywianRpIjoiTTF5ZzVUdFk4MnFKeThpWlBMMTZwaDlvV2ZlN3VhVzZmU2VkSHVEQ3pvIiwiYWNjZXNzIjpbeyJ0eXBlIjoicmVnaXN0cnkiLCJuYW1lIjoiY2F0YWxvZyIsImFjdGlvbnMiOlsiKiJdfV19.HZx05gjj6lZtCzH3oJFmWpOrU3A3SEFpvBQJalTufD0Yy2EEwMD1XjFay3oEtojJ5Chm6ZmR0WoNT4AJ3d9srEwTtVkjHjZf2zK1c4WNyPg2KCHpJmS8fIy2NRsOQ_9EDWUYAi2giBMcnI98Hx8tutxbGkkm-Bh0wm_9hHXYzTWrgH3l7Tocw-RHX5JQGnVCO84cvpS0-1cq72o-lt5SJ7KzdBHv0jQoErHi3CCIPNFx4_qQLnby7LsridlSGtqFJsHkIE4qPqkxp2QpdprWtntCVLLx1IoC3sgt7ydTLerdCt78vqWetIh27IpJnOW2wsbH3lTFfLzfsFpDV8s1SDekEdQIMqdIbzu6xF5VHKYoOf4GeYJeLjUVlSn2e1Xx5LJfETMTqWRU52E6T2IlIPGYQzw5xHMdHoFuOnCAGibRubZDjDoKmSZMXqLPo0eJ-DXwBeFErFiaz5RuYCjZV_3wpXvtaP1SmlP_H_V1D79Rd7lx5hea2t4uTeeqfyb6JjLEcKTOixjxmWlE6ehFMLXC2GGNa-GyBDMsVYE2Aram2vY7Pqmt_QeKamJlz2GjdSIgcgzu3W1PO8JorgkUbiklwpd3Z2Ma3PA2tuKvJqkEmh4oIMDzGz66HWmP6K5P4-HxgMWUopzUiuMKIArylTNqWfcYsdwTYFXJc0-ppSo

and decoded:
Header:
{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "PTWT:FNJE:7TW7:ULI7:DZQA:JJJI:RDJQ:2M76:HD6G:ZRSC:VPIF:O5BU"
}
Payload:
{
  "iss": "<IP_ADDRESS>",
  "sub": "portus",
  "aud": "<IP_ADDRESS>:5000",
  "iat":<PHONE_NUMBER>,
  "nbf":<PHONE_NUMBER>,
  "exp":<PHONE_NUMBER>,
  "jti": "M1yg5TtY82qJy8iZPL16ph9oWfe7uaW6fSedHuDCzo",
  "access": [
    {
      "type": "registry",
      "name": "catalog",
      "actions": [
        "*"
      ]
    }
  ]
}

After some digging, I came across https://docs.docker.com/registry/spec/auth/jwt/#getting-a-bearer-token, which outlines the requirements for "kid" header generation, and it occurred to me to generate the public key in DER format: openssl x509 -in compose/registry/portus.crt -noout -outform der -pubkey, which I was then finally able to use to verify the token signature.
However, attempting to start the registry using a rootcertbundle argument which points to this public key causes the registry crashes with a big stack trace starting with:
panic: unable to configure authorization (token): unable to parse token auth root certificate: asn1: structure error: tags don't match (2 vs {class:0 tag:6 length:9 isCompound:false}) {optional:false explicit:false application:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false}  @2

I also tried this with a pem-formatted pubkey as well as a der-formatted crt file, but neither worked. I'm struggling to see why the full crt should be required here when just the pubkey would be sufficient.

FIXED!
I had the same problem on the Omnibus.
I figured out that the Certificate and Key on the "registry" part of /etc/gitlab/gitlab-secrets.json MUST MATCH with the ones in following  configurations on /etc/gitlab/gitlab.rb : registry['rootcertbundle'] (Certificate) and gitlab_rails['registry_key_path'] (Key)


[test] Ensure tests fail if inline form details absent

Coverage decreased (-0.1%) to 97.357% when pulling 39f4d7750db6fe39254c71e876aa4968a3c86682 on atb00ker:inline-forms-problem into 2bf868a206453e708fa10da3151a4902e9a3151b on openwisp:master.


Dx fields validation

See #1246

Fix Date only widget
Add Email, URL widgets
Improve Form front-end field validation.
Improve Form validation on back-end validation errors.

Maybe it would be a good idea to create a "text widget factory". TextWidget already supports custom types of text inputs using the typeTranslations and the type parameter, so instead of having extra components, the TextWidget component could be reused.
Also, regarding errorList. I wonder why other Volto widget don't have it. I haven't checked, but I thought semantic-ui takes care of error display on widgets?

@avoinea We broke something in Guillotina with this one :( Can you imagine what it is by looking at the cypress tests?

Also, regarding errorsList. I wonder why other Volto widget don't have it. I haven't checked, but I thought semantic-ui takes care of error display on widgets?

@tiberiuichim yes, Semantic UI forms has the "errors" props, they used to work, but only on backend validation.

@avoinea the Guillotina build is green as far as I can see. Please rebase and let's get that one merged...

@tisto Looks good, now!

@tisto @sneridagh Can we merge this PR?

Needs some cosmetics.

@avoinea Are you still woking on this PR?

@nileshgulia1 Nope, it's ready for review and merge.

@giuliaghisini @cekk @nzambello @pnicolli a review from you folks on this PR would be great!

@giuliaghisini @cekk @nzambello @pnicolli last chance for a review. I plan to merge this before our Volto team meeting call today. :)


What is the best way to store options for select ?

I have this long list of options variables  that are to be used as options for the select dropdown and I am wondering if there is a better way to store those variables somewhere else ? What would be a good practice in this case ?

you can register them as an angular.value perhaps
Zach Lysobey
(203) 984-4048
On Wed, Aug 5, 2015 at 1:19 PM, Maisnam Raju Singh<EMAIL_ADDRESS>
wrote:

I have this long list of options variables that are to be used as options
for the select dropdown and I am wondering if there is a better way to
store those variables somewhere else ? What would be a good practice in
this case ?
—
Reply to this email directly or view it on GitHub
https://github.com/johnpapa/angular-styleguide/issues/475.

It depends, if you use it only once, you can just hard code it in the place you need it, otherwise, you could use the angular.value like @zachlysobey mentions. It also can be that you better get them from your BE, it really depends on the situation.

Thanks, that makes sense


Add post_init as a place to look for attribute docstrings (labeling them as instance-attributes)

Is your feature request related to a problem? Please describe.
I've converted many of my classes to dataclasses. I'd like to add docstrings to many of the attributes that are now added in __post_init__ rather than __init__ (since that's really where args/kwargs now live)
Describe the solution you'd like
Add __post_init__ to two places in visitor.py that look for attribute docstrings
Describe alternatives you've considered
I looked at creating an extension, but was struggling to see how to make it work

#191
I only question if they should be labeled any different?

Also: if you don’t like hard-coding __post_init__, maybe it could look for __init__ and also any names in a config option?
add_attribute_docstrings_from ?

Thanks for the request. Before reviewing your PR, isn't it possible to do something like this?
@dataclass
class C:
    a: float
    """Docs for a."""
    b: float
    """Docs for b."""
    c: float = field(init=False)
    """Docs for c."""

    def __post_init__(self):
        self.c = self.a + self.b

That's really interesting. I'm still wrapping my head around the edge-cases of dataclasses (I have a conflicting field function, so I import field as field_
Using that, it labels c as a class-variable, which it isn't. I poked around at how to correct that in visitor.py, but I didn't get too far.
    c: float = field_(init=False)
    """Docs for c."""
    d: float = field_(default=1.0, init=False)
    """Docs for d."""

    def __post_init__(self):
        self.c = self.a + self.b

docstring as suggested:

docstring as suggested, after pr

docstring in __post_init__, after pr
    d: float = field_(default=1.0, init=False)
    """Docs for d."""

    def __post_init__(self):
        self.c = self.a + self.b
        """Docs for c."""

Thanks for the detailed answer :slightly_smiling_face:
The issues you point at are fixable, but not until I've finished improving expressions in Griffe.
So I think it's best to go with your PR for now.

Let me see how to fix this though (see how a gets overwritten):
@dataclass
class Test:
    a: int
    """Test doc"""
    b: int

    def __post_init__(self):
        self.c = a + b
        self.a = c + a

Ok! I just wanted to point it out, so it’s not an unexpected gotcha

considering this resolved for now:
Use:
    c: float = field(init=False)
    """Docs for c."""

convention


Feature issue169 lh name check jm

#169
A check was added to raise an exception when the lakehouse name provided in the config file has uppercase characters.
lakehouse = should pass
LakeHouse = will fail
A note was added to the User and Developer documentation as well.
Developer Documentation Update:

User Guide Document Update:

Need to discuss this as we have clients that are currently using camel case datalake names sot his will fail for them


TDE Status

Hello,
Are Azure Database for PostgreSQL/MySQL encrypted with TDE by default?
If yes, Databases launched after which date are enabled with TDE.
Where can I check if this parameter is enabled for our databases?
Regards
Atul

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

ID: e6e17627-961e-e3c3-b2cd-ef137e5ec590
Version Independent ID: c680c4cb-05dd-6059-49be-c825df1f4a23
Content: Azure database security best practices
Content Source: articles/security/azure-database-security-best-practices.md
Service: security
GitHub Login: @unifycloud
Microsoft Alias: tomsh

TDE=transparent data encryption

@atullalwani Thanks for your feedback! We will investigate and update as appropriate.

@atullalwani No, as far as I know TDE is not enabled by default for Azure Database for PostgreSQL/MySQL however I will let @TomShinder comment on the same if that is not the case.

@atullalwani We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


⚠ Bofrost.at has degraded performance

In b9fdc53, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 4306 ms

Resolved: Bofrost.at performance has improved in 8f287e0.


private key str length variance

[bytes have been changed to protect the innocent]
depending on the keygen, the step to get an encoded private string for MQTT example:
openssl ec -in ec_private.pem -noout -text
generates hex string of a different number of bytes:
const char* private_key_str =
    "63:dc:3c:27:fe:4c:11:c4:a1:21:f2:90:70:b4:42:"
    "e0:02:12:95:25:2a:cf:31:fc:78:95:9f:99:54:4d:"
    "2b:a9";

const char* private_key_str =
    "00:ab:64:4a:10:ed:7e:d8:4b:8a:0f:ac:12:94:27:"
    "2d:61:10:02:fc:45:06:8c:ab:bc:07:cd:50:05:ef:"
    "32:a1:15";

The shorter form works, the longer form does not.
fill_priv_key is at least one of the functions that would need to be modified, not sure about others.

+1

Which keygen method did you use? For now indeed, we only have support for the prime256v1 method and it's the only Ellipse Curve method supported by the Cloud IoT Core platform. You can take a look at the official docs:
https://cloud.google.com/iot/docs/how-tos/credentials/keys#generating_an_es256_key
The other method supported for Cloud IoT Core is the RSA-256, but this library don't have support for it yet.

Looks like the larger key is prefixed with 00. This is valid as per the spec since the number is the same. However fill_priv_key isn't expecting that so it parses in wrong.
I'll update the function to fix it, thanks for the heads up.

On second thought made a comment instead asking to delete the extra 00. This also ensures that if someone accidentally makes a key that's the wrong size they'll catch the mistake by reading the comment.


Fix typo

Just noticed this typo when trying to change my icon, noticed it failed to display the icon and I had to add the e.

thank you 😅


Sound and animation for double, triple and quadruple scores with a single puck

As I player I would enjoy a special sound and animation when I score in more than one gate with a single puck shoved. Such as "Double Score!", "Triple Score!" and "M M M Monster Score!".

Thoughts:

How will this work together with a set being scored at the same time?
Scores don't arrive at the same time, we need a delay to check what is happening before deciding what animation to show (including the set animation)

Closed in favor of sound and animations for sequential scoring with multiple pucks.


How to periodically update a vectorStore by appending new data without erasing the existing content?

Training with large amounts of data consumes numerous tokens. But what if your data is dynamic? As data accumulates daily, there's a need to avoid retraining with both old and new data simultaneously.
How can we prevent retraining on both the existing and new data?

See: https://js.langchain.com/docs/modules/data_connection/caching_embeddings


Find me/search on narrow device. Addresses #21.

Description

Addresses issue #21

List of changes

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

Checklist:

[x] This pull request relates to a ticket.
[ ] This code is tested. (How to test css?)
[x] I want my code added to the response theme.

Looks like this picked up a bad commit & has the other PRs in it. Let me know if I can help isolate it.

@plocket Can you re-pull master to your fork and re-push the branch on the fork? I think that might get rid of the docs commit 8638b5a

I will do a thing.

Bah, I'll just do it over.

Replaced by #47


WETZEL_WARNING: title not defined - is this required for every definition?

In http://json-schema.org/draft-07/schema# and co., it seems that the title key isn't required for creating a json schema, but I get title not defined as an error for wetzel trying to parse my schema..
Any help would be great! The files in question are at https://github.com/comp500/packwiz-spec/blob/master/schemas

Would it be possible to use the key of the object as a fallback when no title is provided?
Eg:
"UpdateImplementation": {
      "description": "This interface defines no properties - it exists solely to restrict the possible update values to those that are intended as update implementations.",
      "type": "object"
    }

would render title as "UpdateImplementation"?

Example error message:
3:04:24 PM: Error: Command failed: npm x -n wetzel ./packwiz-spec/schemas/pack.json > docs/reference/pack-format/pack-toml.md -n
3:04:24 PM: /opt/build/repo/node_modules/wetzel/lib/generateMarkdown.js:135
3:04:24 PM:             const item = style.getTOCLink(currentTitle.replace(parentTitle + " ", ""), typeName);
3:04:24 PM:                                                        ^
3:04:24 PM: TypeError: Cannot read properties of undefined (reading 'replace')
3:04:24 PM:     at getRecursiveTOC (/opt/build/repo/node_modules/wetzel/lib/generateMarkdown.js:135:56)
3:04:24 PM:     at getTableOfContentsMarkdown (/opt/build/repo/node_modules/wetzel/lib/generateMarkdown.js:109:23)
3:04:24 PM:     at generateMarkdown (/opt/build/repo/node_modules/wetzel/lib/generateMarkdown.js:65:15)
3:04:24 PM:     at Object.<anonymous> (/opt/build/repo/node_modules/wetzel/bin/wetzel.js:94:22)
3:04:24 PM:     at Module._compile (node:internal/modules/cjs/loader:1101:14)
3:04:24 PM:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
3:04:24 PM:     at Module.load (node:internal/modules/cjs/loader:981:32)
3:04:24 PM:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
3:04:24 PM:     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
3:04:24 PM:     at node:internal/main/run_main_module:17:47
3:04:24 PM:     at checkExecSyncError (node:child_process:826:11)
3:04:24 PM:     at execSync (node:child_process:900:15)
3:04:24 PM:     at /opt/build/repo/build.js:52:5 {
3:04:24 PM:   status: 1,
3:04:24 PM:   signal: null,
3:04:24 PM:   output: [
3:04:24 PM:     null,
3:04:24 PM:     Buffer(0) [Uint8Array] [],
3:04:24 PM:     Buffer(1074) [Uint8Array] [
3:04:24 PM:        47, 111, 112, 116,  47,  98, 117, 105, 108, 100,  47, 114,
3:04:24 PM:       101, 112, 111,  47, 110, 111, 100, 101,  95, 109, 111, 100,
3:04:24 PM:       117, 108, 101, 115,  47, 119, 101, 116, 122, 101, 108,  47,
3:04:24 PM:       108, 105,  98,  47, 103, 101, 110, 101, 114,  97, 116, 101,
3:04:24 PM:        77,  97, 114, 107, 100, 111, 119, 110,  46, 106, 115,  58,
3:04:24 PM:        49,  51,  53,  10,  32,  32,  32,  32,  32,  32,  32,  32,
3:04:24 PM:        32,  32,  32,  32,  99, 111, 110, 115, 116,  32, 105, 116,
3:04:24 PM:       101, 109,  32,  61,  32, 115, 116, 121, 108, 101,  46, 103,
3:04:24 PM:       101, 116,  84,  79,
3:04:24 PM:       ... 974 more items
3:04:24 PM:     ]
3:04:24 PM:   ],
3:04:24 PM:   pid: 1367,
3:04:24 PM:   stdout: Buffer(0) [Uint8Array] [],
3:04:24 PM:   stderr: Buffer(1074) [Uint8Array] [
3:04:24 PM:      47, 111, 112, 116,  47,  98, 117, 105, 108, 100,  47, 114,
3:04:24 PM:     101, 112, 111,  47, 110, 111, 100, 101,  95, 109, 111, 100,
3:04:24 PM:     117, 108, 101, 115,  47, 119, 101, 116, 122, 101, 108,  47,
3:04:24 PM:     108, 105,  98,  47, 103, 101, 110, 101, 114,  97, 116, 101,
3:04:24 PM:      77,  97, 114, 107, 100, 111, 119, 110,  46, 106, 115,  58,
3:04:24 PM:      49,  51,  53,  10,  32,  32,  32,  32,  32,  32,  32,  32,
3:04:24 PM:      32,  32,  32,  32,  99, 111, 110, 115, 116,  32, 105, 116,
3:04:24 PM:     101, 109,  32,  61,  32, 115, 116, 121, 108, 101,  46, 103,
3:04:24 PM:     101, 116,  84,  79,
3:04:24 PM:     ... 974 more items
3:04:24 PM:   ]
3:04:24 PM: }
3:04:24 PM:

LOC in question: https://github.com/CesiumGS/wetzel/blob/6871d36cc2249ae21776912f42c0e44edb7dc9a6/lib/generateMarkdown.js#L135-L135

I'm fairly sure this is happening because you don't have a top-level title.  For example in pack.json, you could add a title on line 3:
    "title": "Pack",

Otherwise the title must be inferred from the filename, which might end in *.json or in *.schema.json or might be something else entirely.
I'd prefer not to guess the title from the filename, because these titles end up in important places in the TOC and as anchor link names.  So I think titles should be added at the tops of the schema files.

I've ended up using https://github.com/grafana/json-schema-markdown as an alternative, but all the best to you and your project!


Use vanilla HTML without JS components

Is it possible to use docz without importing JS components and instead just use basic HTML?
I currently have a hello.mdx file which looks like the following:
---
name: Hello World
---

import { Playground } from 'docz'

# Hello
<Playground components={{}}>

Hello

</Playground>

I run yarn docz dev and get the following error:
ERROR  Failed to compile with 1 errors

This dependency was not found:
* srcdocuttons.mdx in ./.docz/app/imports.js
To install it, you can run: npm install --save srcdocuttons.mdx

System specs:

Windows 7
Node v8.9.3
Yarn v1.7.0
docz v0.2.4

Probably related to #12

I want to just use basic HTML like below.
---
name: Hello World
---

import { Playground } from 'docz'

# Hello

test here

But the full page render badly. (no error, no waring)


error exporting file, I just copy example from videoeditor page

Everything seems ok. crop, trim, switch but can't export..
void _exportVideo() async {
Misc.delayed(1000, () => _isExporting.value = true);
//NOTE: To use [-crf 17] and [VideoExportPreset] you need ["min-gpl-lts"] package
final File file = await _controller.exportVideo(
preset: VideoExportPreset.slow,
customInstruction: "-crf 17",
onProgress: (statics) {
if (_controller.video != null)
_exportingProgress.value =
statics.time / _controller.video.value.duration.inMilliseconds;
},
);
actully I'm not sure how can I export to first page that show video to post by using editor

The same, file is always null


Use getDefaultQuery method to set default query

Instead of calling onChange to set default query for new queries, we should use the new getDefaultQuery method defined in the data source api. We can use the same default query as today. https://github.com/grafana/timestream-datasource/blob/05ff4000954b4dd467a3995624c2954eb8af3e9e/src/components/QueryEditor.tsx#L24-L28
Part of https://github.com/grafana/cloud-data-sources/issues/79

Closing as "won't do"
See https://github.com/grafana/oss-plugin-partnerships/issues/79#issuecomment-1549740717 for info


Move to layouts pattern for layout discovery

This acts on https://github.com/RobLoach/metalsmith-jstransformer-layouts/issues/6 , adding a layouts pattern for layout discovery, and allows for a default layout.
https://github.com/RobLoach/metalsmith-jstransformer-layouts/blob/defaults/README.md#configuration
cc @niclashoyer

looks great, thanks!


Update bastion-faq.md

Resubmitting PR 190511 changes.

@cherylmc
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


remove % symbol for total count of missing values

Description
Missing value count was displayed between parenthesis and with a % sign at the end. Removed both.
General Checklist

[ ] Tests added for this feature/bug
if it was a bug, test must cover it.
[ ] Conform by the style guides, by using formatter
[ ] Documentation updated
[ ] (optional) Please add a label to your PR

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.595%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
4938

Relevant Lines:
5814

💛  - Coveralls


OpenJS Foundation Security Collab Space Meeting 2023-06-20

Time
UTC Tue 20-Jun-2023 17:00 (05:00 PM):

Timezone
Date/Time

US / Pacific
Tue 20-Jun-2023 10:00 (10:00 AM)

US / Mountain
Tue 20-Jun-2023 11:00 (11:00 AM)

US / Central
Tue 20-Jun-2023 12:00 (12:00 PM)

US / Eastern
Tue 20-Jun-2023 13:00 (01:00 PM)

EU / Western
Tue 20-Jun-2023 18:00 (06:00 PM)

EU / Central
Tue 20-Jun-2023 19:00 (07:00 PM)

EU / Eastern
Tue 20-Jun-2023 20:00 (08:00 PM)

Moscow
Tue 20-Jun-2023 20:00 (08:00 PM)

Chennai
Tue 20-Jun-2023 22:30 (10:30 PM)

Hangzhou
Wed 21-Jun-2023 01:00 (01:00 AM)

Tokyo
Wed 21-Jun-2023 02:00 (02:00 AM)

Sydney
Wed 21-Jun-2023 03:00 (03:00 AM)

Or in your local time:

https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Security Collab Space+Meeting+2023-06-20&iso=20230620T1700
or https://www.wolframalpha.com/input/?i=05PM+UTC%2C+Jun+20%2C+2023+in+local+time

Links

Minutes Google Doc: https://docs.google.com/document/d/1VePxbTcQCRUmFdAMnHK7TN-g5i6Xq7sK1aRsmMxjekg/edit

Agenda
Extracted from security-agenda labelled issues and pull requests from the openjs-foundation org prior to the meeting.
openjs-foundation/security-collab-space

Discuss Priority Projects From Initial Audit #31

Invited

OpenJS Foundation Security Collab Space Members
OpenJS Foundation Cross Project Council
OpenJS Foundation Project Maintainers
OpenJS Foundation Board of Directors
All are welcome

Observers/Guests
Notes
The agenda comes from issues labelled with security-agenda across all of the repositories in the openjs-foundation org. Please label any additional issues that should be on the agenda before the meeting starts.
Joining the meeting
link for participants: Zoom link: https://zoom.us/j/93954555387

For those who just want to watch: https://livestream.openjsf.org

Invitees
Please use the following emoji reactions in this post to indicate your
availability.

:+1: - Attending
:-1: - Not attending
:confused: - Not sure yet

No minutes. No recording.


Fix usestrictssl option.

The --conn_usestrictssl option is not working.
When I tried to deploy to a server using self-signed with the nwabap command, I got the following error.
root@ba42b27cf2fd:/project/ytest20201013# nwabap upload --base $BASEDIR --conn_server $CONN_SERVER --conn_client $CONN_CLIENT --conn_user $CONN_USER --conn_password $CONN_PASSWORD --conn_usestrictssl false --abap_package $ABAP_PACKAGE --abap_bsp $ABAP_BSP --abap_bsp_text "UI5 upload test objects" --abap_transport $TR | grep -v Request-Url
Found 34 files. Starting upload...
Request-Method: get
Error: self signed certificate
Details:
undefined
root@ba42b27cf2fd:/project/ytest20201013#

I think it's because the useStrictSSL option on line 75 of lib / filestore.js requires a boolean type but receives the string "false".

Is this project active?

Thanks!


hcipy: init at 0.6.0

This PR adds the HCIPy python library.
HCIPy is an open-source, modular Python package for high-contrast imaging on current and future telescopes.
More information available on the projects homepage.
I have successfully built the package and tested it's functionality.
This is the first time I add a Python package.
Help is really appreciated if I missed something.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

The commit message should start with python3Packages.

I have adjusted the commit message and applied all requested changes.

@ofborg build python312Packages.hcipy

Tests fail on aarch64-linux
tests/test_aperture.py ................................................. [ 13%]
.............s.s..............                                           [ 21%]
tests/test_atmosphere.py .s.s.s.s......                                  [ 25%]
tests/test_config.py .                                                   [ 26%]
tests/test_coronagraphy.py ........Fatal Python error: Aborted

Please mark as broken or fix

I'm neither a developer of the project nor do I have arm64 hardware to check and debug the problem, so I can't fix it.
Therefore I marked the package as broken on arm64 for now and created an issue on the upstream project.


Adding firebase service to donejs deploy

Remove divshot packages
Update readme
Fixed some errors where the configuration was not available in package.json
Authentication for firebase
Remove test config from package.json
Finished deployment from package.json
Reading config from firebase.json

I still need to add tests.

We don't actually want to remove Divshot yet, it's still working and depend on it for DoneJS chat and place-my-order (for now).  Others might be using it as well so I think we should leave it in until it shuts down.  However if you want to put a warning on the cli or something that would be ok.

We also might want to refactor this to work like donejs add cordova (e.g. donejs add deploy firebase). I don't think it would be too difficult but remove the hard dependency on DoneJS deploy.

@daffl great idea, i've opened a new issue for that https://github.com/donejs/deploy/issues/38 and will do that next.  I'm going to finish the test for this one first.


Offering Keys.POWERED or BlockTrait BooleanTraits.LEVER_POWERED to a lever doesnt update the block the lever is on.

I am currently running

SpongeVanilla version: 1.12.2-7.1.7-RC218 (recommended/latest still?)
Java version: 1.8.0_222/64-bit
Operating System: Linux (4.4.0-89-generic/amd64)

Plugins: Just my test plugin

Issue Description
I have attempted to change the state of a lever by trying either the methods above like so:
if(!block.supports(Keys.POWERED)) return; Sponge.getCauseStackManager().pushCause(Object); block.offer(Keys.POWERED, power); Sponge.getCauseStackManger().popCause();
and
Optional<BlockState> lever = block.getBlock().withTrait(BooleanTraits.LEVER_POWERED,power);             if(lever.isPresent()) {                 Sponge.getCauseStackManager().pushCause(Object);                 block.setBlock(lever.get());                 Sponge.getCauseStackManager().popCause();             }
Ive even added a scheduled update on the block the lever is on, to no avail.
The reason i say the block the lever is on is not updating is because redstone torches and lamps on the block don't update around the block the lever is on. Redstone or other blocks DIRECTLY connected to the lever work as normal. Oddly enough, i dont hear the lever flick sound effect, not sure if related.

Update: Doesn't work using DataManipulators

Update: It would appear this is actually a mojang bug related to: https://bugs.mojang.com/browse/MC-120682
I was able to work around my problem using NMS World. Set Lever blockstate, notifyNeighbors, update attached block, notifyNeighbors.
A Sponge fix would be awesome though.


Fix runtests.sh proceeds on compilation error #92

Fix #92

Missing fix for the bash script counterpart. The Linux audience is displeased. :O

oops LOL

Commit subject self-explanatory or we need full commit messages for each commit (as per usual se-edu practice)?

Let's squash the commits into one, don't think it is necessary to have them separate.
The commit message should mention that compilation error can still result in test passing (because it uses the old compiled version to run the test even if the new one has a compilation error).
Sent from Outlookhttp://aka.ms/weboutlook

From: Damith C. Rajapakse<EMAIL_ADDRESS>Sent: Sunday, August 5, 2018 12:42
To: se-edu/addressbook-level1
Cc: Tan Wang Leng; Review requested
Subject: Re: [se-edu/addressbook-level1] Fix runtests.sh proceeds on compilation error #92 (#101)
Commit subject self-explanatory or we need full commit messages for each commit (as per usual se-edu practice)?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fse-edu%2Faddressbook-level1%2Fpull%2F101%23issuecomment-410495456&data=02|01||88d2fae1da2c45ecb12008d5fa8de486|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636690409688535230&sdata=dBj3z0LmKPvqKluqCgG5mRgNQIRLYiHDCX3VU5ggJ98%3D&reserved=0, or mute the threadhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FADBajME-a_VBtnIRG_DZN7JUmkMFuhfDks5uNnfFgaJpZM4VvCz-&data=02|01||88d2fae1da2c45ecb12008d5fa8de486|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636690409688535230&sdata=9Lp%2BD91ttvRvqjkZAS9rrpe4hhkpxYfoRMaIWFdqBX8%3D&reserved=0.

Personally i think having long messages for level 1 can be quite intimidating to the students, because they should start by writing good commit subjects before going down into full length commit messages.
Anyway, heres my proposed message.
Runtests continues its execution on compilation error.

This increases the latency time as all the subsequent commands are
dependent on compiled executable.

Let's terminate the script immediately when error arises.

Personally i think having long messages for level 1 can be quite intimidating to the students, because they should start by writing good commit subjects before going down into full length commit messages.

Actually, we don't ask students to follow commit message standard even at level 4. The standard is more for se-edu developers rather than AB-4 users and should be same at all AB levels.

Anyway, heres my proposed message.

I improved the proposed message to suit the style of se-edu:
Runtests scripts compile the program under test, before executing the
tests. The tests always execute regardless of whether the compilation
succeeds or not.

If the program has compilation errors, the runtests scripts are actually
testing an older version of the program without the errors. This results
in misleading test results.

Let's teach the scripts to terminate immediately when the program fails
to compile.

Yup, this PR should be squashed

Will you be doing the squash and submitting a CanIHasReview, or are you planning to use GitHub's squash and merge?

Will you be doing the squash and submitting a CanIHasReview, or are you planning to use GitHub's squash and merge?

I think GitHub's squash and merge is good enough.


App Bar pulled down and requires remove padding

Steps to reproduce

I updated the sdk and start playing with editing status bar colors natively and then, flutter causes appbars to render very below their point with some padding.

Expected results
Screens with appbars should render just fine starting from the top like illustrated on the image

Actual results

Above is a screenshot with the results displayed without telling MediaQuery to remove padding on the build function.
Code sample
Widget build(BuildContext context){
    return Container(
      decoration: BoxDecoration(
        border: Border.all(color: Colors.black, width: 4),
        color: Colors.green,
      ),
      child: Scaffold(
        backgroundColor: Colors.amber,
        appBar: AppBar(
          backgroundColor: Colors.pink,
          title: Text('orders'.tr),
        ),
      ),
    );
}

Explanation
Without the media query to remove the space manually, it displays the space above the appbar.
To remove it, I have to manually replace with the below code:
MediaQuery.removePadding(
      context: context,
      removeTop: true,
      child: Container(
        decoration: BoxDecoration(
          border: Border.all(color: Colors.black, width: 4),
          color: Colors.green,
        ),
        child: Scaffold(
          backgroundColor: Colors.amber,
          appBar: AppBar(
            backgroundColor: Colors.pink,
            title: Text('orders'.tr),
          ),
        ),
      ),
    );

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[        ] Installing APK.
[   +1 ms] Installing build/app/outputs/flutter-apk/app-debug.apk...
[        ] executing: /Users/angeloem/Library/Android/sdk/platform-tools/adb -s emulator-5554 install -t -r /Users/angeloem/IdeaProjects/chapchap-app/build/app/outputs/flutter-apk/app-debug.apk
[+1608 ms] Performing Streamed Install
                    Success
[   +1 ms] Installing build/app/outputs/flutter-apk/app-debug.apk... (completed in 1,609ms)
[   +1 ms] executing: /Users/angeloem/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell echo -n aa8238a4e03de1b20b4c93ff8345ac13d4e33ab8 >
/data/local/tmp/sky.tz.co.codeblock.chapchap.sha1
[  +30 ms] executing: /Users/angeloem/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell -x logcat -v time -t 1
[ +149 ms] --------- beginning of system
                    11-25 16:56:59.264 E/AppOps  (  551): attributionTag VCN not declared in manifest of android
[  +14 ms] executing: /Users/angeloem/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x20000000 --ez
enable-dart-profiling true --ez enable-checked-mode true --ez verify-entry-points true tz.co.codeblock.chapchap/tz.co.codeblock.chapchap.MainActivity
[ +157 ms] Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x20000000 cmp=tz.co.codeblock.chapchap/.MainActivity (has extras) }
[        ] Waiting for VM Service port to be available...
[+2278 ms] VM Service URL on device: http://<IP_ADDRESS>:36423/MorA0clNSjI=/
[        ] executing: /Users/angeloem/Library/Android/sdk/platform-tools/adb -s emulator-5554 forward tcp:0 tcp:36423
[  +10 ms] D/FlutterGeolocator(13784): Attaching Geolocator to activity
[  +15 ms] 59607
[        ] Forwarded host port 59607 to device port 36423 for VM Service
[   +4 ms] Caching compiled dill
[ +164 ms] Connecting to service protocol: http://<IP_ADDRESS>:59607/MorA0clNSjI=/
[  +55 ms] D/FlutterGeolocator(13784): Creating service.
[   +4 ms] D/FlutterGeolocator(13784): Binding to location service.
[ +169 ms] D/FlutterGeolocator(13784): Geolocator foreground service connected
[        ] D/FlutterGeolocator(13784): Initializing Geolocator services
[        ] D/FlutterGeolocator(13784): Flutter engine connected. Connected engine count 1
[  +41 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at http://<IP_ADDRESS>:59607/MorA0clNSjI=/.
[ +119 ms] DDS is listening at http://<IP_ADDRESS>:59610/lyvNtb52qgw=/.
[  +55 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:59607/MorA0clNSjI=/
[  +50 ms] DevFS: Creating new filesystem on the device (null)
[  +16 ms] DevFS: Created new filesystem on the device (file:///data/user/0/tz.co.codeblock.chapchap/code_cache/chapchap-appMYCPJD/chapchap-app/)
[   +1 ms] Updating assets
[ +464 ms] Manifest contained wildcard assets. Inserting missing file into build graph to force rerun. for more information see #56466.
[   +2 ms] Syncing files to device sdk gphone16k arm64...
[   +1 ms] Compiling dart to kernel with 0 updated files
[        ] Processing bundle.
[        ] <- recompile package:chapchap/main.dart 28e3adc3-f18a-4b22-8ea0-c86b8c80e732
[        ] <- 28e3adc3-f18a-4b22-8ea0-c86b8c80e732
[   +4 ms] Bundle processing done.
[   +2 ms] W/FlutterJNI(13784): FlutterJNI.loadLibrary called more than once
[        ] I/ResourceExtractor(13784): Found extracted resources res_timestamp-94-1732543018889
[        ] W/FlutterJNI(13784): FlutterJNI.prefetchDefaultFontManager called more than once
[        ] W/FlutterJNI(13784): FlutterJNI.init called more than once
[        ] I/FLTFireBGExecutor(13784): Creating background FlutterEngine instance, with args: [--enable-dart-profiling]
[        ] D/Android: [Awesome Notifications](13784): Awesome Notifications plugin attached to Android 35 (AwesomeNotificationsPlugin:155)
[        ] D/Android: [Awesome Notifications](13784): Awesome Notifications attached to engine for Android 35 (AwesomeNotificationsPlugin:137)
[        ] D/FlutterGeolocator(13784): Geolocator foreground service connected
[        ] D/FlutterGeolocator(13784): Initializing Geolocator services
[        ] D/FlutterGeolocator(13784): Flutter engine connected. Connected engine count 2
[ +203 ms] I/flutter (13784): Navigated from Unknown to /
[  +38 ms] I/FLTFireMsgService(13784): FlutterFirebaseMessagingBackgroundService started!
[  +93 ms] I/flutter (13784): INITING THE CART WIDGET
[  +87 ms] Updating files.
[        ] Pending asset builds completed. Writing dirty entries.
[        ] DevFS: Sync finished
[        ] Syncing files to device sdk gphone16k arm64... (completed in 432ms)
[        ] Synced 0.0MB.
[   +1 ms] <- accept
[   +3 ms] Connected to _flutterView/0xb4007abb701b1450.
[        ] Connected to _flutterView/0xb4007abb701c4c40.
[   +2 ms] Flutter run key commands.
[        ] r Hot reload. 🔥🔥🔥
[        ] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] A Dart VM Service on sdk gphone16k arm64 is available at: http://<IP_ADDRESS>:59610/lyvNtb52qgw=/
[ +111 ms] The Flutter DevTools debugger and profiler on sdk gphone16k arm64 is available at: http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:59610/lyvNtb52qgw=/
[ +744 ms] I/flutter (13784): Navigated from / to /home_page
[  +46 ms] I/flutter (13784): INITING THE CART WIDGET
[ +100 ms] W/WindowOnBackDispatcher(13784): OnBackInvokedCallback is not enabled for the application.
[        ] W/WindowOnBackDispatcher(13784): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
[ +178 ms] D/EGL_emulation(13784): app_time_stats: avg=173.96ms min=3.00ms max=926.90ms count=6
[+1004 ms] D/EGL_emulation(13784): app_time_stats: avg=5.39ms min=0.57ms max=46.61ms count=59
[ +673 ms] D/ProfileInstaller(13784): Installing profile for tz.co.codeblock.chapchap
[ +341 ms] D/EGL_emulation(13784): app_time_stats: avg=18.39ms min=8.68ms max=116.49ms count=55
[+1018 ms] D/EGL_emulation(13784): app_time_stats: avg=16.86ms min=5.60ms max=40.59ms count=59
[+1015 ms] D/EGL_emulation(13784): app_time_stats: avg=18.36ms min=13.37ms max=117.86ms count=55
[+1015 ms] D/EGL_emulation(13784): app_time_stats: avg=16.43ms min=13.89ms max=20.22ms count=61
[+1037 ms] D/EGL_emulation(13784): app_time_stats: avg=17.98ms min=1.03ms max=118.52ms count=48
[+1012 ms] D/EGL_emulation(13784): app_time_stats: avg=16.24ms min=5.69ms max=24.99ms count=61
[+1000 ms] D/EGL_emulation(13784): app_time_stats: avg=13.80ms min=1.22ms max=20.65ms count=55
[+1000 ms] D/EGL_emulation(13784): app_time_stats: avg=18.41ms min=13.41ms max=117.26ms count=54
[ +306 ms] I/flutter (13784): Navigated from /home_page to OrdersListNew
[  +17 ms] D/STATUS_BAR_CHANGE_TAG(13784): beginning the call handler with method changeColor
[   +1 ms] D/STATUS_BAR_CHANGE_TAG(13784): data passed is {background=#ffffff, foreground=#ffffff}
[  +59 ms] W/WindowOnBackDispatcher(13784): OnBackInvokedCallback is not enabled for the application.
[        ] W/WindowOnBackDispatcher(13784): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
[ +175 ms] I/flutter (13784): incoming data of value 2 and present data 0

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0.1 24A348 darwin-arm64, locale en-TZ)
    • Flutter version 3.24.3 on channel stable at /Users/angeloem/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (3 months ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/angeloem/Library/Android/sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/angeloem/Library/Android/sdk
    • Java binary at: /Users/angeloem/Library/Java/JavaVirtualMachines/corretto-17.0.12/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment Corretto-<IP_ADDRESS>.1 (build 17.0.12+7-LTS)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/to/macos-android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.15.2

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/to/macos-android-setup for detailed instructions).

[✓] IntelliJ IDEA Ultimate Edition (version 2024.3)
    • IntelliJ at /Users/angeloem/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 82.2.4
    • Dart plugin version 243.22562.3

[✓] VS Code (version 1.95.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.100.0

[✓] Connected device (3 available)
    • sdk gphone16k arm64 (mobile)    • emulator-5554         • android-arm64 • Android 15 (API 35) (emulator)
    • macOS (desktop)                 • macos                 • darwin-arm64  • macOS 15.0.1 24A348 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin        • macOS 15.0.1 24A348 darwin-arm64

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 3 categories.

@darshankawar ,
That is interesting. I was on flutter 3.1+ before upgrading.
Yes, it showed a different behavior before. And the app was nearly finished. Waiting to deploy it.
I will try applying as set in the official example and will get back to you.

@darshankawar , I tried copying the output from the examples you shared, there was no difference.
Does the router play any part in determining the ToScreen dimensions? I am thinking that it could be the culprit in this case

@Angeloem
Please provide us complete runnable reproducible code sample (ex: main.dart) that shows the reported behavior.

That would be difficult. It is business application governed under NDAs.
I would love to offer you a sneak preview of the code and the output provided, via conference call if need be.
Otherwise, please do let me know of how we can move forward.

Does the router play any part in determining the ToScreen dimensions?

@Angeloem Can you elaborate on this ? Are you using go_router or routing framework ? Can you provide atleast code implementation for this which leads to the reported behavior ?

I am using a get framework for routing and state management.
I decided to restart writing the project afresh, with new project, there is no such issue.

And, if it helps, the repository is on Bitbucket, not github

get framework for routing and state management.

This is third party package.

with new project, there is no such issue.

This means the issue may not be in flutter framework.

how I could provide the least providable code implementation?

https://stackoverflow.com/help/minimal-reproducible-example

This is third party package.

I am aware, I tried navigating using Material Router with the same results.

https://stackoverflow.com/help/minimal-reproducible-example
This is great, but time is not on my side. I have started a fresh project as in those examples and I see it works without issues. I am thinking of migrating the whole codebase without get framework.

Appreciate your time.


"Could not find artifact jmespath:jmespath:jar:1.0.1 in ..."

Adding [jmespath "1.0.1"] to project.clj and doing a lein deps does not work.
$ lein deps
Could not find artifact jmespath:jmespath:jar:0.1.0 in central (http://repo1.maven.org/maven2/)
Could not find artifact jmespath:jmespath:jar:0.1.0 in clojars (https://clojars.org/repo/)
This could be due to a typo in :dependencies or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.

I'm not familiar with the packaging process for Leiningen/Clojure, but it looks like it can't be found.

Sorry about that. This library is currently completely unusable. I've been using it as a proof of concept for rewriting the JMESPath grammar in https://github.com/jmespath/jmespath.site/pull/2. Until that is merged into JMESPath, this library will remain mostly experimental. Once it's ready for production use, we'll move it to the jmespath Github org.


refactor(GUI): make settings model setter asynchronous

This is part of the process of implementing support for a configuration
file. We previously decoupled the Redux store from localStorage by
moving the logic that actually persists the data to localStorage to a
local-settings.js file, however the localStorage API is synchronous, so
it follows that at the moment, all functions that interact with are also
synchronous.
Moving to storing the settings to a file means turning all these
functions to promises, which we do in this commit, in order to not mix
the addition of the configuration file feature with the huge amount of
refactoring it requires.
See: https://github.com/resin-io/etcher/issues/1356
Change-Type: patch
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

This might be a stupid question :wink: but with the settings file being so small, it'll probably load and save really quickly, so what problem(s) would there be if this code was left as synchronous?

@lurch regardless of file size, doing I/O would block the current tick, while doing this asynchronously allows the I/O to happen in libuv's thread without blocking the JS one.
For example, imagine your storage device is under high load (even SSDs can reach response times in the 100s of milliseconds); then you'd be freezing up the whole thing for that duration if done synchronously.
Not something you'd want to happen.

I guess that could work, but better to be prepared in case the file size increases, I/O is slow, etc. By using promises, the user can actually decide to wait or not, which increases flexibility.

The localStorage API is synchronous, and we never thought of a configuration file before, so I guess no particular reason apart from not anticipating we would switch to something else.

Because localStorage is a Web API and access is always synchronous and implementation browser dependent (in this case, with Chromium, it's backed by LevelDB if my memory serves me right), while this whole libuv and doing I/O outside the main JS thread is a Node thing.

When I looked into it previously it appeared to be using SQLite.

Oh, gone are those days then

if my memory serves me right

...

gone are those days then

Happens to everyone, as you get older :wink: :rofl:

Is this good to merge?

I'm assuming there are no further comments here, but let me know if that's not the case!


Label on chip groups can run out of room

Label on chip groups can run out of room.
Same problem for chips themselves. Possibly adding a tooltip to the label or chip would be sufficient?

:tada: This issue has been resolved in version 2.46.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

@mcoker @mattnolting @nicolethoen this fixes the issue visually, but it looks like there needs to be an update to allow the full information for both key and value to show up via tooltip on hover:

@jlmitch5 the tooltip is enabled on chips with overflowing text in the react component, since the tooltip component requires JS for its positioning - https://www.patternfly.org/v4/documentation/react/components/chipgroup#single

@jlmitch5 agreed, opened an issue in react to add that functionality https://github.com/patternfly/patternfly-react/issues/3490


Extension logos are clipped

On their single view pages, some extensions have their logos clipped on the right hand side.
Some examples:

Couchbase
Quinoa
Temporal

It looks like the image/svg gets resized to 220x220px, but the parent div cuts the right handside. It's not a huge deal but I thought of letting you know.

Thanks for the report!


Enable alpha test when using vertex alpha in some cases

This change addresses some edge cases tested by a new test model in the glTF sample assets repo: https://github.com/KhronosGroup/glTF-Sample-Assets/pull/146.
The issue is that alpha test is not taking into account whether a mesh has vertex alpha or not.
Before:

After:

TODO

[ ] Add test once new test model is merged

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15504/merge
Test environment:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15504/merge/index.html
To test a playground add it to the URL, for example:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15504/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15504/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15504/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15504/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15504/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15504/merge#BCU1XR#0

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15504/merge/testResults/webgpuplaywright/index.html

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15504/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15504/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Closing in favor of #15573


Vim9: crash after calling ":def" function that has many "has_key(g:, {expr})"s

Describe the bug
In Vim9 script, Vim crashes after calling :def function that has many has_key(g:, {expr})s.
To Reproduce

Run vim --clean.

Source following script.
vim9script

def Test()
  for i in range(100000)
    if has_key(g:, 'test')
    endif
  endfor
enddef

Test()

Vim crashes.
Vim: Caught deadly signal ABRT
Vim: Finished.

Expected behavior
Vim does not crash.
Environment

Vim 8.2.2529
macOS Catalina (version 10.15.7)
iTerm2

Thanks!


fix impoirt AudioConfiguration error

fix error import type of AudioConfiguration

 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.


Add support for third party authentication

[ ] google
[ ] facebook

[ ] github?

Port LDAP from kbn-authentication-plugin? This module could be reused in other projects.

Vertx already supports this, reuse that. if its required in a project - implement it there. No time to implement this just for the sake.