text:
Logging events delimited by newline?

I'm not sure if this is a bug or expected behavior, running docker 1.9.1...
Docker appears to be creating separate log entries for every new line it encounters.  Here's a simple example where I run
docker run debian:jessie printf "one\ntwo\nthree"

and then inspecting the container json logs, I see
{"log":"one\n","stream":"stdout","time":"2016-02-08T18:33:16.36791762Z"}
{"log":"two\n","stream":"stdout","time":"2016-02-08T18:33:16.367958027Z"}
{"log":"three\n","stream":"stdout","time":"2016-02-08T18:33:16.381349874Z"}

I was expecting something like
{"log":"one\ntwo\nthree","stream":"stdout","time":"2016-02-08T18:33:16.36791762Z"}

My real use case is related to using the GELF logging driver and dealing with tracebacks.  It looks like the GELF logging driver is set up to put a log message into full_message if it has new lines in it (e.g. tracebacks), but it appears that no matter what I do, docker is breaking up the message into separate logging events before it gets to the GELF Writer.
The Message interface appears to store the log line in Line from the look of it, but I don't know where in the code Message's are manufactured.

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

Related to #18057?

@MHBauer Yeah looks related, they even found the line where its looking for newline's!
https://github.com/docker/docker/blob/master/daemon/logger/copier.go#L47
#18057 wants to clip the log line if the line exceeds a certain size or if "\n" is encountered, but that wouldn't solve the problem of trying to get a traceback out of docker as one log event.
Maybe what I'm asking is ill posed, i.e. is it even possible for the logger to detect something like printf "one\ntwo\nthree" as a single logging event?

While it might be an optimization to group multiple lines into a single json entry, you can't rely on that behavior to separate chunks of output. STDOUT, STDERR, & STDIN are streams, not datagrams.

@phemmer Thanks!
I see now that the behavior I was expecting to see doesn't make sense in the context of Docker logs.  The application itself knows the boundaries of what it is trying to log, but that piece of info is lost in the abstraction of Docker forwarding stdout/stderr of the application along.
I'm going to close this this one out!

authors: GordonTheTurtle MHBauer phemmer youngpm


text:
server load is too high

Output of docker version:
Containers: 200
 Running: 200
 Paused: 0
 Stopped: 0
Images: 3
Server Version: 1.11.0
Storage Driver: overlay
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 4.5.0-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 125.9 GiB
Name: BJ-M5-SYSLOG-20-117
ID: WNFF:H7QS:ME57:LRST:P3ML:PCL6:2LBS:LNVY:MFP2:KO4M:3IHV:VQL7
Docker Root Dir: /data/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Labels:
 group=cps
 env=online

Output of docker info:
Containers: 200
 Running: 200
 Paused: 0
 Stopped: 0
Images: 3
Server Version: 1.11.0
Storage Driver: overlay
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 4.5.0-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 125.9 GiB
Name: BJ-M5-SYSLOG-20-117
ID: WNFF:H7QS:ME57:LRST:P3ML:PCL6:2LBS:LNVY:MFP2:KO4M:3IHV:VQL7
Docker Root Dir: /data/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Labels:
 group=cps
 env=online

Additional environment details (AWS, VirtualBox, physical, etc.):
Steps to reproduce the issue:

build a image from Dockerfile like this

    FROM  erkekin/tornado
    RUN mkdir -p /data/test
    ADD /hello.py /data/test/

the hello.py like this:
        #!/data/server/python/bin/python2.7
        # -*- coding: utf-8 -*-
        import tornado
        import tornado.ioloop
        import tornado.web
        from tornado.options import define, options
        define("port", default=8080, help="run on this port", type=int)

        class MainHandler(tornado.web.RequestHandler):
                def get(self):
                       self.write("Hello, world")

        def make_app():
               return tornado.web.Application([
                       (r"/", MainHandler),
               ])

        if __name__ == "__main__":
               tornado.options.parse_command_line()
              app = make_app()
              print options.port
              app.listen(options.port)
              tornado.ioloop.IOLoop.current().start()

install nginx on  real server and config upstream

upstream tornado_zhangyue_newcps{
    # newcps
    server    10.100.20.117:9400   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9401   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9402   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9403   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9404   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9405   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9406   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9407   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9408   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9409   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9410   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9411   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9412   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9413   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9414   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9415   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9416   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9417   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9418   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9419   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9420   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9421   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9422   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9423   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9424   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9425   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9426   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9427   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9428   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9429   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9430   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9431   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9432   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9433   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9434   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9435   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9436   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9437   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9438   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9439   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9440   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9441   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9442   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9443   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9444   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9445   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9446   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9447   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9448   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9449   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9450   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9451   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9452   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9453   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9454   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9455   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9456   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9457   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9458   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9459   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9460   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9461   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9462   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9463   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9464   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9465   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9466   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9467   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9468   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9469   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9470   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9471   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9472   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9473   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9474   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9475   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9476   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9477   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9478   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9479   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9480   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9481   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9482   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9483   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9484   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9485   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9486   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9487   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9488   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9489   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9490   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9491   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9492   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9493   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9494   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9495   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9496   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9497   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9498   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9499   max_fails=2 fail_timeout=5s weight=1;
    #95
    server    10.100.20.117:9500   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9501   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9502   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9503   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9504   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9505   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9506   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9507   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9508   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9509   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9510   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9511   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9512   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9513   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9514   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9515   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9516   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9517   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9518   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9519   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9520   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9521   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9522   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9523   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9524   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9525   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9526   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9527   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9528   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9529   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9530   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9531   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9532   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9533   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9534   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9535   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9536   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9537   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9538   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9539   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9540   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9541   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9542   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9543   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9544   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9545   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9546   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9547   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9548   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9549   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9550   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9551   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9552   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9553   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9554   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9555   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9556   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9557   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9558   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9559   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9560   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9561   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9562   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9563   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9564   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9565   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9566   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9567   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9568   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9569   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9570   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9571   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9572   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9573   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9574   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9575   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9576   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9577   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9578   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9579   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9580   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9581   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9582   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9583   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9584   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9585   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9586   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9587   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9588   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9589   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9590   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9591   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9592   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9593   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9594   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9595   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9596   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9597   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9598   max_fails=2 fail_timeout=5s weight=1;
    server    10.100.20.117:9599   max_fails=2 fail_timeout=5s weight=1;

    keepalive 64;
}

run script to start 200 containers:

#!/bin/bash
for i in {9400..9599};
do
   docker run -itd --net=host hello_test python /data/test/hello.py --port=$i;
done

use ab command to test

ab -n 100000 -c 500 http://10.100.20.117:8070/

Describe the results you received:
result for top command:

use dstat --top-cpu command get this result:

Describe the results you expected:
when I do the same test on real physical host , the average load is 9, but in container the load is about 50, it is too high than physical host , any suggestions about this?
Additional information you deem important (e.g. issue happens only occasionally):

This looks like it might be a dup of #21880. If so, you might want to add your info there to keep all the troubleshooting in one place.

closing in favor of #21880

source: gharchive/issue

authors: LK4D4 baboq phemmer

repo: docker/docker

license_type: permissive

license_source: github-api


text:
Absolute paths change with git bash on windows

docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

using from git bash on win10 cause
C:\Program Files\Docker\Docker\Resources\bin\docker.exe:
Error response from daemon:
oci runtime error:
exec: "C:/Program Files/Git/usr/bin/sh":
stat C:/Program Files/Git/usr/bin/sh: no such file or directory.

and docker ps -a returns
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
82be3202167b        ubuntu              "C:/Program Files/Git"   About a minute ago   Created                                 jovial_engelbart

seems like git bash change all dirs from root to local one, related to git bash installation
exec this command from power shell works well

also it change dir when adding a data volume
docker run -d -P --name web -v /webapp training/webapp python app.py

"Mounts": [
    {
        "Name": "945c5b0f0e3b140dad75b0de9850f504c37ef8472c94bd69550bc89af4210914",
        "Source": "/var/lib/docker/volumes/945c5b0f0e3b140dad75b0de9850f504c37ef8472c94bd69550bc89af4210914/_data",
        "Destination": "C:/Program Files/Git/webapp",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
],

running this command in power shell works fine
find similar issue on stack overflow

+1
$ winpty docker run -it -p 8065:80 -p 2262:22 drupal:7.50 /bin/bash
docker: Error response from daemon: oci runtime error: exec: "C:/Program Files/Git/usr/bin/bash": stat C:/Program Files/Git/usr/bin/bash: no such file or directory.
$ docker version
Client:
Version:      1.12.0
API version:  1.24
Go version:   go1.6.3
Git commit:   8eab29e
Built:        Thu Jul 28 21:15:28 2016
OS/Arch:      windows/amd64
Server:
Version:      1.12.0
API version:  1.24
Go version:   go1.6.3
Git commit:   8eab29e
Built:        Thu Jul 28 21:15:28 2016
OS/Arch:      linux/amd64
COMMAND
"C:/Program Files/Git"
... on Windows 10 Pro

Getting the same error on Windows 10 Right now.
me@my-pc MINGW64 /z
$ docker run -it ubuntu /bin/bash
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: oci runtime error: exec: "C:/Program Files/Git/usr/bin/bash": stat C:/Program Files/Git/usr/bin/bash: no such file or directory.

$ docker info
Containers: 23
 Running: 0
 Paused: 0
 Stopped: 23
Images: 18
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 67
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge overlay host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.20-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.942 GiB
Name: moby
ID: WKOX:HURI:52OJ:XGQG:3XP5:4VQ3:DPRC:RHEA:HNX5:UU2X:JTKM:42DT
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 14
 Goroutines: 23
 System Time: 2016-09-29T04:15:05.3298145Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Insecure Registries:
 127.0.0.0/8

Yes, that's mingw trying to be smart, and converting paths. It's not a bug in Docker, but the way mingw handles these paths. Here is some more information about that "feature"; http://www.mingw.org/wiki/Posix_path_conversion. Prefixing the path with a double slash (//bin/bash) should prevent this, or you can set MSYS_NO_PATHCONV=1, see http://stackoverflow.com/questions/7250130/how-to-stop-mingw-and-msys-from-mangling-path-names-given-at-the-command-line#34386471
(but I'm not on Windows myself, so cannot check).

authors: caylorme kriku thaJeztah xandermar


text:
Replace fmt.Fprint* with io.WriteString

This fixes vet warnings in api/client/stats.go
Fixes #11825
Signed-off-by: Ankush Agarwal ankushagarwal11@gmail.com

Updated

@ankushagarwal Thanks!
LGTM

source: gharchive/pull-request


text:
Switch syslog to log the container name if available, not ID

As I've been using the syslog integration I've found the usability to be quite poor.  Logging the container ID is often not useful.  For "system" level thing I most always run them as ephemeral, which means on each system boot I delete the container and create a new one.  When you do this the ID obviously changes.  If I look back at the syslog from some time ago I can no longer correlate log messages to container because there is no reference for the ID.  By using the container name, if you name your containers, you at least get some better way to correlate log messages.

@jfrazelle @LK4D4 Can we please get this in 1.6?  The usability of syslog is really quite poor in my mind.

Would it make sense to have this configurable via a --log-opts flag? I've seen many users that don't use container-names and prefer container-IDs as the "sole truth".
Unfortunately, --log-opts is currently mingled with the rollover driver (https://github.com/docker/docker/pull/11485); perhaps the --driver-opts should be separated in a new pull-request.

I think we can add that option after rollover is merged and we have log driver opts.  I know there's a use case for logging the ID so we should support both.  If I have to choose one now I'd prefer it to be name.
If we want to merge this PR, I'll gladly create an issue to log the ID and we'll put in another PR that will land in 1.7

If I have to choose one now I'd prefer it to be name.

It's a new feature for 1.6, so no BC breaking change, right?

@ibuildthecloud IMO, this should be a configurable option for the container.

What about a hostname such as:
fa89906cb53b.my_docker_container.myhost.acme.com

or just
fa89906cb53b.my_docker_container

This would be for out of the box, and then later we can add the flags to tune it.

@phemmer I could go with that, the length of the log message just gets longer.
@unclejack once we have the log opts from the rollover PR it will be configurable per container

Thinking about this a bit more, what about just using the hostname of the container
docker run --hostname=foo myimg

hostname would be foo.
By default, the hostname is the container ID, but if you're manually specifying the container name, just add the same value to hostname.

what about just using the hostname of the container

Won't work, because container host names aren't unique on the host; I can start multiple containers with the same hostname.

Won't work, because container host names aren't unique on the host; I can start multiple containers with the same hostname.

I don't see why that's a problem. If the user wants to give the same name to multiple containers, that's their prerogative.

Also a problem for net host containers
On Saturday, April 11, 2015, Patrick Hemmer notifications@github.com
wrote:

Won't work, because container host names aren't unique on the host; I can
start multiple containers with the same hostname.
I don't see why that's a problem. If the user wants to give the same name
to multiple containers, that's their prerogative.
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/pull/12296#issuecomment-91934091.

I don't see why that's a problem. If the user wants to give the same name to multiple containers, that's their prerogative.

It can be an option in the future (after the --log-opts flag is introduced), but I don't think it will be resolving the use case described here. So I think the choices are;

ContainerID
ContainerName
Both

Also a problem for net host containers

I don't see why. The option is still set, it's just not used.

I don't think it will be resolving the use case described here.

Why wouldn't it? The problem described here is that the syslog hostname changes. Not that it's not unique.

I like idea of tag in log-opts like in std package.

@jfrazelle @LK4D4 any chance this can get into 1.6?  If it can't then I'll just close this PR and create another one with a configurable log opt.  I really think the default should be name, not ID.  Just my two cents.

Because this is new feature I think we can include this to 1.6 or 1.6.1 without harm. But I'm not sure about names by default, it is little inconsistent with other code (for example hostname) and there are more use-cases for IDs now, then for names.

Okay, if there is not a clear obvious agreement then I think we should probably just focus on making it configurable.  I'll close or update this PR shortly when I have the code to make it configurable.

Majority vote says this is bad :) Closing

authors: LK4D4 ibuildthecloud jfrazelle phemmer thaJeztah unclejack


text:
Prevent uncontrolled exec config growth

Fixes #14444
This includes two commits:

This removes the exec config from the container after the command exits
so that dead exec commands are not displayed in the container inspect.
The commands are still kept on the daemon so that when you inspect the
exec command, not the container, you are still able to get it's exit
status.

This also changes the ProcessConfig to a pointer.

This adds an event loop for running a GC cleanup for exec command
references that are on the daemon.  These cannot be cleaned up
immediately because processes may need to get the exit status of the
exec command but it should not grow out of bounds.  The loop is set to a
default 5 minute interval to perform cleanup.

It should be safe to perform this cleanup because unless the clients are
remembering the exec id of the process they launched they can query for
the status and see that it has exited.  If they don't save the exec id
they will have to do an inspect on the container for all exec instances
and anything that is not live inside that container will not be returned
in the container inspect.

@bprashanth and @thockin do you think this fix will address your specific issues around CPU and memory?
Thanks for checking it out.

To be clear, the GC will nuke old exec info after O(minutes)?  For example, we run a health-check every 10 seconds by exec.  That means the daemon will hold (60/10)*5 = 30 old execs and that's all?  That seems workable, I think.
Thanks for jumping on it.

Prashanth has better hands-on view than I do right now.

@thockin yes and the exec id list on the container inspect will be immediately removed whenever the exec process dies to cover that path as well.  Do you wont see large lists of exec ids even if they are all running.

LGTM

Thanks for the quick turn around on this!
Suggest clarifying the remote api docs around execids returned on inspect:  https://docs.docker.com/reference/api/docker_remote_api/

@duglin I changed it to a mark and sweep model for the final removal.  See the last commit for my changes.

ping @jfrazelle @LK4D4

LGTM

authors: bprashanth crosbymichael icecrime jfrazelle thockin


text:
Closes #26761 Updated the client/request.go sendClientRequest method to return a Pe…

- What I did
I added a new error message for when a user tries to connect with the docker client to the docker daemon via a unix socket and does not have permissions to the socket.
- How I did it
by checking if the returned error message string contains connect: permission denied and return the error created by the client.PermissionDenied function.
- How to verify it
run the docker daemon as root, then create a non privileged user and run docker ps -a with that user. you should see the new error message.
- Description for the changelog

Adds a more informative error message when a user does not have permissions to connect on the unix socket.
- A picture of a cute animal (not mandatory but encouraged)

Updated the client/request.go sendClientRequest method to return a PermissionDenied error if the connection failed due to permissions.
Signed-off-by: Sean Rodman srodman7689@gmail.com

This is a pull request for https://github.com/docker/docker/issues/26761

Hey guys. Is there anything I can do to get this merged in. Are there any changes that need to be made or anything?

Sorry for the failures guys. I am working on the code locally until I can integrate your suggestions and get the code working. Will push up again in just a few minutes.

@cpuguy83 I had to unwrap the url.Error and then the net.OpError to get to the error that would let me know if it was a permissions error or not but it seems to be working now. Please let me know if you would like for me to change anything else. Also, I used errors.Wrap to add the socket file path to the error message.

@cpuguy83 and @thaJeztah hey guys. Do you have anything else you want me to change on this pull request?

I have been squashing my commits on this. Should I continue to squash them or should I have them all visible?

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "friendly_error_on_permissions_connection_error" git@github.com:srodman7689/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~2
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "friendly_error_on_permissions_connection_error" git@github.com:srodman7689/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~2
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

Finally push up the requested changes. sorry it took so long guys.

Merged master and it went crazy. Let me know if I need to recreate this pull request.

Looks like you need to do a rebase; make sure your "upstream" and "origin" branches are up to date, then you can rebase on top of master (which should make those extra commits go away) see
https://docs.docker.com/opensource/workflow/work-issue/#/pull-and-rebase-frequently

Looks like it is fixed now. Thank you for the help.

@thaJeztah this is good now if you have a chance to look at it one more time lol.

Lgtm

authors: GordonTheTurtle srodman7689 stevvooe thaJeztah


text:
WIP: Support chroot with no NEWNS

NOTE: This code is basically just a proof of concept.  If the basic approach seems fine I'll produce better code.
This PR is the libcontainer changes needed to support --mnt=host in Docker.  That's right, using the the host mnt namespace.  It might seems crazy, but basically what I'm proposing is that in that situation you do a chroot and not a new mnt namespace.  Before I go into the details of this PR let me first explain why I want this.  That way if this approach is way off then maybe a better one can be proposed.
Motivation
What I want to accomplish is to allow a container to manage mounts in the host mnt namespace.  The primary use case is to support something like ZFS, LVM, or Ceph that requires userspace utilities to manage.  In RancherOS we have no host system and thus managing such subsystems must be done from a container.  With the recent changes in libcontainer to default to SLAVE we can propagate mount from one container to another through the host using this PR.
My first attempt at this functionality was to just use shared mounts.  I ran into the fundamental issue in that when the container mount namespace is removed all mounts are umounted causing the shared mounts to be removed from the host.  This is no good because we can never restart the container managing the mounts.
How this PR works
NoPivotRoot is removed and replace with a flag for Chroot.  Here's how Chroot and NEWNS work with each other

NEWNS
Chroot
Behavior
Docker possible?

NEWNS
false
The default Docker behavior when creating a container
Yep

| false | No mount namespace and setupRootFs is not called, so no root | Nope
NEWNS | true | New mnt namespace but we don't pivot_root but instead MS_MOVE and chroot | Yes with DOCKER_RAMDISK=true
| true | No new mnt namespace but setupRootFs is still called and all mounts are setup | Yep,--mnt=host

Cleanup
When a container is deleted and there is no NEWNS and chroot is true, we must manually remove mounts.  In this situation we traverse mounts in the container and manually umount them all.  One difference is that we first make the propagation private before we umount.  This way the mounts are not removed from the host.
fyi @lukemarsden

I'm not excited about manually cleaning up mounts

I'm not either, but it follows the same paradigm as the PID NS.  When PID host was done it also required manual cleanup.

@avagin yes, as I mentioned before, this was just a POC.  I'm not sure if the approach would even fly with the maintainers, so I'm mostly concerned that we agree on the approach.  I'll fix the code and write proper tests if I get a design ok thumbs up.

@crosbymichael creating a container with no mnt namespace might be too much madness.  I'm going to pursue the route of see what I can accomplish with persistent mnt namespaces.  I think at the end of the day i'm going to hit a wall where I will need to be able to do -v /host:/foo and not have it be automatically slave.  (so no MS_REC on the root).  Not sure how I'll accomplish that.

I don't think libcontainer is quite ready for this level of crazy (yet).  Closing PR

authors: crosbymichael ibuildthecloud

repo: docker/libcontainer

license_source: bigquery


text:
Add argument assertion to inspect/status/url commands

Add argument assertion to inspect/status/url commands to fix unkind messages on inspect, status and url.
Current message:
$ docker-machine status
unable to load host: open /Users/user/.docker/machine/machines/config.json: no such file or directory

To be fixed like:
$ docker-machine status
Error: Expected one machine name as an argument.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "add-argument-assertion" git@github.com:kechol/machine.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Looks pretty good to me.  I'd rather have it than not and clean it up later if we introduce more universal parsing for this sort of thing.
WDYT @ehazlett ?

@kechol Any chance I could get you to add some integration tests for this to the test/integration/cli folder?  Other than that, LGTM

@nathanleclaire
Added some integration tests, sorry for my late reply. There is already common cases in test/integration/core folder so I just added simple error cases for this, thanks.

LGTM
Thanks @kechol !

authors: GordonTheTurtle kechol nathanleclaire

repo: docker/machine


text:
delete png show since /docs/img has been deleted

Signed-off-by: yupengzte yu.peng36@zte.com.cn

LGTM

thanks!

authors: YuPengZTE nathanleclaire


text:
Snapshot key generation on notary init

Is there a reason for notary init to generate a snapshot key, even on Docker 1.10+, while "init on push" does not?

Notary and Docker with DCT always generate a snapshot key for new repositories, but newer versions of Docker automatically rotate the snapshot key to be managed by the Notary server.  This is meant to be more user-friendly for delegations setup, though users can always rotate the snapshot key back to their local machine if they wish, using notary key rotate.
The Notary CLI is meant to be less opinionated and provide users with full control of their keys, though users can still rotate snapshot keys to the server using the -r flag for notary key rotate

Perfect. Thanks for the explanation :)

authors: riyazdf ruimarinho

repo: docker/notary


text:
Write to file to signal success for make integration

Ensures that we actually fail when one of the containers in the integration test aborts, since docker-compose may return a 0 exit code when aborting containers.
Relies on https://github.com/docker/notary/pull/674 to be green
Signed-off-by: Riyaz Faizullabhoy riyaz.faizullabhoy@docker.com

Thank you for fixing this!  LGTM! Tested this locally and if I make the tests fail I get an exit code of 2 after running make integration.
Non-blocking:  wondering if it'd help to pipe UNATTENDED=yes OSX_VERSION_MIN=10.6 ${OSXCROSS_PATH}/build.sh to /dev/null in Dockerfile?  Otherwise the circleci log is tends of thousands of lines and has to be downloaded, which is fine, but it'd be more immediately obvious when looking at circleci to see what goes wrong in the future with our own containers.

@cyli: great idea, done!

No logical reason for test coverage reduction. LGTM

authors: cyli endophage riyazdf


text:
Which non-ASCII characters are allowed in Red words?

Since the lexer apparently aims to accept all Unicode characters, through their UTF-8 encoding, the question arises what characters will be allowed in Red words. It is clear which ones below U+007F are NOT allowed, but it would seem that the C1 controls (U+0080 - U+009F) should also not be allowed. Above U+00A0 (itself a whitespace) there is a huge range of characters from virtually all scripts of the world, but also many signs and "dingbats". What will the policy be?

Could you please re-post that question rather on the Red mailing-list? I would prefer keeping tickets for issues that require actions on repository files (including documentation files).
Also, the mailing-list gives more exposure to such questions, so others might be interested to participate.
Thanks in advance.

Will do.

authors: dockimbel meijeru

repo: dockimbel/Red


text:
Split non-default themes to separate assemblies

The original theme based design a few years ago was aiming to separate the themes to individual assemblies. In this commit the split is finally carried out, 567cfde23a51d35b05723e8b9a52ddbe5a01104f
It should demonstrate how to create a new theme (VS 2013 Blue) from another theme (VS 2012 Light) gradually, as currently many elements are borrowed directly (while the final work might fully use its own elements, who knows).

@roken what's your feedback on this?

I generally oppose using assemblies for purely organizational purposes, but it seems quite reasonable that an application would only package a single theme (not that these assemblies will have a very large footprint).  I can get behind this.

Merged vs2013blue branch via cb4182b4b6184416a8004201d485a1dc064cbef8. Closed this now.

authors: lextm roken

repo: dockpanelsuite/dockpanelsuite

license: mit


text:
docs(cn): translate src/content/api/loaders.md

describe your changes...

[x] Read and sign the CLA. PRs that haven't signed it won't be accepted.
[x] Make sure your PR complies with the writer's guide.
[x] Review the diff carefully as sometimes this can reveal issues.
[x] Do not abandon your Pull Request: Stale Pull Requests.
Remove these instructions from your PR as they are for your eyes only.

因 #755 长时间未进行提交，故基于其翻译进行修改
@QC-L

因 #755 长时间未进行提交，故基于其翻译进行修改
@QC-L

收到~我马上看下

authors: QC-L jacob-lcs


text:
[Question] Optimistic Lock - Version update

Support Question
Hello, I can't figure out whether do I need to update @ORM\Version field manually? The docs does not say anything about that. When digging in code I couldn't find anything related to updating that field.
Just to be sure I'm asking here.

The version is automatically managed by the ORM. If you want, you can edit
the documentation to make that clear 👍
On Sun, 12 Aug 2018, 00:09 Bozhidar Hristov, notifications@github.com
wrote:

Support Question
Hello, I can't figure out whether do I need to update @Orm
https://github.com/Orm\Version field manually? The docs does not say
anything about that. When digging in code I couldn't find anything related
to updating that field.
Just to be sure I'm asking here.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/doctrine2/issues/7351, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJakNh7QFOxpIVW8xrGOgTuM29G_vspks5uP0f_gaJpZM4V5T3e
.

authors: Ocramius Warxcell


text:
popen4 segmentation fault

I just installed jammit 0.6.0 in a Rails 3 app on Mac OS 10.6. When trying to run "jammit" in that Rails app, I get the following error:
/usr/local/lib/ruby/gems/1.8/gems/POpen4-0.1.4/lib/popen4.rb:81: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.4.1]

Abort trap

This is the entirety of my assets.yml:
package_assets: always
embed_assets: off

javascripts:
  common:
    - public/javascripts/jquery.js
    - public/javascripts/jquery-ui.js
    - public/javascripts/rails.js
    - public/javascripts/jquery.nivo.slider.pack.js
    - public/javascripts/jquery.infieldlabel.min.js
    - public/javascripts/application.js

Googling this error message yields no results. I ended up fixing the problem by upgrading Ruby from 1.8.7 to 1.9.2 (via rvm). Running jammit again created the asset files properly.
Not sure if this is technically a jammit issue, but I figured it submit it here so that it's documented somewhere.

For Jammit 3.1.3 => gem win32-open3-19

authors: mskinho sandboxindustries

repo: documentcloud/jammit


text:
In Embeded DocusealForm, Signature Canvas goes out of the parent dev. I can fix this and will open a PR

Steps to reproduce:

When DocusealForm is embeded inside react, Canvas goes out of the parent div on smaller screens
Screenshot is attached
I can fix this in a PR

I am closing issue, as it happens only when resizing the window. not on actual opening

repo: docusealco/docuseal-react

license: MIT


text:
Sending Email to users not signed in the document

Hi ,
Kindly let us know the code in php for the scenario
We have  2 signers using the template id for signing and one user is signed and other is not signd
We need to send email to user who is not signed the document

Emails will be sent automatically to the next signer if they are set to be "remote signer". "Embedded Signers" do not get emails. You should check that your signer doesn't have a clientUserId associated with the object, as that indicates embedded signer.

This is something you can do using DocuSign eSignature. I'm closing this issue as no action is needed at this time on our part.

authors: InbarGazit iyyappanpwilco

repo: docusign/code-examples-php


text:
发现最近分析出来的下载url返回403，禁止下载了

如题

墙挂了，我这一直没法调试

authors: dodola jialechan

repo: dodola/YoutubeDown


text:
[feat] I need help locating my crypto (doge)

Feature Request
Describe the Feature Request

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

this unfortunately isnt the best resource to help with this sort of issue.  The best thing you can do is join the discord or reddit groups and provide a detailed summary of the problem. Maybe someone would be able to assist then. Best of luck to you!

repo: dogecoin/dogecoin


text:
update in-line copyright years

Updates the copyright year in the COPYING file.
Updates the copyright years in each source files, using a modified copyright_header.py script. This script is still buggy because it tried to change src/univalue, which I manually corrected. I'll do my best to fix and PR the script into contrib once we have a new dev branch.
Adds copyright headers to files that didn't have any:

src/crypto/scrypt.h and src/test/scrypt_tests.cpp, manually added Litecoin copyright as that's where we took it from
src/qt/verticallabel.*, which came in from the paper wallet code, but never have been properly marked.

force pushed because I forgot to push an edit to the 2nd commit message prior to opening this.


text:
Witcher 3 crashes

Well there is not much to add, every time I try to open the Witcher 3, it crashes on start.
Software information
Witcher 3
Everything is on ultra with a bunch of mods, most notably W3EE.
System information

GPU: RTX 2060
Driver: 471.68
Wine version:  None, using Cuckdowns 10
DXVK version: 1.9.1

Apitrace file(s)
None, will add if needed.
Log files
witcher3_d3d11.log
witcher3_dxgi.log
I should add, that this is the only game that crashes, and everything Vulkan related seems to be fine, layers don't over lay.

Witcher 3 is known to work fine for pretty much everyone else so this is probably some problem on your end. We cannot provide support for issues specific to individual Windows setups.

authors: Tebeas doitsujin

repo: doitsujin/dxvk

license: Zlib


text:
[d3d9] Handle different mip chain lengths in UpdateTexture

Fixes #2124
Fixes #2475
D3D9Device::UpdateTexture allows you to a source texture that has more mip maps than the destination texture.
Docs

Well, wow!
running ~ 50 minutes, changing locations
and texture quality, I did not find any bugs.
Thanks! I will still test.


text:
Allow user to specify profile for build and migrate

Resolves #239

User can specify the profile for building the Scarb project, as specified here https://docs.swmansion.com/scarb/docs/reference/profiles.

Replaced --env option with --profile in migrate command.

For migration, the profile will be matched with its respective environment configuration.

E.g, when user migrate with --profile my-profile, if there's no build that match the profile, it will build first according to the profile. Then during migration, it tries to find a my-profile environment (tool.dojo.env.my-profile). If not found, it will search for default shared env (tool.dojo.env)
[profile.my-profile]
sierra-replace-ids = true

[tool.dojo.env]
private_key = "0x111"
account_address = "0x222"

[tool.dojo.env.my-profile]
private_key = "0x69"
account_address = "0x420"

So, if migrate is performed with the --release flag, user can specify an env specifically for the release profile by defining it in Scarb.toml with [tool.dojo.env.release].

This item belongs to payment request #13FFCE on OnlyDust:

from tarrencev to kariy
7 items included
$1,000 for 2 days of work

This item belongs to payment request #13FFCE on OnlyDust:

from tarrencev to kariy
7 items included
$1,000 for 2 days of work

Payment request #13FFCE has been processed and payment is complete. See you around on OnlyDust.

authors: VeryDustyBot kariy

repo: dojoengine/dojo


text:
Questions above Glass Pane feature

Is there any way to turn off Glass Pane mode ?

You should be able to remove assets from your VS Code using Doki-Theme: Remove Sticker/Background, is that what you were wanting to know?

Hi,
Apologies for that poorly framed question.
I just wanted to know if it is possible to unblur the wallpaper when I open any file within vscode. Is it enabled by VS Code by defualt which cannot be changed ?
For example, when I am in the home screen of Visual Studio Code, the wallpaper appears bright but as soon as I open the editor there is an amount of blur to the wallpaper.

I just wanted to know if it is possible to unblur the wallpaper

Ah, so the wallpaper itself is not blurred, as it is partially transparent.
So you can fix this by providing your own custom asset to doki.wallpaper.path that is more opaque to your liking. See documentation.
https://user-images.githubusercontent.com/15972415/135267380-82930936-636d-40a1-9c50-6c5484b6ff66.mp4
Is that what you where looking for?

Yes, that was exactly what i was looking for. I shall look into the documentation once again. Thanks for your help.

repo: doki-theme/doki-theme-vscode


text:
Cmd

update gogo cmd

LGTM

repo: dolab/gogo


text:
StructOf should not be exported

StructOf is an implementation detail. If it is useful for users it should be in a separate package.

You're right. I don't remember why I made it public, but I'm tending towards tiredness.

authors: dolanor dolmen

repo: dolanor/rip


text:
Background Image/Color

Sir,
How to change the Background color/image of the modal. I can't find in your documentation. All I can change is the header color.

Use o css @larigyn. I'll think about adding in the next version. thanks

Use css @larigyn. I'll think about adding in the next version.

Use css @larigyn.
#modal{
	background: red;
}

Maybe I add as an option. thanks

authors: dolce larigyn

repo: dolce/iziModal


text:
SIGSEGV when using first with wrong syntax

pyjq==2.4.0
Python 2.7.16
Mac OS Mojave 10.14.6 (18G95)
$ ipython
Python 2.7.16 (default, Jul 10 2019, 19:24:59)
Type "copyright", "credits" or "license" for more information.

IPython 5.4.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import pyjq

In [2]: foo = {'bar': {'lorem': 13, 'ipsum': {'a': 1}}}

In [3]: pyjq.first('.bar.ipsum.a', foo)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
TypeError: Key of json object must be a str, but got <type 'str'>
Exception TypeError: TypeError(u"Key of json object must be a str, but got <type 'str'>",) in '_pyjq.pyobj_to_jv' ignored
fish: 'ipython' terminated by signal SIGSEGV (Address boundary error)

pyjq 2.4 no longer supports Python 2.x.

authors: doloopwhile fjsj

repo: doloopwhile/pyjq


text:
CompilerTest>>testFloatScanning fails on complete regression suite runs after first

One of the tests is changing the default FP precision, and this is not reset either by the test or by the Float/Process infrastructure. This also breaks one of the FloatTest test cases.

Fixed by 836b523

repo: dolphinsmalltalk/Dolphin


text:
[auto-bump] dependency by coffeegoddd

:coffee: An Automated Dependency Version Bump PR :crown:
Initial Changes
The initial changes contained in this PR were produced by go geting the dependency.
$ cd ./go
$ go get github.com/dolthub/<dependency>/go@<commit>
$ go mod tidy

Before Merging
This PR must have passing CI and a review before merging.
After Merging
An automatic PR will be opened against the LD repo that bumps the bounties version there.

This PR has been superseded by https://github.com/dolthub/bounties/pull/1358

repo: dolthub/bounties


text:
The Tutorial of logseq-to-markdown

Written with GPT-4

How to Convert Logseq Markdown Notes to Standard Markdown Notes on a Mac
Step 1: Install npm
Before you start, you'll need to have npm installed on your Mac. npm is a package manager for Node.js. If you haven't installed Node.js and npm on your Mac yet, visit the Node.js official download page: https://nodejs.org/en/download/. Download and install the version suitable for your Mac system.
Step 2: Install logseq-to-markdown
Once you've got npm installed, you can install logseq-to-markdown on your Mac. Open Terminal, and enter the following command:
npm install @dom8509/logseq-to-markdown -g

This will install logseq-to-markdown globally.
Step 3: Export Notes from Logseq
Open Logseq, click on the "..." button at the top right, select "Export Graph", and then click on "Export to Markdown". This will download a zip file containing all your Logseq notes.
Unzip the file, and you'll have a folder containing journals and pages subfolders. We'll refer to this as the Documents folder.
Step 4: Convert Notes
Once you've got logseq-to-markdown installed, you can use it to convert your Logseq notes. First, in Terminal, use the cd command to navigate to your graph folder. For instance, if your graph folder path is /Users/ohyoung/Downloads/Documents, you can enter:
cd /Users/ohyoung/Downloads

Then, run the logseq-to-markdown command, followed by the name of your graph folder and specify the output directory. For instance:
logseq-to-markdown Documents -o Output

This will convert the notes in the Documents folder and output them into the Output folder.
Uninstalling npm and logseq-to-markdown
If you no longer need npm and logseq-to-markdown, you can uninstall them using the following commands:
npm uninstall -g @dom8509/logseq-to-markdown

As for uninstalling npm, you can follow the guide on this link: https://www.positronx.io/how-to-uninstall-node-js-and-npm-on-macos/.
Points to Keep in Mind
While using the logseq-to-markdown tool, there are a few issues you might need to be aware of:

By default, logseq-to-markdown will only process notes in the pages folder, not the journals folder. If you want to convert notes in the journals folder, you may need to move the contents of the journals folder into the pages folder.

logseq-to-markdown exports notes that have the "public:: true" property by default. If you want to export all notes, you'll need to add the "public:: true" property to each note.

The logseq-to-markdown command removes the "+ " symbol at the first level when converting notes. If you wish to remove the "+ " symbol at all levels, this is currently not supported by logseq-to-markdown and you may need to use other tools or manually make these changes.

That's the guide on how to convert Logseq markdown notes to standard markdown notes on a Mac. If you encounter any problems or need further guidance, don't hesitate to ask.

Step 3 is redundant. You only need to enter the graph name, the script will locate the graph folder automatically.


text:
How to map a c# dictionary<int, string> swagger

I have a web api which returns a object that contains dictionary property
public Dictionary<int, string> Roles { get; set; }
I use swashbuckle to publish it into swagger format and this is what I get:
"Roles":{"type":"object","additionalProperties":{"type":"string"}}
I am not really sure this is correct? As I thought at least it should be something like
"Roles":{"type":"object","additionalProperties":{"type":"int", "type":"string"}}
How can represent my dictionary correctly in swagger format?

This is the correct description. Remember that Swagger is describing JSON structures and not C# types. In JSON, there's no equivalent of Dictionary<int, string>. The closest representation would be the following:
{
  "1": "foo",
  "2": "bar"
}

And sure enough if you return an object of this type from a WebAPI action, it will be serialized exactly like this - try for yourself. Furthermore, the JSON Schema that Swashbuckle is generating describes this structure accurately:
{"type":"object","additionalProperties":{"type":"string"}}

repo: domaindrivendev/Swashbuckle


text:
the plan for completing the following parts?

Hi dome, thanks for ur implementation about MaskGIT.  Is there any plan to complete the whole project?

Yea I'm planning to continue working on it as soon as I have time! Also feel free to push any updates to the code if you do some.


text:
LCD screen installation problem

@aGGreSSiv : I've updated the documentation of the install process. If you are still having trouble, please open a new issue and describe at what step you're stuck, and we have a look at it!

I connected remotely and followed the steps one by one according to the instructions. First I updated the operating system, then I entered the commands one by one. None of the commands gave an error. The LCD is not plugged in right now, maybe that's why it gives an error, but when I check the chronotron service status to check, it gives the following output.
pi@raspberrypi:~ $ sudo systemctl status chronotron
● chronotron.service - Display chrony statistics on 4x20 LCD
     Loaded: loaded (/etc/systemd/system/chronotron.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2023-12-21 13:22:11 +03; 11s ago
    Process: 537 ExecStart=/opt/chronotron/bin/python /opt/chronotron/chronotron.py (code=exited, status=1/FAILURE)
   Main PID: 537 (code=exited, status=1/FAILURE)
        CPU: 422ms

Dec 21 13:22:11 raspberrypi python[537]: Traceback (most recent call last):
Dec 21 13:22:11 raspberrypi python[537]:   File "/opt/chronotron/chronotron.py", line 237, in <module>
Dec 21 13:22:11 raspberrypi python[537]:     main_loop()
Dec 21 13:22:11 raspberrypi python[537]:   File "/opt/chronotron/chronotron.py", line 151, in main_loop
Dec 21 13:22:11 raspberrypi python[537]:     lcd = LcdDisplay()
Dec 21 13:22:11 raspberrypi python[537]:   File "/opt/chronotron/i2c_lcd.py", line 8, in __init__
Dec 21 13:22:11 raspberrypi python[537]:     self.bus = smbus.SMBus(sm_bus)  # Rev 1 Pi: 0, Rev 2 Pi: 1
Dec 21 13:22:11 raspberrypi python[537]: FileNotFoundError: [Errno 2] No such file or directory
Dec 21 13:22:11 raspberrypi systemd[1]: chronotron.service: Main process exited, code=exited, status=1/FAILURE
Dec 21 13:22:11 raspberrypi systemd[1]: chronotron.service: Failed with result 'exit-code'.

You need to install smbus within the python virtual environment:
cd /opt/chronotron
source bin/activate
pip install smbus

then restart the chronotron service.

Also, make sure that I2C is active: sudo raspi-config, select "Interface options", and make sure that I2C is enabled.
You can verify with: i2cdetect 1
It should show something like:
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x08-0x77.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

That 27 should appear, if your display is connected correctly!

I2c Activated
pi@raspberrypi:~ $ i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x08-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

smbus İnstalled;
(chronotron) pi@raspberrypi:/opt/chronotron $ sudo pip install smbus
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting smbus
  Downloading smbus-1.1.post2.tar.gz (104 kB)
     |████████████████████████████████| 104 kB 1.1 MB/s
Building wheels for collected packages: smbus
  Building wheel for smbus (setup.py) ... done
  Created wheel for smbus: filename=smbus-1.1.post2-cp39-cp39-linux_aarch64.whl size=40622 sha256=9634b265a325d0c514b1a243e0f9d3c8df653fb0ea80daabe45f60db23716c34
  Stored in directory: /root/.cache/pip/wheels/27/6b/5f/d61caec49a6f3347a083b3e43fa397c353e086e081029f174d
Successfully built smbus
Installing collected packages: smbus
Successfully installed smbus-1.1.post2

but the result did not change;
pi@raspberrypi:~ $ sudo systemctl status chronotron
● chronotron.service - Display chrony statistics on 4x20 LCD
     Loaded: loaded (/etc/systemd/system/chronotron.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2023-12-21 15:21:16 +03; 51s ago
    Process: 491 ExecStart=/opt/chronotron/bin/python /opt/chronotron/chronotron.py (code=exited, status=1/FAILURE)
   Main PID: 491 (code=exited, status=1/FAILURE)
        CPU: 445ms

Dec 21 15:21:16 raspberrypi python[491]:     main_loop()
Dec 21 15:21:16 raspberrypi python[491]:   File "/opt/chronotron/chronotron.py", line 151, in main_loop
Dec 21 15:21:16 raspberrypi python[491]:     lcd = LcdDisplay()
Dec 21 15:21:16 raspberrypi python[491]:   File "/opt/chronotron/i2c_lcd.py", line 21, in __init__
Dec 21 15:21:16 raspberrypi python[491]:     self.write(0x33, self.type_command)  # init sequence: 0x03, 0x03
Dec 21 15:21:16 raspberrypi python[491]:   File "/opt/chronotron/i2c_lcd.py", line 45, in write
Dec 21 15:21:16 raspberrypi python[491]:     self.bus.write_byte(self.i2c_addr, hi_byte)
Dec 21 15:21:16 raspberrypi python[491]: OSError: [Errno 5] Input/output error
Dec 21 15:21:16 raspberrypi systemd[1]: chronotron.service: Main process exited, code=exited, status=1/FAILURE
Dec 21 15:21:16 raspberrypi systemd[1]: chronotron.service: Failed with result 'exit-code'.

Could the problem be related to the LCD Screen not being installed yet? I'll connect it when I get home this evening.

The HD44780 display is not visible on the I2C bus. The possible causes are:

electric connection not working (four cables need to be correctly connected)
You have a Raspberry Pi Gen 1 (the very old first model)? (verify with i2cdetect 0 if the other bus is used.)

i2cdetect 1 should detect the 27 as active, if the display is correctly connected. This is completely independent of any Chronotron software.
As for the display driver: it's implemented in python in "i2c_lcd.py", so no extra software is needed.

Ok. I'll plug in the screen and try it tonight. As I said, I installed apps by accessing the Pi remotely. I will share the result.

Sorry I missed that!
I've updated the code to give proper diagnostics for missing displays. It would now log:
Dec 21 14:37:30 chronotron systemd[1]: Started chronotron.service - Display chrony statistics on 4x20 LCD.
Dec 21 14:37:30 chronotron python[39157]: INFO:Chronotron:Chronotron version 2.0.0 starting
Dec 21 14:37:30 chronotron python[39157]: ERROR:LcdDisplay:Cannot open LCD on I2C bus: [Errno 2] No such file or directory
Dec 21 14:37:30 chronotron python[39157]: ERROR:Chronotron:Failed to open display, exiting...
Dec 21 14:37:30 chronotron systemd[1]: chronotron.service: Main process exited, code=exited, status=255/EXCEPTION
Dec 21 14:37:30 chronotron systemd[1]: chronotron.service: Failed with result 'exit-code'.

Yes, LCD is visible now
pi@raspberrypi:~ $ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x08-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

chronotron service also works properly;
pi@raspberrypi:~ $ sudo systemctl status chronotron
● chronotron.service - Display chrony statistics on 4x20 LCD
     Loaded: loaded (/etc/systemd/system/chronotron.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-12-21 19:19:56 +03; 1min 47s ago
   Main PID: 507 (python)
      Tasks: 1 (limit: 779)
        CPU: 7.686s
     CGroup: /system.slice/chronotron.service
             └─507 /opt/chronotron/bin/python /opt/chronotron/chronotron.py

Dec 21 19:19:56 raspberrypi systemd[1]: Started Display chrony statistics on 4x20 LCD.
Dec 21 19:19:59 raspberrypi python[507]: INFO:Chronotron:Chronotron version 2.0.0 starting
Dec 21 19:20:00 raspberrypi python[507]: INFO:Chronotron:Chrony stratum level changed to 1
Dec 21 19:20:43 raspberrypi python[507]: INFO:Chronotron:Chrony aquired lock to time source
Dec 21 19:20:43 raspberrypi python[507]: INFO:Chronotron:Chrony receiving time source from time.ume.tubitak.g>
Dec 21 19:20:43 raspberrypi python[507]: INFO:Chronotron:Chrony stratum level changed to 2
Dec 21 19:21:26 raspberrypi python[507]: INFO:Chronotron:Chrony receiving time source from PPS
Dec 21 19:21:26 raspberrypi python[507]: INFO:Chronotron:Chrony locked to high precision GPS PPS signal
Dec 21 19:21:27 raspberrypi python[507]: INFO:Chronotron:Chrony stratum level changed to 1

But I don't see anything except the backlight of the screen is on. Since I see the I2C address, there is no problem with the connection.
I did the installation via this site before seeing your post. But later, when I wanted to add a screen and looked at your NTP server instructions, I saw that they were identical. However, the reason why there is no image on the screen may be something I missed.
Since I'm not a software developer and I don't know much about Linux, I might be wasting your time with something stupid.

Yes, I forgot to do the stupid little thing. It came to mind as soon as I pressed enter after my last post. There was a small potentiometer behind these screens, right? :)
Thanks for your help, everything is working as it should now.

Excellent. I close this then.

authors: aGGreSSiv domschl

repo: domschl/RaspberryNtpServer


text:
Ray and Corwin Part 2 - Estimating VARs after 2020

Dear @donotdespair
Sending here the commit (26a4d9bb3f006a206abf0259b90e94aadbf24d7d) for the Algorithm with Code subsection of the section assigned to @Wintersend and myself.
This contains the step-by-step procedure of running the Metropolis MCMC and estimating VARs using this extension. It also has a demonstration using a bivariate RW w/ drift and heteroskedasticity, where the MCMC converged to a somewhat stationary series! (at least in my eyes though I am not sure).
Thank you very much.
Respectfully,
Ray

Hey @rayccg
Fantastic! This is a great submission! I adjusted the notation to the AR model in the text, but I still have to see if this is all fine. I will also go through the code to see if it can adjust it to the AR setting. This should not be too difficult!
Thank you so much!

authors: donotdespair rayccg

repo: donotdespair/Bayesian-Autoregressions


text:
Google Play: Error: An unknown or unexpected error has occured. Please try again later.

Version of react-native-iap
4.4.8
Version of react-native
0.61.1
Platforms you faced the error (IOS or Android or both?)
Android
Expected behavior
Make purchase / subscription, return receipt from Google Play Billing
Actual behavior
returns
Error: An unknown or unexpected error has occured. Please try again later.
E_UNKNOWN
Tested environment (Emulator? Real Device?)
Real Device
Steps to reproduce the behavior
RNIap.requestSubscription('android.test.purchased',false) or my test subscription product id
My app is in the internal test track, subscription is active, not sure what else do I need to set up?
Thanks.

It didnt work on RedMi phone

Hi @j-cheung,
Were you able to find any solution for this? We seem to be having the same issue, and not able to troubleshoot, as we're on internal with the build.

authors: j-cheung nl-danish

repo: dooboolab-community/react-native-iap


text:
Reimplement date parser

Refer to QuickJS to reimplement the date parser to support more formats.
Differences from QuickJS implementation for compatibility with the original parser of goja:

Use UTC in date-only forms of non-Date Time String Format.
Check the letters following valid time zone abbreviations to reject invalid time zone abbreviations like ZZZ.

Some differences from the original parser of goja:

Names of the days of the week are ignored.
Letters after the 3rd character of a long month name are ignored.
Any characters in brackets are ignored.

(These behaviors are consistent with Node.js v22. I haven't checked the source code of V8, I just modified some test cases in TestDateParse to test in Node.js to guess its behavior, after all, it's not in the ECMAScript specification.)
Overall, this new parser is more relaxed and supports more formats (not limited to those added in the test), but does less validity checks than the one in the Go standard library. Let me know if you don't want to miss some validity checks.

Hi.
Thanks for submitting this.
Rewriting the date parser has long been on my to-do list. There are a coupe of PRs (https://github.com/dop251/goja/pull/546 and https://github.com/dop251/goja/pull/391) which I deferred merging for this reason.
The code looks like a direct translation from C, with pointer arguments used as return values and pointers to string. It could benefit from making it a little bit more idiomatic. Having said that, I think it's a step forward so I could merge without it.
Could you please make sure that it covers the 2 PRs mentioned above (and the PRs themselves are consistent with Node)?
And also, there is a test case in the V8 code (https://chromium.googlesource.com/v8/v8/+/refs/heads/main/test/mjsunit/date-parse.js), it would be nice if it passed too.


text:
Fix: Pin Python dependencies

[x] I have read Pelorus Contributing guidelines

Linked Issues
resolves #951
depends on #948
Description
Avoid code breaking with unexpected updates from Python dependencies.
Now, poetry will manage the Python dependencies for us. To add (or update) a dependency, run a poetry command (it will check if there are no conflicts with the current dependencies, before adding it). This will update both pyproject.toml and poetry.lock, but not requirements files. To update them, run the new make command (we will not update requirements file anymore, this is poetry job). Requirements files now have more things in there:

the previous dependencies, but now all pinned (no more unexpected updates to break the project CI)
the dependencies of the dependencies (that were already installed previously, but were under the rug, and we had no control over them, which poetry also monitors)
the hash, which is a security constrain

Dependabot will open PRs when there are updates available, and the new workflow will warn if the requirements files where not updated.
Testing Instructions
Run documentation commands and check if nothing broke with the changes (for example make dev-env).
To test the built exporters images with pinned versions, run the command github-action[bot] commented on the PR.

/test 4.10-e2e-openshift

TODO
add documentation how to add, remove and update dependencies with poetry
add poetry to install tools script

/retest

repo: dora-metrics/pelorus


text:
How a DORA subscriber node simultaneously classifies and processes four types of data when they receive them

I'm currently using the if statement, which is processed by judging the data flow character name, but it doesn't seem to be working, not working the way I envisioned, here is part of my code
 def on_input
        self,
        dora_input: dict,
        send_output: Callable[[str, bytes], None],
    ):

        if "color_image" == dora_input["id"]:
            self.color_frame = (
                dora_input["value"]
                .to_numpy()
                .reshape((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
            )

        if "depth_image" == dora_input["id"]:
            self.depth_frame = np.frombuffer(dora_input['value'].to_numpy(),
                                             dtype=np.uint8).reshape((480, 640))

        if "infra1_image" == dora_input["id"]:
            self.infra1_frame = np.frombuffer(dora_input['value'].to_numpy(),
                                              dtype=np.uint8).reshape((480, 640))

        if "infra2_image" == dora_input["id"]:
            self.infra2_frame = np.frombuffer(dora_input['value'].to_numpy(),
                                              dtype=np.uint8).reshape((480, 640))

        #彩色数据流
        resized_color_image = np.ascontiguousarray(self.color_frame, np.uint8)
        writer.write(resized_color_image)
        resized_color_image = cv2.resize(resized_color_image, (800, 600))

        # 深度数据流
        resized_depth_image = (self.depth_frame.astype(np.uint16) * (65535 // 255))
        resized_depth_image = cv2.applyColorMap(cv2.convertScaleAbs(resized_depth_image, alpha=0.03), cv2.COLORMAP_JET)
        writer.write(resized_depth_image)
        resized_depth_image = cv2.resize(resized_depth_image, (800, 600))

        #左红外数据流
        resized_infra1_image = (self.infra1_frame.astype(np.uint16) * (65535 // 255))
        writer.write(resized_infra1_image)
        resized_infra1_image = cv2.resize(resized_infra1_image, (480, 640))

        # 右红外数据流
        resized_infra2_image = (self.infra2_frame.astype(np.uint16) * (65535 // 255))
        writer.write(resized_infra2_image)
        resized_infra2_image = cv2.resize(resized_infra2_image, (480, 640))

        # top_row = np.hstack((resized_color_image, resized_depth_image))
        # bottom_row = np.hstack((resized_infra1_image, resized_infra2_image))
        # combined_frame = np.vstack((top_row, bottom_row))
        if not NO_DISPLAY:
            cv2.imshow("D435i_image", resized_color_image)
            cv2.waitKey(1)
        self.last_time = time.time()

        return DoraStatus.CONTINUE

Can you share your dataflow description yaml?

Can you share your dataflow description yaml?
of course, my codes in dataflow description yaml  are as follows:
'''
nodes:

id: webcam_D435i
operator:
python: ../webcam_D435i.py
inputs:
tick: dora/timer/millis/50
outputs:
- color_image
- depth_image
- infra1_image
- infra2_image
- imu_data
- depth_to_color_extrinsics
env:
DEVICE_INDEX: 0

id: plot_D435i
operator:
python: ./plot_D435i_test.py
inputs:
color_image: webcam_D435i/color_image
depth_image: webcam_D435i/depth_image
infra1_image: webcam_D435i/infra1_image
infra2_image: webcam_D435i/infra2_image
'''

What is the issue you're facing?

I want to receive four data streams and visualize them at the same time.When I received four types of data for visualization testing one by one, I found that color images could be visualized, while depth images could not accept data. However, it works again when I subscribe only to deep data and visualize with a single node

I was not able to reproduce your error with a basic webcam operator.
My dataflow
nodes:
  - id: webcam
    operator:
      python: webcam.py
      inputs:
        tick: dora/timer/millis/50
      outputs:
        - image_1
        - image_2
        - image_3

  - id: object_detection
    operator:
      python: object_detection.py
      inputs:
        image: webcam/image_1
      outputs:
        - bbox

  - id: plot
    operator:
      python: plot.py
      inputs:
        image_1: webcam/image_1
        image_2: webcam/image_2
        image_3: webcam/image_3
        bbox: object_detection/bbox

My webcam operator:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import time
from typing import Callable, Optional

import os
import cv2
import numpy as np
import pyarrow as pa

from dora import DoraStatus

CAMERA_WIDTH = 640
CAMERA_HEIGHT = 480
CAMERA_INDEX = int(os.getenv("CAMERA_INDEX", 0))

font = cv2.FONT_HERSHEY_SIMPLEX

class Operator:
    """
    Sending image from webcam to the dataflow
    """

    def __init__(self):
        self.video_capture = cv2.VideoCapture(CAMERA_INDEX)
        self.start_time = time.time()
        self.video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, CAMERA_WIDTH)
        self.video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, CAMERA_HEIGHT)

    def on_event(
        self,
        dora_event: str,
        send_output: Callable[[str, bytes | pa.UInt8Array, Optional[dict]], None],
    ) -> DoraStatus:
        match dora_event["type"]:
            case "INPUT":
                ret, frame = self.video_capture.read()
                if ret:
                    frame = cv2.resize(frame, (CAMERA_WIDTH, CAMERA_HEIGHT))

                ## Push an error image in case the camera is not available.
                else:
                    frame = np.zeros((CAMERA_HEIGHT, CAMERA_WIDTH, 3), dtype=np.uint8)
                    cv2.putText(
                        frame,
                        "No Webcam was found at index %d" % (CAMERA_INDEX),
                        (int(30), int(30)),
                        font,
                        0.75,
                        (255, 255, 255),
                        2,
                        1,
                    )

                send_output(
                    "image_1",
                    pa.array(frame.ravel()),
                    dora_event["metadata"],
                )
                send_output(
                    "image_2",
                    pa.array(frame.ravel()),
                    dora_event["metadata"],
                )
                send_output(
                    "image_3",
                    pa.array(frame.ravel()),
                    dora_event["metadata"],
                )
            case "STOP":
                print("received stop")
            case other:
                print("received unexpected event:", other)

        if time.time() - self.start_time < 20:
            return DoraStatus.CONTINUE
        else:
            return DoraStatus.STOP

    def __del__(self):
        self.video_capture.release()

My plot operator:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
from typing import Callable, Optional

import cv2
import numpy as np
import pyarrow as pa
from utils import LABELS

from dora import DoraStatus

pa.array([])

CI = os.environ.get("CI")
CAMERA_WIDTH = 640
CAMERA_HEIGHT = 480

font = cv2.FONT_HERSHEY_SIMPLEX

class Operator:
    """
    Plot image and bounding box
    """

    def __init__(self):
        self.image_1 = np.zeros((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
        self.image_2 = np.zeros((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
        self.image_3 = np.zeros((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
        self.bboxs = []
        self.bounding_box_messages = 0
        self.image_messages = 0

    def on_event(
        self,
        dora_event: dict,
        send_output: Callable[[str, bytes | pa.UInt8Array, Optional[dict]], None],
    ) -> DoraStatus:
        if dora_event["type"] == "INPUT":
            return self.on_input(dora_event, send_output)
        return DoraStatus.CONTINUE

    def on_input(
        self,
        dora_input: dict,
        send_output: Callable[[str, bytes | pa.UInt8Array, Optional[dict]], None],
    ) -> DoraStatus:
        """
        Put image and bounding box on cv2 window.

        Args:
            dora_input["id"] (str): Id of the dora_input declared in the yaml configuration
            dora_input["data"] (bytes): Bytes message of the dora_input
            send_output Callable[[str, bytes | pa.UInt8Array, Optional[dict]], None]:
                Function for sending output to the dataflow:
                - First argument is the `output_id`
                - Second argument is the data as either bytes or `pa.UInt8Array`
                - Third argument is dora metadata dict
                e.g.: `send_output("bbox", pa.array([100], type=pa.uint8()), dora_event["metadata"])`
        """
        if dora_input["id"] == "image_1":
            frame = (
                dora_input["value"]
                .to_numpy()
                .reshape((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
                .copy()  # copy the image because we want to modify it below
            )
            self.image_1 = frame

            self.image_messages += 1
            print("received " + str(self.image_messages) + " images")
        elif dora_input["id"] == "image_2":
            frame = (
                dora_input["value"]
                .to_numpy()
                .reshape((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
                .copy()  # copy the image because we want to modify it below
            )
            self.image_2 = frame

            self.image_messages += 1
            print("received " + str(self.image_messages) + " images")
        elif dora_input["id"] == "image_3":
            frame = (
                dora_input["value"]
                .to_numpy()
                .reshape((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
                .copy()  # copy the image because we want to modify it below
            )
            self.image_3 = frame

            self.image_messages += 1
            print("received " + str(self.image_messages) + " images")

        elif dora_input["id"] == "bbox" and len(self.image_1) != 0:
            bboxs = dora_input["value"].to_numpy().view(np.float32)
            self.bboxs = np.reshape(bboxs, (-1, 6))

            self.bounding_box_messages += 1
            print("received " + str(self.bounding_box_messages) + " bounding boxes")

        for bbox in self.bboxs:
            [
                min_x,
                min_y,
                max_x,
                max_y,
                confidence,
                label,
            ] = bbox
            cv2.rectangle(
                self.image_1,
                (int(min_x), int(min_y)),
                (int(max_x), int(max_y)),
                (0, 255, 0),
                2,
            )

            cv2.putText(
                self.image_1,
                LABELS[int(label)] + f", {confidence:0.2f}",
                (int(max_x), int(max_y)),
                font,
                0.75,
                (0, 255, 0),
                2,
                1,
            )

        if CI != "true":
            cv2.imshow("frame_1", self.image_1)
            cv2.imshow("frame_2", self.image_2)
            cv2.imshow("frame_3", self.image_3)
            if cv2.waitKey(1) & 0xFF == ord("q"):
                return DoraStatus.STOP

        return DoraStatus.CONTINUE

    def __del__(self):
        cv2.destroyAllWindows()

This works without issue.

ok,thanks,i will have a try

Closing this as it seems solved.

repo: dora-rs/dora


text:
Fix #1704. Shrink statistics table and grow cake diagram

It now looks like this instead, much more room for the glorious cake 🍰 .

sick work m8
💯 💯 👌

authors: duvholt sklirg


text:
Error:  Schema must be an instance of GraphQLSchema.

When installing the package locally and running my Apollo server I receive: Error: Schema must be an instance of GraphQLSchema. Also ensure that there are not multiple versions of GraphQL installed in your node_modules directory
Consider changing the graphql dependency to peerDependency.

Please update to 0.5.4.

authors: dotansimha eitanfr

repo: dotansimha/graphql-code-generator


text:
Schema root types are not merged if named differently

Which packages are impacted by your issue?
@graphql-codegen/typescript-operations
Describe the bug
When adding multiple schemas in config merging does not take into account differences in root type names when merging the schemas
Your Example Website or App
https://codesandbox.io/s/gql-codegen-schema-merge-issue-p1w8wt?file=/document.graphql
Steps to Reproduce the Bug or Issue
Take the following 2 schemas
schema_a.graphql
schema {
  query: Query
  mutation: Mutation
}

type Query {
  schemaAField: String
}

type Mutation {
  schemaAMutation: String
}

schema_b.graphql
schema {
  query: query_root
  mutation: mutation_root
}

type query_root {
  schemaBField: String
}

type mutation_root {
  schemaBMutation: String
}

codegen.yml:
generates:
  types.ts:
    schema:
      - schema_a.graphql
      - schema_b.graphql
    documents:
      - 'src/**/!(*.d).{ts,tsx}'
    plugins:
      - typescript
      - typescript-operations

src/component.ts
const COMPONENT_QUERY = gql`
query ComponentQuery {
  schemaAField
}
`

Gives this error
$ graphql-codegen

✔ Parse Configuration
⚠ Generate outputs
  ❯ Generate lib/graphql_types.ts
    ✔ Load GraphQL schemas
    ✔ Load GraphQL documents
    ✖ GraphQL Document Validation failed with 30 errors;
      Error 0: GraphQLDocumentError: Cannot query field "schemaAField" on type "query_root". Did you mean "schemaBField…
      at /Users/username/Sources/my-app/src/component.ts:3:7

Expected behavior
I expected the root types to be merged even though they are named differently
Screenshots or Videos
No response
Platform

OS: macOS
NodeJS: 16.14.0
graphql version: 16.2.0
@graphql-codegen/cli: 2.16.1
@graphql-codegen/typescript: 2.8.5
@graphql-codegen/typescript-operations: 2.5.10

Codegen Config File
generates:
  types.ts:
    schema:
      - schema_a.graphql
      - schema_b.graphql
    documents:
      - 'src/**/!(*.d).{ts,tsx}'
    plugins:
      - typescript
      - typescript-operations

Additional context
No response

@kdawgwilk thanks for opening this issue. Just wanted to check if this issue is hindering you from using Hasura as a sub-graph?

codegen itself does not merge schemas. You would need to use something like graphql-tools to first merge your schema and then provide that to codegen

If thats the case then why does the config allow for multiple schemas to be passed in?

@kdawgwilk To allow you merge "partial schemas" not different complete schemas into one single schema.

authors: ardatan kdawgwilk rahulagarwal13 saihaj


text:
JSDoc - Added support for @deprecated directive

This PR adds support for the @deprecated directive by appending a textual warning to the @property of a @typedef. Sadly JSDoc does not allow you to use the actual @deprecated annotation on properties but only on symbols. Would have been cool to have added actual IDE warnings and compiler warnings... ah well 🤷♂

This is great :) Thank you @CarloPalinckx

authors: CarloPalinckx dotansimha


text:
Does not scan when pass UUIDs to startDeviceScan on Android

Prerequisites

[yes] I am running the latest version
[yes] I checked the documentation and found no answer
[no] I checked to make sure that this issue has not already been filed

Expected Behavior
Runs the same on ios and android
Current Behavior
iOS - gets packages when pass in UUIDs
Android - does not get packages when pass in UUIDs
Steps to Reproduce
Please provide detailed steps for reproducing the issue.

step 1
step 2
...

Context

react: 16.13.1
react-native: 0.63.4
react-native-ble-plx: 2.0.3
Platform: Android/iOS.

bleManager.startDeviceScan([SERVICE_DATA], null, async (error: BleError | null, device: Device | null) => {
                if (error) {
                    console.log('SCAN ERROR =', error);
                }

                if (device) {
                }
            });

Hi, can you specify on which device you are having this problem and what version of android?

@mciechanowicz This is Samsung Galaxy A51 and Android version 11.

having the same issue, can't pas an array of service UUIDs on Android. Galaxy S20 FE, Android version 12.

authors: IvKr95 mciechanowicz remipou

repo: dotintent/react-native-ble-plx


text:
buildingblocks.png

Can you share the tools that generated this flowchart? Thanks。

thanks

repo: dotnet-architecture/eShopOnDapr


text:
Fix XML query for Project SDK

Fix XML query incorrectly identifying a project file as a non-SDK style project if it contains an xmlns attribute.
I discovered this through https://github.com/martincostello/dotnet-bumper/pull/228 where I switched to using the MSBuildProjectCreator library to create test projects, which are always emitted with the MSBuild namespace. After doing this, the some of the tests would fail due to dotnet outdated failing to update packages correctly as it was misidentifying the projects as non-SDK projects:
Project format not SDK style, removing package before upgrade.

For now, I've worked around this by manually removing the xmlns value from the projects the tests create: https://github.com/martincostello/dotnet-bumper/pull/228/commits/42468393cab4cf36c71e3d71c5fea03593d499ec
I haven't yet tested this change and there didn't seem to be any specific unit tests regarding this check. It's based on the same approach I already used this to handle this myself (example) which I also had to use in the PR referenced above itself to fix my own tests with the added xmlns.

Have done some refactoring to add tests for this scenario, and then refactored the check itself.

Before

After

repo: dotnet-outdated/dotnet-outdated