Cherry picks for 1.12.0 rc5

#23657
8352089 Added daemon.json Windows example
#23862
57e1471 all: fix usage of some variables
#24566
acbe38a fix the docker run --readonly example. rename '/icanwrite here' to '/icanwrite/here'
#24560
3c6ef4c docs: remove executiondriver from API 1.24 docs
#24579
a44e71c bash completion for docker service {create,update} --registry-auth
#24581
a394490 Update bash completion for docker service {create,update} {--mode,--endpoint-mode}
#24301
f5940ef Add IPVLAN and DUMMY to check-config.sh
#24583
c4846f6 Change bash completion for docker run --net* to --network*
#24562
c6b7bd1 Remove "Yes"/"No" and use "true"/"false" consistently in docker info
ea365e4 Make labels human readable
#24573
cabc5b2 Vendoring libnetwork 905d374
ed6641a Handle ingress sbox creation gracefully
#24525
e4a024d Remove --command flag for service update
#24565
477a5f8 docs: fix output of node inspect
#24516
a894aec Add --oom-score-adjust to daemon
#24591
7bf0faf Remove shorthand flags for "mount", "pretty", and "no-resolve"
#24195
3464589 Vendor go-shlex.
674d227 Merge service command and args as a string.
#24598
e1e310e bash completion for docker daemon --oom-score-adjust
#24592
4d87f90 Remove dead code for "inspect --pretty"
#24607
08ae4e5 Fix service inspect --pretty.
#24615
6de8fcb Use spaces, not tabs, to format sample "swarm join" command
#23773
dc33fc1 Add remove flags for service update
ead1f62 PR feedback
4c6faa4 Change the add/update flags to include 'add'
3249c1d Fix multi-remove during service update.
#24588
3050d9a Expand the documentation of "no-new-privileges"
#24628
dbe310e Update service update commandline reference docs
cc651bc Update service inspect --pretty reference docs
#24630
5bf46cc Status code 409 received when conflicting name when creating container
#24593
8e9fbc8 Fix data race in libcontainerd
#24568
1e0b753 Vendor distribution changes
19d48f0 Allow v1 search to use v2 auth with identity token
#24640
c37da17 docs: correct the placement constraints docker service example
#24654
7a93a87 Enable docker socket and service on fedora
6780bdc State that docker supports fedora 24
#24147
acb41dd Change $prog back to docker in sysvinit-redhat
#24665
ba5d9f6 Rename zsh completion for 'docker {create,run} --net --net-alias' to '--network --network-alias'
#24667
64f0890 Add zsh completion for 'docker service {create,update} --registry-auth'
#24655
f5fb3c6 Fix panic in stats test
#24669
92dfbc1 Fix aufs docs
#24666
5d29732 Add zsh completion for 'dockerd --oom-score-adjust'
#24668
2e6922a Update zsh completion for 'docker service {create,update} {--endpoint-mode,--mode}'
#24638
cfe9d2f Delete  redundant content of 'docs/extend/plugins.md'
#24642
0b20231 Wait for the reader fifo opening to block
#24676
d9e8cea Fix daemon panic use wrong graphdriver with --live-restore flag
#24610
fec803f update create swarm and add nodes to use the auto-generated join command
#24702
6f9e310 fixed cut-and-paste error on description of Docker Toolbox
#24699
909c596 Only show port name if set.
#24599
698bd5a Small zsh completion fix on --pretty & --no-resolve
#24682
6ba6265 Document --oom-score-adj flag in docker run
#24718
c15144c docs: update Oracle support link
#24714
d0081a0 better command docker network create -h output
#24705
64a8317 Improve flag help consistency, and update docs
#24694
85b1fdf Increase timeout for swarm requests
#24646
21ecd5a Remove use of exec-root in plugins due to socket pathname limits.
#24659
b74b46b suggested improvements for Debian install doc issue #23884
#24764
db9bc51 Update vendored go-events
#24692
6dca1e6 Print plugin name on successful install, enable and disable.
#23878
4acc2c7 Windows: Always enable VT emulation
#24476
e778ba2 swarm: add log driver support for services
#24397
e1165cd Support node label update.
#24782
f17469e Update docker load security docs
#24741
205bc6f Create zfs directory if it doesn't exist at startup.
#24792
823e161 bash completion for docker service {create,update} --log-{driver,opt}
#24791
bc6e3c0 bash completion for docker node update --label-{add,rm}
#24722
4f0b510 Don't automagically add "[OPTIONS]" to usage
#24776
8fd779d Add only legacy plugins to the legacy lookup map.
#24804
04104c3 Remove docker.socket from rpm based systems
#23825
00a8a40 Add a script to generate man pages from cobra commands.
25e9b06 Set Long text for volume commands so they can be used to generate man pages.
47cca88 Dont run man generation as part of test-unit.
#24648
29b2714 Vendor in new containerd
64483c3 Do not rely on "live" event anymore
c02f827 Update libcontainerd.AddProcess to accept a context
#24802
10919e8 Add documentation for stack commands
#24801
5d46273 Remove extra map lookup for volume drivers.
#24653
d327765 Test rolling update.
#24507
9594ac9 add ref docs for node label
#24829
45484f5 Add zsh completion for 'docker service {create,update} --log-{driver,opt}'
#24828
cdb8383 Add zsh completion for 'docker node update --label-{add,rm}'
#24832
cf61cd3 Fix the usage for service rm command
#24839
effbd2b fix duplicated usage in docs
#24843
78a5480 Fix nits in deprecated
#24841
06f3526 Rename --bundle to --file
#24852
f49dc52 docs: add initial reference for "stack services"
#24523
68a9224 clarify update-delay and rolling update behavior
#24620
1d600eb Allow partial name match for service ls --filter
e734fa5 Allow partial name match for node ls, and node tasks
467107c Vendor swarmkit to 9ee5fc3b8db5de8c8593a57bc45fc178f74ceee1
#24859
492fdf1 Update completions for syslog log driver options
#24820
137261f add how nodes work to how swarm works guide
#24864
9d532b5 docs: update reference docs for plugins
#24842
b5503ef docs: add code-hints to builder page
#24563
3489e76 Added leader election test
#24866
83b12c0 docs: fix copy/pasta error
#24861
6c98d5b Add manual support for macvlan networks to bash completion
#24870
a40b582 api/client/service: shorten to volume-opt
#24888
f62e24f Clarify API behavior when older versions are called.
#24700
a26bdd8 Send registry auth token for service deploy
#24892
07ef0a3 docs: improve formatting and highlighting of docker ps reference
#24874
5189e3d update libkv, fix wrong error check on zookeeper list
#24572
9414955 Extend deprecation cycle to 3 releases by default
#24904
d5cbc57 Harmonize containerd commit used by all Dockerfile
#24925
b2ad59e Make README less scabious
#24924
3d30155 Update the errNoManager() to conform to swarm join-token
#24930
c4ab20c remove "secrets" from completion scripts
#24915
58ba4c3 Reorder swarm commands
#24885
8426f72 Append --registry-auth with with
#24907
9ac145d updates get started with swarm to use join-token
#24934
42b4d6e bash completion for docker swarm join-token
#24952
67246af api/client/service: default update parallelism to 1
#24960
933ba8d Update --update-parallelism docs
#24954
3a3f800 Fix regression on --link on bridge network
#24872
634f54a api/client/service: mount option defaults and aliases
#24932
bd81df1 Change "rotate_worker_token" to "rotateWorkerToken"
9a3e475 bump engine-api to ebb728a1346926edc2ad9418f9b6045901810b20
#24957
d97c0a1 CLI: Change default Swarm task history retention limit.
#24979
180f8c6 Update swarm init task-history-limit docs
#24237
d626875 Revendor swarmkit
24d2d53 Vendor libnetwork and github.com/vishvananda/netlink
a0ccd0d Split advertised address from listen address
fca0b18 Require listen address and advertise address to be an IP address or an interface name
d3af5e3 Daemon changes to pass exec-root to libnetwork
#24994
a04bba8 Add zsh completion for 'docker swarm join-token' command
#24963
4e959ef fix typos
#24961
83c186f Windows: Restore console mode on set mode failure
#24991
c42fbc6 Fix AuthzPlugin URL fragment in docs
#24988
8f9066c Prevent network connect/disconnect on swarm scoped networks
#24990
56b78ab Vendoring libnetwork for rc5
#23844
c8a99a5 Expand instructions on using systemd to manage containers
#23908
54e8bee Fix high cpu usage caused by docker stats.
#24997
af83595 small nit: fix unmeaningful log
#25003
3fa9d77 make network errors less DRY
#24917
edd67fd service tasks: Improve error reporting
#24984
5231c55 Prepend libcontainerd log message with "libcontainerd:"
ac068a1 Fix missing unlock in libcontainerd.Restore()
#24942
4a44cf1 Handle plugin shutdown when liveRestore is set.
#25012
2b7548f Add note about --entrypoint overriding default command
#24908
4016038 Treat HEALTHCHECK NONE the same as not setting a healthcheck
#24943
3585026 Revendor engine-api
57ae29a Add failure action for rolling updates
#24207
c406711 add run swarm mode guide
#24857
24f87f2 swarm docs: add administration guide for Managers and Raft
#25018
227c7e4 Sort plugin names in node description
#24856
91e9f38 healthcheck: do not interpret exit code 2 as "starting"
#24545
a99db84 extend health check to start service
#25023
85bc319 fix panic on --label-add
#24967
40c88b8 improve error message when using ineligible network with service create

Hitting #25029

LGTM, failures are unrelated

LGTM

@tiborvass Hi - what's the best way to get RC4 or 'RC5' to build from docker/docker repo? Is there a tag I can checkout? I want to build on ARM.

@alexellis you can checkout the v1.12.0-rc5 tag, but there is an ARM issue if you want to build the deb packages #25124


JavaExeption with TradingPeripheral

Hey, i get the following error when using the Trading-Peripheral in my modpack.:

The exeption even comes with very simple Code:
vill = peripheral.wrap("front") vill.trade("bottom","back",1)
Forge-Version: 39.0.75
CC-Tweaked Version: cc-tweaked-1.18.1-1.100.2
MorPeripherals-Version: MorePeripherals_1.18.1-1.3
I also have AdvancedPeripherals and other mods installed. Maybe thats the Problem, but maybe you have an other idea.

Sorry had a missunderstanding and had the chest above and below the peripheral and not the computer


Add $not and $isNull operators

Adds a $not and $isNull operators for where queries.
$not looks like this:
{books: {$: {where: {title: {:$not "The Things We Make"}}}}}

$isNull takes a boolean, true to return rows where it is null and false to return rows where it isn't:
{books: {$: {where: {title: {:$isNull true}}}}}

At the datalog layer, the operators are kind of crammed in to the value position. For $not, the pattern looks like:
[?e aid {:$not "val"}]

For $isNull, the pattern looks like:
[?e id-eid {:$isNull {:attr-id aid, :nil? true}}]

It might be nicer if we had predicate functions, but I had a difficult time figuring out how to map that to our postgres queries.
The $not CTE is pretty simple, it just looks like:
    AND (
      attr_id = 'aid'::uuid
    )
    AND (value <> CAST('"a"' AS JSONB))

When you use a $not, we also add a $isNull: true, since our $not will only match on triples that have something set for the attribute. We still want to return rows where the value is "undefined".
The $isNull is a little more complicated. It checks for null as a value for the attr and for entities where the attr is missing:
    AND (
      attr_id = 'id-attr-id'::uuid
    )
    AND (
      entity_id NOT IN (
        SELECT
          t.entity_id
        FROM
          triples AS t
        WHERE
          (t.entity_id = entity_id)
          AND (
            t.attr_id = 'aid'::uuid
          )
          AND (t.value <> CAST('null' AS JSONB))
      )
    )

Also changes the in operator to $in, but keeps the old one around for backwards compatibility.

Found an issue with how this handles references. It's putting the nil and not checks at the wrong levels on the CTEs.
Still a little bit of work to do before shipping.


Mention devtest in frontend contributing guidelines

Our devtest page contains some good UI examples which should be taken as example when working on Gitea UI. Mention it in our frontend contributing guidelines to for new contributors to know about it.

YO, thats made my day great.
thanks @denyskon 🙇

🚀


Make @types/jquery a peer dependency (closes #185)

Pull Request Test Coverage Report for Build 436

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

Totals

Change from base Build 435:
0.0%

Covered Lines:
121

Relevant Lines:
244

💛  - Coveralls

Pull Request Test Coverage Report for Build 436

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

Totals

Change from base Build 435:
0.0%

Covered Lines:
121

Relevant Lines:
244

💛  - Coveralls


Issue with curl output in python image

I faced with curl issue in python image(python:latest). The problem related with thrash in output with -v option.
I just tried build other versions of curl manually and got the same situation. Tried with alpine:latest image and curl is working with normal output. Probably problem with some library which curl is using.

 Example of output
curl -v http://ip_rest:8080/logs
* Expire in 0 ms for 6 (transfer 0x558cd58f2f50)
* Expire in 1 ms for 1 (transfer 0x558cd58f2f50)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 1 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 1 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 2 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
* Expire in 0 ms for 1 (transfer 0x558cd58f2f50)
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x558cd58f2f50)
* Connected to IP-restrest (<IP_ADDRESS>) port 8080 (#0)
> GET /logs HTTP/1.1
> User-Agent: curl/7.64.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Thu, 05 Dec 2019 12:28:50 GMT
< Server: WSGIServer/0.2 CPython/3.8.0
< content-type: application/json; charset=UTF-8
< content-length: 65
<
{ [65 bytes data]
100    65  100    65    0     0   4642      0 --:--:-- --:--:-- --:--:--  4642

This was fixed in 7.64.1 https://github.com/curl/curl/pull/3558
Debian Buster (what Python:latest uses) is at 7.64.0-4. So whenever Buster's curl is updated the change will be incorporated into the images

Closing since this is an upstream-package issue, whenever that gets resolved the changes will propogate into the latest images shortly after


fix: update to batch processing

:tada: This PR is included in version 1.1.1-beta.1 :tada:
The release is available on:

npm package (@develop dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Support additional attributes from System.ComponentModel namespace

For example:

DescriptionAttribute
ReadOnlyAttribute
DisplayNameAttribute

Is there any progress on this issue? It would be really good to have this because it allows to use framework-defined attributes to annotate classes, without a need to add additional assembly.
Consider the following setup. There's a common library with business objects, having all the descriptions. And there's a number of services using this library, one of those provides web api with CRUD operations over the business objects, but other services have no relation to OpenAPI, and web at all.
So to have the API service display a nice swagger UI it's necessary to add a reference to Swashbuckle.AspNetCore.Annotations to the common library, which would then propagate to all dependent services.

I've looked through the sources and was quite puzzled because Swashbuckle.AspNetCore.SwaggerGen.SchemaGenerator does support RequiredAttribute and DefaultValueAttribute from System.ComponentModel. So it's unclear why not support other ones?
Anyway I've quickly mocked a filter (based on Swashbuckle.AspNetCore.Annotations.AnnotationsSchemaFilter) than reads the remaining attributes. So maybe it would help you in some way to speedup the implementation in the library.
ComponentModelSchemaFilter.cs.txt

@domaindrivendev I’m part of the API team at Criteo, and as such we provide common, generic, models to be used in our various internal and external APIs to have an homogenous input/output/error structure.
As such we currently have to rely an xmlDoc/filters/customSchemaIds to fine tune the description and schemaIds for our generic models. But this require internal teams to correctly reference the correct assembly and inject the correct filters and such. And it’s quite hard to fully enforce that.
So relying on DescriptionAttribute for schema/field description and DisplayNameAttribute for schemaId would be beneficial as those would not require any custom configuration.
If the support of those attributes is still in line with the Swashbuckle roadmap, I would be happy to work on a PR :)


File explorer overflows

Reported by customer: File tree no longer shows full file names when going few directories down.

Fixed in https://github.com/thebaselab/codeapp/commit/a89bc748af633d3c5d6f20a23682866e142e2889. It is now possible to adjust the width of the sidebar.


Add a parameter to set / customize the build ID

The build ID currently defaults to the run number. We should provide a mechanism to either override the build ID or configure its source.

Alternative: use the run number + a hash of the job name (if this is available). We want to avoid collision of build IDs between jobs of the same workflow/run.

This issue touches on two topics:

we wish to customize the build/trace ID
we want to make sure the trace ID never occurs twice (this creates mangled spans)

The second case has been resolved with https://github.com/kvrhdn/gha-buildevents/commit/fcca366e60402cbca3f157c6120edbd88d54caf3, the first case is something we don't plan to support for now. If this is something that you'd need, feel free to comment here and we can re-evaluate.


Greenkeeper/eslint plugin import 2.19.1

Pull Request Test Coverage Report for Build 588

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

Totals

Change from base Build 586:
0.0%

Covered Lines:
56

Relevant Lines:
57

💛  - Coveralls


Apple OSX H/W / USB issues

Required Info

Camera Model
F200

Firmware Version
<IP_ADDRESS>

Operating System & Version
OSX 10.11.4

Kernel Version (Linux Only)

Build System
Makefile

When use commandline make install to install after  make successfully:
the result is:
mkdir -p obj/libuvc
mkdir -p lib
mkdir -p bin
c++ -std=c++11 -shared obj/verify.o obj/context.o obj/device.o obj/f200-private.o obj/f200.o obj/image.o obj/log.o obj/r200-private.o obj/r200.o obj/rs.o obj/stream.o obj/sync.o obj/types.o obj/uvc-libuvc.o obj/uvc-v4l2.o obj/uvc-wmf.o obj/uvc.o obj/libuvc/ctrl.o obj/libuvc/dev.o obj/libuvc/diag.o obj/libuvc/frame.o obj/libuvc/init.o obj/libuvc/stream.o `pkg-config --cflags --libs libusb-1.0` -o lib/librealsense.so
install -m755 -d /usr/local/include/librealsense
cp -r include/librealsense/* /usr/local/include/librealsense
cp lib/librealsense.so /usr/local/lib
ldconfig
make: ldconfig: No such file or directory
make: *** [install] Error 1

I know that ldconfig is a linux command, and in OSX there is a command called dyld has similar function.
But simply replace ldconfig with dyld won't work.
Do I miss something?

Please use the included XCode solution instead of the makefile. The makefile is not supported on OSX.

@ddiakopoulos
tried the XCode, still not OK.
for example, first I build the librealsense successfully, then I connected the device (F200) via USB, tried the cpp-tutorial-3-pointcloud, and the result is:
There are 1 connected RealSense devices.

Using device 0, an Intel RealSense F200
    Serial number:<PHONE_NUMBER>09
    Firmware version: <IP_ADDRESS>
rs.error: TemperatureControlLoop: libusb_bulk_transfer(...) returned LIBUSB_ERROR_NO_DEVICE
rs::error was thrown when calling rs_wait_for_frames(device:0x103000018):
    Timeout waiting for frames.
Program ended with exit code: 1

Any suggestions?

@Zieng could be a hardware issue... often indicated by Timeout Waiting for Frames. But...you are running on an older F200 firmware that can only be updated by a Windows 10 computer by installing the RealSense F200 DCM. That could be one issue... so I would try updating first.

Thanks a lot!
I will try to update the firmware and check if it's OK.

@ddiakopoulos
I update firmware to latest, but still not working.
here is the message:
There are 1 connected RealSense devices.

Using device 0, an Intel RealSense F200
    Serial number:<PHONE_NUMBER>09
    Firmware version: <IP_ADDRESS>
rs_error was raised when calling rs_wait_for_frames(device:0x102002018):
    Timeout waiting for frames.
Program ended with exit code: 1

@Zieng maybe try on a different USB port or through a powered USB 3.0 hub.

If you using hackintosh, it didn't work.
It work in my macbook air mid 2012. Libusb using from brew.

@blackerpaper
Thanks for your reply. My computer is rmbp (early 2015), OSX 10.11.4.

I'm experiencing the same issue. In my case, the RGB camera works fine, but If I try to get depth or IR frames, I get the following error:
RealSense error calling rs_wait_for_frames(device:0x7ffb49003618):
    Timeout waiting for frames.

Hardware information:
Intel RealSense F200 - Firmware version: <IP_ADDRESS>
MacBook Pro (Retina, 13-inch, Early 2015)

I know that it seems trivial, have you tried to reset the smc or pram?
According to:
https://discussions.apple.com/thread/7076646?start=0&tstart=0

Seems like the root cause here is USB controller H/W that is just flaky for some versions of RealSense cameras on some versions of Apple hardware. Unfortunately there's not much we can do here other than keep a running list of Apple H/W that has known incompatibilities.

Regarding this comment:

"Please use the included XCode solution instead of the makefile. The makefile is not supported on OSX"

If that is the case, then you should have a clear error that checks for OSX and informs the user!!!

@ataiya Not supported is precisely what that means. Several people have contributed steps to enable Makefile support on OSX that I have merged. I've never tested them and therefore have no indication if it's working or broken. Since this is an open-source project with a large number of merged contributions, I highly support your time and effort figuring out why it's not working on your system and submitting a fix!

Alright, nice to hear that. Give me a bit of time and I will fix the CMake build for OSX.
(XCode is just too ugly... polluted my ~/Library/Developer with build files... sad)

I see it was quite a while ago this issue was discussed. I'm running into exactly this issue with my R200 on OSX 10.12. Any progress since this issue was discussed?


Fatal error: tRNS for non-paletted images not yet supported.

Did initial setup per instructions. Threw a handful of .png files into my source folder. When running the Grunt task this is the error I received.

I think that error message is the opposite of what it should be. It looks like you are using palette PNGs with transparency in them (case 3).
https://github.com/darkskyapp/pngparse/blob/def96c080ffc118cb35b10c1d5f35776e0343efe/index.js#L192-L194
http://www.w3.org/TR/PNG/#11tRNS
I don't have time to contribute that support to the PNG library. I am going to leave this issue open for now. Some options you have:

Add support to pngparse (maintainer is very responsive)

https://github.com/darkskyapp/pngparse

Convert your source images to a non-paletted PNG

See progressive format note in https://github.com/Ensighten/grunt-spritesmith/issues/80#issuecomment-67724081

Use a different engine (e.g. phantomjssmith)

Wow, that was quick. Your reply in faster than my own troubleshooting.
I just finished changing the batch of pngs so they are non-transparent. The sprites now generate fine.
Thank You!
If I need transparency, I'll figure something else out and come back here to comment again.
But please feel free to close the issue.

You don't need to ditch the transparency. It is the specific way that colors are being stored in your PNGs. If you load/save the PNGs via something like Photoshop, GIMP, or Pixlr, then the issue will likely go away and you can still keep transparency.

Great, I will try that.

Ah, thanks for that hint. Knowing very little about graphics files at this level, I went back to my utility of choice that I had originally processed the png files with, Irfanview (on Windows). By simply checking a box in the 'Save As' dialog, , it resolved the problem.
I also +1 your issue#10 on pngparse project.

Closing after using for a number of different scenarios and experiencing no issues.

I just managed to trigger this error after running ImageOptim over my sprites folder, but because I have hundreds of sprites and the error message didn't tell me which file was causing the problem I can't really add anything of use to this issue other than "me too".
I usually just tend to run ImageOptim over the resulting spritesheet files, as it knocks off a significant chunk, so I can still do that.


Follow Model6 spec more closely

Fixes
https://github.com/probcomp/hierarchical-irm/issues/188
https://github.com/probcomp/hierarchical-irm/issues/189
https://github.com/probcomp/hierarchical-irm/issues/190

I don't understand how this fixes #189, could you explain?
Edit: I see, because the name suffix is the query variable. I think it would help readability in the tests if the query variables had different names from the classes.

I'm a little bit reluctant to change the names, because they are taken directly from the PClean paper, and it's a nice check to make sure that nothing breaks when the set of class names and the set of query variables overlap.


Unexpected Results Using $enable-shadows

Changing $enable-shadows to true does not give the results I believe most people are expecting.
Example 1:

Example 2:

So please consider changing line 339 of variables.scss from $btn-box-shadow: inset 0 1px 0 rgba($white,.15), 0 1px 1px rgba($black,.075) to something like $btn-box-shadow: 0 2px 2px rgba($black,.2).
Also, what do you guys think about having shadows on active nav pills when $enable-shadows is set to true?

Hi @LarryAzevedo although I don't think pills should have shadows I think that shadows in general are all over the place. To me it doesn't matter if the shadow on btns is subtle, since that's an opinion, as long as it's consistent with other elements.
I've described a possible solution here #23775

Hey @andresgalante, thanks for your feedback on pill shadows.  As far as your comment:

To me it doesn't matter if the shadow on btns is subtle

I understand that to you it doesn't matter.  Heck, it doesn't even matter to me (now that I know it works).  But what about others like myself that didn't notice anything different after turning on shadows?  Not the greatest user experience.
By the way, I like your solution on #23775


bump version on 0.9.8

bump version on 0.9.8

Sorry, what is your problem ?

inactive no clear question


Update Chart.yaml

bump version

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign ankh-daemon
You can assign the PR to them by writing /assign @ankh-daemon in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ankh-daemon: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr
ad9acc37481c6a488a38c5ed68a14b2343cd2ddd
link
/test pr

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@ankh-daemon: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr
791ac083b83e230496218f9ec0164d48876d7d18
link
/test pr

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@ankh-daemon: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr
0d9de5dbd49e8568b98f2aa26f20cebd168f361d
link
/test pr

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

/approve

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: iamjohnnym
To complete the pull request process, please assign ankh-daemon
You can assign the PR to them by writing /assign @ankh-daemon in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Support for Scroll

Hi. I noticed that by walletconnect - connection to the Scroll blockhain is not available.
Should I open an issue at the SDK repo instead?
Thanks

@RoyTimes

This blockchain is not supported yet, so the connection via WC does not work. There are no plans to add this blockchain shortly. I will pass it on to the team responsible for blockchain analysis.


feat(dup): implement pegasus_mutation_duplicator

What problem does this PR solve?
Implement dsn::replication::mutation_duplicator interface to support sending mutations to
the remote Pegasus cluster.
Our target is to simply the "mutation sending" process, reuse the existing client lib, duplicate each
mutation independently, leave optimization to the future. Therefore the performance may be poor,
but the overall cost is acceptable, as long as we make it easy to understand.
include/dsn/dist/replication/mutation_duplicator.h
What is changed and how it works?
The design inside the box is:

pegasus_mutation_duplicator receives a batch of mutations to be duplicated to the remote endpoint. After sending the entire batch, it calls cb for the next batch. The batch-by-batch design
is to preserve the data consistency of both clusters.

void duplicate(mutation_tuple_set muts, callback cb) override;

In our initial implementation, the batch of mutations are shipped one-by-one for consistency:

private:
      std::deque<duplicate_rpc> _inflights;

We can improve this design with slightly increased complexity, by dividing the mutations into
groups, isolated by their key. This way helps increase concurrency with uncompromising consistency.
private:
    // hash -> duplicate_rpc
    std::map<uint64_t, std::deque<duplicate_rpc>> _inflights;

Types of writes are wrapped in duplicate_rpc. This design is extensible for adding and removing a write RPC in the future because the real content is hidden under task_code and raw_message. The duplicator is unaware of what the write is.

struct duplicate_request
{
    1:i64                     timetag;
    2:dsn.task_code           task_code;
    3:dsn.blob                raw_message;
    4:i64                     hash;
}

struct duplicate_response
{
    1:i32           error;
}

One corner case is when the write type is RPC_RRDB_RRDB_DUPLICATE, the duplicator should extract the real content inside, avoid recursively duplicating a duplicate_rpc.
For example, given a duplication graph:
Cluster A -> Cluster B -> Cluster C
Cluster A receives a PUT request and duplicates it to Cluster B. B receives a DUPLICATE, it should unwrap the real content, instead of sending DUPLICATE to Cluster C.

timetag

The design is described below:
    /// The value schema here is designed to resolve write conflicts during duplication,
    /// specifically, when two clusters configured as "master-master" are concurrently
    /// writing at the same key.
    ///
    /// Though writings on the same key from two different clusters are rare in
    /// real-world cases, it still gives a bad user experience when it happens.
    /// A simple solution is to separate the writes into two halves, each cluster
    /// is responsible for one half only. How the writes are separated is left to
    /// users. This is simple, but unfriendly to use.
    ///
    /// In our design, each value is provided with a timestamp [0, 2^56-1], which
    /// represents the data version. A write duplicated from remote cluster firstly
    /// compares its timestamp with the current one if exists. The one with
    /// larger timestamp wins.
    ///
    /// An edge case occurs when the two timestamps are completely equal, the final
    /// result is undefined. To solve this we make 7 bits of space for cluster_id
    /// (the globally unique id of a cluster). In case when the timestamps are equal,
    /// the conflicts can be resolved by comparing the cluster id.
    ///
    /// Consider another edge case in which a record is deleted from pegasus, however
    /// in the remote cluster this record is written with a new value:
    ///
    ///   A: --------- update(ts:700)---- delete ---- update duplicated from B(ts:500) --
    ///   B: ---- update(ts:500) --------------------------------------------------------
    ///
    /// Since the record is removed, the stale update will successfully though
    /// incorrectly apply. To solve this problem there's 1 bit flag marking whether the
    /// record is deleted.
    ///
    /// rocksdb value (ver 1)
    ///  = [expire_ts(uint32_t)] [timetag(uint64_t)] [user_data(bytes)]
    ///  = [expire_ts(unit32_t)]
    ///    [timestamp in μs (56 bit)] [cluster_id (7 bit)] [delete_tag (1 bit)]
    ///    [user_data(bytes)]
    ///
    /// \internal

Check List
Tests

Unit test

本次pr热备是由pegasus_mutation_duplicator的duplicate函数开始，处理每个mutation_tuple_set，将每个mutation的dup rpc存储在_inflight map中，并依次调用send函数，pegasus server client的async_duplicate函数，pegasus client的duplicate函数，发送给远端的cluster，请问我的理解是否有问题？

本次pr涉及的复制流程是由pegasus_mutation_duplicator的duplicate函数开始，处理每个mutation_tuple_set，将每个mutation的dup rpc存储在_inflight map中，并依次调用send函数，pegasus server client的async_duplicate函数，pegasus client的duplicate函数，发送给远端的cluster，发送后的回调由on_duplicate_reply处理，请问我的理解是否有问题？

对


add ipAddress to support docker network like macvlan

When  craeting an app with with docker macvlan network in marathon，there is two steps we may do bellow:  reference: https://docs.docker.com/engine/userguide/networking/get-started-macvlan/

create docker macvlan network
 docker network create -d macvlan --subnet=<IP_ADDRESS>/24 --gateway=<IP_ADDRESS> --ip-range=<IP_ADDRESS>/28 -o parent=eth0 -o macvlan_mode=bridge macvlan0

deploy an app with json
{
 "id": "macvlan-2048",
 "cmd": null,
 "cpus": 0.1,
 "mem": 128,
 "disk": 0,
 "instances": 1,
 "container": {
 "docker": {
 	"image": "",
 	"network": "HOST",
 	"parameters": [
 {
   "key": "net",
   "value": "macvlan0"
 }
 ]
 },
 "type": "DOCKER"
 },
 "ipAddress":{
 	"discovery":{
 		"ports":[
     		{
 			"number":80,
 			"name":"http",
 			"protocol":"tcp"
     		}
 			]
 		}
 	}
 }

this PR add IpAddress field and update the createApps function to support app with macvlan network

Thanks for the PR. @Willbern would you be able to resolve the git conflicts?

@activars ok

@activars Thanks for your review. I had resolve the git conflicts and add some unit test, but how to trigger the checks to run again  manually?

Your commit triggers the test automatically.

@activars i have update the commit, but it does't run yet

Coverage increased (+0.6%) to 57.159% when pulling b45d07c752bc91309f86c9d7e49323b83483f8eb on Willbern:will-macvlan into 7e7071d9ea6c0c8837ed73c4525d70190dd769bc on QubitProducts:master.

Coverage increased (+0.6%) to 57.159% when pulling b45d07c752bc91309f86c9d7e49323b83483f8eb on Willbern:will-macvlan into 7e7071d9ea6c0c8837ed73c4525d70190dd769bc on QubitProducts:master.

There might be a test queue, I think it just managed to run and passed the test.

On Jun 29, 2017, at 14:08, Will<EMAIL_ADDRESS>wrote:
@activars i have update the commit, but it does't run yet
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, the test passed and thanks for your reply.


Adds various prompts for working with ChatGPT

Thanks! Added some prompts. Generally did not include anything that was project manager related or felt too specific. Changed a few or the prompt names. But these are pretty cool. TY!


a small bug in Makefile

In the Makefile ,line 514.It should be ifeq($(LINUX),1) instead of  ifeq($(LINUX),0). is that right ?

mkl-dnn does not have a Makefile because it uses CMake. If you want to report a bug against IntelCaffe, please submit it at https://github.com/intel/caffe/issues.


bug about data

Hello, thank you so much for sharing such an excellent codebase and project! I have learned a lot from your work, and it has been incredibly helpful for my research/study.
However, I encountered an issue when running the code, and I would greatly appreciate your assistance. The specific error message is as follows:

I followed the environment setup instructions in the README.md file and ran the pretrain.py script according to the steps provided in the README.md. However, the above error occurred. Based on the error message, it seems there is an issue with the JSON file corresponding to WikiCS. I manually added ] and } symbols to the JSON file to make it complete. However, another bug then appeared, as shown below：

@lxx01110 Thank you for letting us know. Could you please explain where the first bug occurred in our code and what JSON file you modified? This would significantly help us check the code.

@lxx01110 Thank you for letting us know. Could you please explain where the first bug occurred in our code and what JSON file you modified? This would significantly help us check the code.

The bug I mentioned above has been resolved, probably due to not having the full data downloaded. I used conda env create -f environment.yml to download the environment according to the instructions in the readme.md file, but I still didn't install the datasets and pyg-lib libraries, and I have installed them manually. However, the following problems arise:

@lxx01110 Thank you for your response. We have re-run the process and found that the pipeline is working correctly. Could you please try reinstalling the environment? If you encounter any issues, don’t hesitate to let us know. Based on the snapshot provided, we suspect the issue might be related to the pyg version. Our project uses pyg 2.3, so if your version is higher, you may want to consider downgrading it.

@lxx01110 Hello, kindly let us know if you’ve resolved the issue. If not, we’ll be glad to assist you further.

Thank you so much for your willingness to take the time to solve my problem. I've reconfigured my environment and am currently running pretrain.py, and if there is no problem in the end, I'll let you know right away. Thank you again for your generous help.

@lxx01110 Hello, kindly let us know if you’ve resolved the issue. If not, we’ll be glad to assist you further.

Hello, zehong, I have reproduced the results, thank you very much for your careful help. The above error may be because I have multiple virtual environments actived at the same time, and when I run your code, the base virtual environment is called, so the version  is incorrect. Thank you very much for the novel idea as well as the code, it will be a huge help to my research, thank you very much!


Check Python version on CI

@tisnik Your image is available in the registry: docker pull quay.io/openshiftio/rhel-fabric8-analytics-worker-scaler:SNAPSHOT-PR-47


Add -revoked option (close #98)

This PR add changes in order to implement the revoked certs detection (add flag -revoked).
Using ctls
cat ~/test/badssl.txt | cmd/tlsx/tlsx -revoked

  _____ _    _____  __
 |_   _| |  / __\ \/ /
   | | | |__\__ \>  <
   |_| |____|___/_/\_\	v0.0.8

		projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
self-signed.badssl.com:443
untrusted-root.badssl.com:443
expired.badssl.com:443
wrong.host.badssl.com:443
pinning-test.badssl.com:443
revoked.badssl.com:443 [revoked]
[INF] Connections made using crypto/tls: 6, zcrypto/tls: 0, openssl: 0

Using ztls
cat ~/test/badssl.txt | cmd/tlsx/tlsx -revoked -sm ztls

  _____ _    _____  __
 |_   _| |  / __\ \/ /
   | | | |__\__ \>  <
   |_| |____|___/_/\_\	v0.0.8

		projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
self-signed.badssl.com:443
untrusted-root.badssl.com:443
pinning-test.badssl.com:443
wrong.host.badssl.com:443
expired.badssl.com:443
revoked.badssl.com:443 [revoked]

Some thoughts:

The cTLS verifier uses the package revoke by Cloudflare, but this seems to indirectly add a lot of dependencies. If this is a problem I think it's possible to copy only the necessary code in order to verify the Certificate and avoid all those dependencies (afaik the licenses are compatible adding a notice). I've chosen to use this method because seems cleaner and more elegant to me.
I can't provide an easy way to test the feature, the only thing coming in my mind is to mimic a run setting some options.
I cannot test openssl mode since I get an error while building the binary.

Let me know if I have to apply changes
This PR closes #98.

This commit https://github.com/projectdiscovery/tlsx/pull/99/commits/d6cf5485589b4e3b290cd69be2ec2e733e7a6fdb fixes the first problem (add lot of deps by cloudflare package) and some weird cases in which ztls and ctls behave differently.


Update python-astro-sdk CI config to use Airflow-2.5.2

Let's update the ci config to run run tests against latest airflow version and also generated constraint for latest airflow minor version constraint

PR title and description both have typos. Also PR title could be a little bit more descriptive on what update we actually are doing (e.g. something like 'Upgrade Airflow version to 2.5.2 for CI job runs')

updated


Google Sign In throws an exception if offline

Steps to Reproduce
Run an Android app that uses Google Sign In, with airplane mode on.
I'm simulating a no-network condition (which is somewhat common in my use case) trying to rely on the Firebase database cache in some cases when offline.
The popup appears, to select an account to sign in, then it throws an exception after selecting one.
I wasn't expecting it to function correctly, but I was hoping for a more targeted Exception to catch, as there are probably a few different scenarios that could throw a PlatformException.
Logs
D/NetworkSecurityConfig( 6234): No Network Security Config specified, using platform default
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): remote DNS query failed we don't need to try local DNS query result_code =401
Syncing files to device LG H910...
I/flutter ( 6234): Silent login failed
I/Timeline( 6234): Timeline: Activity_launch_request id:net.hotfixit.cybertronix time:564367150
I/Timeline( 6234): Timeline: Activity_idle id: android.os.BinderProxy@9b38f9e time:564367385
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): remote DNS query failed we don't need to try local DNS query result_code =401
D/libc    ( 6234): getaddrinfo called from pid =6234

🔥  To hot reload your app on the fly, press "r". To restart the app entirely, press "R".
An Observatory debugger and profiler on LG H910 is available at: http://<IP_ADDRESS>:8116/
For a more detailed help message, press "h". To quit, press "q".
D/FirebaseInstanceId( 6234): background sync failed: SERVICE_NOT_AVAILABLE, retry in 30s
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): remote DNS query failed we don't need to try local DNS query result_code =401
D/libc    ( 6234): getaddrinfo called from pid =6234
E/flutter ( 6234): [ERROR:lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter ( 6234): PlatformException(status, Status{statusCode=NETWORK_ERROR, resolution=null}, null)
E/flutter ( 6234): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:514)
E/flutter ( 6234): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:154)
E/flutter ( 6234): <asynchronous suspension>
E/flutter ( 6234): #2      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:156)
E/flutter ( 6234): <asynchronous suspension>
E/flutter ( 6234): #3      GoogleSignIn._addMethodCall.<anonymous closure> (package:google_sign_in/google_sign_in.dart:196)
E/flutter ( 6234): #4      _RootZone.run (dart:async/zone.dart:1366)
E/flutter ( 6234): #5      _FutureListener.handleWhenComplete (dart:async/future_impl.dart:152)
E/flutter ( 6234): #6      _Future._propagateToListeners.handleWhenCompleteCallback (dart:async/future_impl.dart:606)
E/flutter ( 6234): #7      _Future._propagateToListeners (dart:async/future_impl.dart:662)
E/flutter ( 6234): #8      _Future._addListener.<anonymous closure> (dart:async/future_impl.dart:343)
E/flutter ( 6234): #9      _microtaskLoop (dart:async/schedule_microtask.dart:41)
E/flutter ( 6234): #10     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
I/Timeline( 6234): Timeline: Activity_idle id: android.os.BinderProxy@e80409f time:564375639
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): getaddrinfo called from pid =6234
D/libc    ( 6234): remote DNS query failed we don't need to try local DNS query result_code =401

Does statusCode=NETWORK_ERROR in the exception object help you in this case?


Change the observation space

Hi @eleurent,
In merge-v0, I would like to add a state to distinguish between a main road and an on-ramp，How Do I change the source code？
Looking forward to your reply.
Thanks!

In addition, how to obtain the ID of the road where the vehicle is located

To add a new observation type, you should edit the envs/common/observation.py file.
You can add a new Type, and in its observe() method you can access the current vehicle lane with self.observer_vehicle.lane_index, which will be a tuple (lane_start_node_id, lane_end_node_id, lane_number).
To use them as numeric observations, it is probably best to rename the node ids in the scene as integers, so you have a tuple of integers. And then, you can optionally convert them to one-hot encodings if needed for the representation.


ashuffle: 3.4.0 -> 3.10.1

Motivation for this change
Updating to the latest version, which has a few additional options.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 113413 at 3a367a7d run on x86_64-linux 1

1 package built:

ashuffle

1 suggestion:

warning: meson-cmake
Meson uses CMake as a fallback dependency resolution method and it likely is not necessary here. The message about cmake not being found is purely informational.
Near pkgs/applications/audio/ashuffle/default.nix:24:3:
   |
24 |   nativeBuildInputs = [ cmake pkg-config meson ninja ];
   |   ^

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 113413 run on x86_64-linux 1

1 package built:

ashuffle

The following issues got detected with the above build packages.
Please fix at least the ones listed with your changed packages:

ashuffle:

Meson uses CMake as a fallback dependency resolution method and it likely is not necessary here. The message about cmake not being found is purely informational.
Near pkgs/applications/audio/ashuffle/default.nix:24:3:
   |
24 |   nativeBuildInputs = [ cmake pkg-config meson ninja ];
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/meson-cmake.md

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 113413 run on x86_64-darwin 1

1 package built:

ashuffle

The following issues got detected with the above build packages.
Please fix at least the ones listed with your changed packages:

ashuffle:

Meson uses CMake as a fallback dependency resolution method and it likely is not necessary here. The message about cmake not being found is purely informational.
Near pkgs/applications/audio/ashuffle/default.nix:24:3:
   |
24 |   nativeBuildInputs = [ cmake pkg-config meson ninja ];
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/meson-cmake.md

@SuperSandro2000 While ashuffle itself builds with meson, its git submodules use cmake, so both are needed in nativeBuildInputs. See previous discussion here: https://github.com/NixOS/nixpkgs/pull/89186#discussion_r432827075


⚠ Bofrost.be has degraded performance

In d0be7a8, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1561 ms

Resolved: Bofrost.be performance has improved in 1134e22 after 9 minutes.


pigpiod reach more then 8~12 load average

pigpiod reach 8~12 cpu load on Raspberry Pi 4 Model B (aarch64) (4 cpu)
DietPi v7.8.2

root@DietPi:/dev# cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian

root@DietPi:/dev# uname -r
5.10.63-v8+

top - 15:46:03 up 31 min,  2 users,  load average: 13.02, 11.07, 6.64
Tasks: 122 total,   1 running, 121 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.3 us,  1.4 sy,  0.0 ni, 94.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3844.9 total,   3316.7 free,    276.3 used,    252.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3470.2 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  288 root      20   0  337540   1760   1540 S   6.7   0.0   1:48.67 pigpiod
13211 root      20   0   10640   3084   2632 R   6.7   0.1   0:00.01 top
    1 root      20   0  166088   9428   7096 S   0.0   0.2   0:11.64 systemd
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd

no results for -
cat /dev/pigerr
cat /deb/pigpio

didn't help -
pigs csi 0xf0 mils 2000 csi 0

on this OS only nextcoloud app is running
In side 4 disk bay https://shop.allnetchina.cn/collections/sata-hat/products/quad-sata-hat-case-for-raspberry-pi-4

6.7% seems reasonable.  You can’t turn off alerts unless you restart the daemon with appropriate flags set.

Sorry I didn't get it, can you please clarify?

pigpio is sampling the GPIO in the background 200 thousand times per second.  It takes about 7% of a core to process those samples.  You can sort of stop the processing but in that case you might as well be using a different library.


dbt_ml 'model' materialization does not handle the new "--empty" flag

When I pass in the --empty flag to my dbt run statement, I get an error as follows:
02:16:27    Database Error in model my_model (models/transformations/my_model.sql)
  Input data doesn't contain any rows.

Is there a way for this to handle the --empty flag correctly so downstream models can get their SQL syntax checked without being skipped?

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Request to share selective memories from main component to other components

Hi Pietro,
Might it be possible to allow access to certain memories set directly on the bot's main component from all or some other components? Such is the case when some number of components require the same shared resource like a DB connection. I suppose I could try sub-classing a component with a memory of a DB connection, but I'm not sure the base class' shared memory will translate to its sub-classes.
I think a builtin method that doesn't require sub-classing would be more useful and easier to use anyhow. Perhaps if nothing else a simple way to allow a component to access to the main_component's shared memory. Thoughts?
Thank you,
Brad

Subclassing won't work, because components (and bots) have unique, random IDs assigned during initialization. This was made to prevent conflicts between components, but this also kills your use case as a side effect.
The hacky way to fix this issue is manually editing the Component._component_id right after you create the bot (or in the init).
I'll think about an API for this, but I don't think this will be implemented before a refactor of the shared memory I plan to do in the future (converting it to a drivers-powered thing, in order to provide a standardized API and different storage engines).

Thanks for the info. I believe I've found a solution that will work for me given the backend I plan to use.

I thought about it a bit, and I think I found a good API for this:
class MyComponent(botogram.Component):
    component_name = "test"
    component_isolated = False

That component_isolated attribute specifies if the component's resources should be isolated from the other components (currently only the shared memory), with True as the default (as it is right now). If the argument is set to False, the component shares the same resources as the main component.
I am, as always, open for feedback :)

I like this. I'd assume any non-isolated component could still initialize a memory (not just the bot/main component). That way everything's still handled by the responsible component.
With this, one could also easily setup something like component dependencies. A BackendComponent can initialize a shared memory holding a connection to the backend. Then any number of other components expecting such a connection in the shared memory can simply depend on the BackendComponent. Maybe a check can be made from Bot.use.
Whether this fits in or is non-limiting to your future plans for shared memories, I'm not sure.

I like this. I'd assume any non-isolated component could still initialize a memory (not just the bot/main component). That way everything's still handled by the responsible component.

Yeah, you should be able to initialize the memory from any non-isolated components.

With this, one could also easily setup something like component dependencies. A BackendComponent can initialize a shared memory holding a connection to the backend. Then any number of other components expecting such a connection in the shared memory can simply depend on the BackendComponent. Maybe a check can be made from Bot.use.

Maybe in the future. The problem with this is, there are no way to reference another component:

The name of the component can't be enforced to be unique
Moving around Components doesn't work on Windows (everytime the same issue)
Random UUIDs are random (doh!)

Another possible API, which allows to use multiple shared shared memories:
class MyComponent(botogram.Component):
    component_name = "test"
    component_memory = "backend"

there are no way to reference another component: ...

I see. Then having multiple named shared memories seems like a simple solution that requires only a little more thought when putting dependent components together. Any components that need to work together simply use the same shared memory space.
Should components be able to utilize multiple SharedMemory spaces? I.e.
component_memories = [
    'default',  # memories initialized from the main component (bot)
    'backend'  # memories initialized from a BackendComponent
]

How would memory initialization then work? It seems component should be able to initialize memories to any space.
# Initialize a memory into the "default" space
@bot.init_shared_memory(space="default")
def default_memory(shared)
    shared["example"] = 1

# Within a component, initialize a memory to the "backend" space
self.add_shared_memory_initializer("backend", connection_memory)

When accessing shared memories, perhaps the shared argument is then a dict of named SharedMemory spaces the component subscribed to? Or maybe just an object where the named spaces are attributes...
@bot.command("example")
def example_command(shared):
    num = shared["default"]["example"]  # or
    num = shared.default["example"]

I like the solution of named SharedMemory spaces, with the ability to initialize memories to any space from any component.

Sorry for the delayed response! Had a busy week.
I'm not fully sure about multiple shared memories for every component. The first example breaks every current code, and the second one might break existing methods (it's a dict-like object). I'll think about this later.

Another (perhaps common) use case I've come across where inter-component memory sharing is required is with OAuth type scenarios.
When looking to use various Web APIs which require authorization, access tokens are generally short lived, or can be revoked for a number of reasons. Once you have to renew access tokens, there's no way to provide the new tokens to all components that may need them.
By the way, congrats on releasing botogram to the wider world! Nice work.

FYI, if anyone else is manually setting component_id on components to achieve inter-component memory sharing, note that only one component may initialize (prepare) memories. Namely, the first component to register memory initializers with the used ID.

I'll add a new shared.global_memory as part of a big refactor of the whole shared memory.
I don't think messing around with other components' memories is a good idea, because there is no dependency management and a component should be able to manage its memory without other components playing around with it.

I don't think messing around with other components' memories is a good idea, because there is no dependency management and a component should be able to manage its memory without other components playing around with it.

Sounds reasonable. With the shared.global_memory what will be the default way to handle collisions when components' prepared memories conflict? Looks like a custom driver could be used to customize the behavior, for instance to keep a history, or bag of values tied to their components. Basically whatever makes sense for your needs.

With the shared.global_memory what will be the default way to handle collisions when components' prepared memories conflict?

Prefixing every item with your component's name? If you want to avoid conflicts there is the component memory.

The refactor planned in #54 should also allow you to create custom memories.

bucket = bot.shared.get_bucket("backend")
bucket.memory["a"] = "b"

Would this be enough @patternspandemic?

Sure. Looks to be a global memory with named access to 'buckets' for organization? Works for me, I think as long as any component can initialize memories to any bucket.

Uh, yeah, I forgot to explain what buckets are!
I'm implementing the new shared state (uh, new name) from scratch (with a lot of nice things), and I'm designing it to be easily customizable (you will be able to easily create drivers, for example backed by a database or redis) and better organized.
Buckets are now the groups of shared things (memories or locks): each component/bot combination has its own bucket as before, there will maybe be a global bucket (I'm deciding if it's necessary now) and you will be able to create new buckets as shown in the previous comment.
This means buckets you create will have the exact functionality of the ones you get on your hooks, because they will be the same thing after all. With a bit of hackery you will also be able to access buckets of other components (those buckets are named {uuid_of_bot}:{uuid_of_component}).
Another thing is, you will be able to create shared objects detached to the main bucket.memory of a bucket:
shared.memory[chat.id] = shared.new("dict")
shared.memory[chat.id]["action"] = "I'm finally synchronized!"

I see how a global bucket wouldn't be necessary if any component could ask for a named bucket from shared by name. I like the idea of naming it clearly for it's use.
I assume prepared memories are still part of buckets, and that a component prepares memories to its own bucket. I guess this would mean the shared argument to a memory preparer defaults to the component's bucket. What about preparing memories to a named bucket? Perhaps one just gets the bucket from the same shared argument to the hook?
@prepare_memory
def prepare_some_memories(shared):
    # Prep a memory to this component's bucket
    shared.memory["count"] = 0
    # Request a named bucket, and add a memory to it.
    my_bucket = shared.get_bucket("my_bucket")
    my_bucket.memory["other"] = "Custom bucket memory!"

If one can get a named bucket from the shared argument in any hook, this setup looks quite useful!
I think I need to see more examples of the detached shared.object functionality to grasp its significance. Is it just that one doesn't have to reassign it back to the shared memory? That is of course nice not to have to remember.
Good work Pietro

I assume prepared memories are still part of buckets, and that a component prepares memories to its own bucket.

Yes,  I don't want to take (useful) stuff away :)

I guess this would mean the shared argument to a memory preparer defaults to the component's bucket.

The shared argument you get in hooks is the component bucket, even in this case.

What about preparing memories to a named bucket? Perhaps one just gets the bucket from the same shared argument to the hook?

I need to think more about an API for this. The example you posted won't work most of the times, because preparers are called when they're needed (they must not be considered as an on_start hook), so my_bucket wouldn't be initialized in some cases. If you have any ideas for this let me know!

If one can get a named bucket from the shared argument in any hook, this setup looks quite useful!

You get a named bucket from the bot.shared.get_bucket (or maybe .bucket) method. bot.shared will be the manager of all the buckets (currently it's bot._shared_memory -- you shouldn't use that).

I think I need to see more examples of the detached shared.object functionality to grasp its significance. Is it just that one doesn't have to reassign it back to the shared memory? That is of course nice not to have to remember.

The "I don't want to reassing" was one of the most important reasons I started this rewrite: it's really ugly to type, and it leds to race conditions really easily (you should put a lock around each of this operation). One of the other nice things is, you can create any synchronized objects botogram supports: currently dict and lock, but I want to add list and maybe set (and it's relatively easy to create your own ones -- example of the proxy and driver support for the dict).


Linking functionalities to test GUI

Fixes #35
Changes proposed:
Added some functionalities using lambda function.

@Ankush1529 are you using Git from terminal?There are some serious merge conflicts. Please do the git fetch and pull and then commit your changes again after solving the conflicts.


Holding an InterfaceHandle in a struct

I'd like to have a struct that contains an InterfaceHandle objects so that I can use the bulk_transfer method. I'm having trouble doing this because an InterfaceHandle object contains a reference to a DeviceHandle object, which contains a reference to a Context object. I'd be fine having the Context object be global, but I'd like to have the DeviceHandle and InterfaceHandle objects held in the same struct. But Rust has trouble with structs that contain references to objects within itself.
So what's the best approach for having a struct contain an InterfaceHandle? I can see a few options:

Use Rc and RefCell as is suggested by reem in this post
Carry around the DeviceHandle, and then use claim_interface to get the InterfaceHandle every time I need it.
Use the libusb-sys crate directly, and just carry around the pointers.

Here's an example of what I'm trying to do:
struct MyDevice<'a> {
    dev_handle: libusb::DeviceHandle<'a>,
    usb_interface: libusb::InterfaceHandle<'a>,
}

impl<'a> MyDevice<'a> {
    fn open(usb_ctx: &'a mut libusb::Context) -> Result<Self, libusb::UsbError> {
        let mut devices = try!(usb_ctx.devices());
        let mut dev_ref = devices.iter().next().unwrap();
        let mut dev_handle = try!(dev_ref.open());
        let interface = try!(dev_handle.claim_interface(0));
        Ok(MyDevice { dev_handle: dev_handle, usb_interface: interface })
    }
}

This fails to compile, saying that dev_handle does not live long enough.

@awelkie Thanks for opening this issue. I wasn't aware that Rust's limitations would prevent storing a DeviceHandle and an InterfaceHandle in the same struct at the time that I wrote this library. That's a little disappointing. I thought it would be possible to work around it by having a "managing" struct that tracks claimed interfaces, like this:
struct UsbDevice<'a> {
  device:libusb::DeviceHandle<'a>,
  interfaces: HashMap<u8,libusb::InterfaceHandle<'a>>,
}

impl<'a> UsbDevice<'a> {
  fn interface(&mut self, iface: u8) -> ::libusb::UsbResult<&mut libusb::InterfaceHandle> {
    // hand out references from `self.interfaces`
  }
}

but I run into lifetime issues every time I try to get something working, even when working with Rc, RefCell, and friends.
I think this (among other issues) needs to be overhauled for v0.2. A library shouldn't be this cumbersome to use. The only reason for each struct to hold references to the other structs was to have the Rust compiler enforce order of releasing resources (libusb_release_interface() before libusb_close(), for example). I think that could be solved instead without lifetimes by using libusb's built-in reference counting (libusb_ref_device(), libusb_unref_device(), etc).

Maybe the libusb_ref_device and libusb_unref_device functions could be used to implement ToOwned?

Actually, I think a simpler solution might be to use a 'PhantomData' objects in the structs instead of unused references to the parent struct. For example, the _context field in the DeviceList struct could be a PhantomData objects with a lifetime tied to the parent Context.
This way, objects have the right lifetimes but don't have references that keep them from being in the same struct.

@awelkie I had never seen PhantomData before. Thanks for pointing it out. That's exactly what I was looking for when I wrote this library originally. It would have been a much cleaner way to tell the compiler that the C struct I'm wrapping holds a reference to another struct internally.
Since the libusb types are (internally) equivalent to Arc<Mutex<T>>, I should be able to get rid of some of the lifetimes. I don't know how quick of a turn-around time I can promise, though. I'm going to take this as an opportunity to make all the breaking changes that I've been wanting to make. This was one of my first Rust projects, so there are a few of them. :) I'll start working on it this week.

@awelkie When I dug into it, I found that libusb_device is the only struct that's internally reference counted, so I took a different approach. I moved the InterfaceHandle methods into DeviceHandle and made sure that the Drop impl for DeviceHandle releases all claimed interfaces. I think this makes sense, because the interrupt_transfer() and bulk_transfer() methods on InterfaceHandle don't actually use the interface's number in the libusb function.
You can try it out now on the v0.2-dev branch. Please let me know if you have any more issues. I'll be working the rest of the week on making further changes for v0.2 before I merge that branch to master and release to crates.io.
As an aside, I also replaced all of the references with PhantomData. Thanks for the suggestion.

Awesome, thanks for making these changes. I'm traveling now, so I won't be
able to check out the changes until next week. But I will give it a shot
once I'm back.
On Oct 13, 2015 4:34 PM, "David Cuddeback"<EMAIL_ADDRESS>wrote:

@awelkie https://github.com/awelkie When I dug into it, I found that
libusb_device is the only struct that's internally reference counted, so
I took a different approach. I moved the InterfaceHandle methods into
DeviceHandle and made sure that the Drop impl for DeviceHandle releases
all claimed interfaces. I think this makes sense, because the
interrupt_transfer() and bulk_transfer() methods on InterfaceHandle don't
actually use the interface's number in the libusb function.
You can try it out now on the v0.2-dev branch. Please let me know if you
have any more issues. I'll be working the rest of the week on making
further changes for v0.2 before I merge that branch to master and release
to crates.io.
As an aside, I also replaced all of the references with PhantomData.
Thanks for the suggestion.
—
Reply to this email directly or view it on GitHub
https://github.com/dcuddeback/libusb-rs/issues/3#issuecomment-147752506.

So this fixed the issue with holding an 'InterfaceHandle' and a 'DeviceHandle' in the same struct. But I'm still running into the same issue with holding a 'Context' and 'DeviceHandle' in the same struct.
What do you think about having the Context::devices' method consume the Contextobject, and then all structs that currently hold aPhantomData<&Context>would hold anArcinstead? This way users don't need to worry about holding aContext` object. It comes with the cost of reference counting, but libusb already uses reference counting internally so I think that's fine.

What's your use case for holding a Context and DeviceHandle in the same struct? I think most applications would open a Context at the top of main() and keep it open for the duration of the program, using references everywhere it's needed, but I could be overlooking some limitation.

The issue I was having was that I needed to initialize the context and device within a C callback. So I was hoping to bundle the context and device together and return it from the callback.
But I solved the issue by using initializing the context in thread local storage. So I'm all good as far as this issue is concerned. Thanks for the changes!

I'm having some trouble with this myself, I'm working on a library to deal with Steam Controller and I'd like to store the Context and DeviceHandle in the same struct, or at the very least have a Manager that owns the Context and is able to open multiple controllers at the same time.
This is a problem because Context::devices() takes the Context as &mut, so I can't have more than one controller open at the same time.
Does Context::devices() really need to take the context mutably? Or am I doing something horribly wrong?

See #5, where I fixed that.

I'm attempting something similar to what @meh is describing. I'd like to create a library that uses libusb such that the user should have no notion of libusb or its Context. However, doing this naively with a MyLib struct that holds both the Context and a specific DeviceHandle is essentially impossible, since the context lifetime will never outlive the device.
The only real workaround is as @dcuddeback mentioned and that's to create the Context in the user application's main() but then the user is dealing with what I would like to be internally handled by my library.
Is there any better way to do this?

What I did in my program was to move the Context into a Box and leak that box, giving me a &'static Context. I put that into a newtype struct, which implements a Drop method rebuilding the Box and dropping it correctly.

What I did in my program was to move the Context into a Box and leak that box, giving me a &'static Context. I put that into a newtype struct, which implements a Drop method rebuilding the Box and dropping it correctly.

@oberien Could you share some code snippet of how you did that?

This is from a project I did some years ago:
https://github.com/oberien/logitech-g910-rs/blob/638f9635e81620bd66f4e04073b3f87eaf9657bc/src/utils.rs#L20-L79

@oberien That was very helpful, thanks! A bit sad that that's how we are supposed to use this crate, there should really be an easier way.
@dcuddeback, try build an example (in ./examples) where you are a library dev and you want to return a "client" struct to interact with a device. Meaning that the handle and context are not setup in main, but in the constructor method of the library, like SomeDeviceClient::new(). It will help you to understand the use case that @oberien had to fix with the unsafe blocks.

https://github.com/a1ien/rusb does a pretty good job of solving this issue


D3plus 2.0: Legend "direction: column' returns error

Hello!
I've tried changing my piechart's legend from a row into a column using the "direction" option.
Turns out, using "direction: column" doesn't actually seem to work. It hides the labels and doesn't actually put them in a row.
Direction row:

Direction column:

@brannie19 would you mind sharing your code? Based on your screenshot, my guess is that this is an issue with your label configuration. When I need to use a vertical legend, I generally set the following config:
.config({
  legendConfig: {
    direction: "column"
  },
  legendPosition: "right"
})


Add a basic ContentLocale method to controller

Issue https://github.com/silverstripe/silverstripe-framework/issues/10080
Add a basic ContentLocale method to controller that doesn't check a dataRecord.

@TheBnl I've moved the issue to the login-forms module and I'll close this issue here.
Can you please create a new PR there with the method added to the EnablerExtension as @emteknetnz suggests? Thanks!

Moved issue — https://github.com/silverstripe/silverstripe-login-forms/issues/100


python bin/replay.py -c bin/replay.yml   File "bin/replay.py", line 55     print (line.replace(original_time, new_time),end ='') ^ SyntaxError: invalid syntax

Hi,
When I trying to run replay.py I am getting below error that syntax is invalid.
python bin/replay.py -c bin/replay.yml
File "bin/replay.py", line 55
print (line.replace(original_time, new_time),end ='')
^
SyntaxError: invalid syntax
Please help me to resolve the issue.
Thanks.

hey I believe this was fixed @anilreddydonthireddy, thank you for raising it!


Update dependencies

Sorry for the delay in getting to these reviews. Everything looks good, I'm just trying to figure out how to get github actions to run on PRs without having them run automatically.

No problem! If you want, I could have a look, too. I am using your project in https://github.com/Kijewski/pyextrasafe, and you could mostly just copy its ci.yml, just exclude the python specific rules (python-black + python-make).

I updated some settings and enabled CI on PR. Could you test that it works by changing the comment above ctx.add_arch in this commit to something like
        // add_arch returns whether the arch has already been added.
        // Since this is a new context, it can be ignored.
        let _: bool = ctx.add_arch(ScmpArch::Native)?;

Thanks!

I rebased my PRs on the new HEAD. Because I'm a new contributor to this project, you still need to push a button to run the CI. Once a commit of  a user is accepted, all their subsequent workflow runs should start automatically.

Whoops, the new contributors one was one of the settings I changed. It's running now.

Thanks again! I'll check out pyextrasafe soon!

Thank you very much for your project and merging my PRs!
I don't know if pyextrasafe will be interesting for anyone but me.
I use extrasafe for all my rust projects: Read the configuration, open a TCP or Unix socket (development vs production), start up tokio, and then lock down everything. I know my program, won't need to open another file, another socket, etc.
In python you have to assume that the program reads files at random points, and starts threads randomly. But at least I can be sure that my program won't exfiltrate any data, because it won't open a file for writing or open a socket.


created a config database for travis

it still fails on .11 though. mocha --harmony test

https://travis-ci.org/adin234/mysql/jobs/48525392

@cjzamora can you validate and soft merge (if necessary) aldrin's pull request ? Our travis tests were already passing ...

@adin234 Might have to buy you lunch.

@cblanquera Yea sure, gonna validate if the test are good. Then merge it after.

@adin234 @cblanquera Travis test are already passing, the problem is in harmony flag, which in newer node version must be --harmony-proxies instead of --harmony, also i remove the password for the test, default root travis account does not have password. Please refer to this,
24ea12ebb90b2e03bfb08f86047a045f39809abb
637a14b18f75b778efba6507e04683b6faa898d4
654e2e063edbbbfb7cf6eaa8ab9da2b8cbeb967a

yes, your test failures before was only because of the wrong password on your tests files. thats why i suggested on creating a database.js file which contains your database configurations for you to just use
var database = require(__dirname + '/database')();

instead of

var database = mysql('<IP_ADDRESS>', 3306, 'edenjs_test', 'root');
on every test you create :).
good to know the builds are passing now :)


Add option to not re-render list rows when scrolling

Hi,
I've been digging into performance of my react-virtualized components lately and am curious about the rendering behavior of List.
It seems that List re-renders every visible row (as well as overscan, presumably) every time it scrolls. This is really hurting my performance because my rows are fairly heavyweight and re-rendering them is non-trivial.
I understand that this is intentional because it allows for the customization of rows via the isScrolling parameter, as in the example code for List: https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md. The idea being that you render a simplified row while scrolling and the heavyweight row once stopped. This is ok, but I really don't like that visual effect for my use case. Instead, I propose that there should be a way to tell List not to continually re-render visible rows when scrolling.
I made this quick pen to demonstrate how often the rows are being rendered. Of course the performance is fine in this simple example, but with more complex rows, scrolling performance starts to suffer.
https://codepen.io/gpascale/pen/rJoJgO

That CodePen is a great example.
I've thought a little about maybe changing v10 to let you opt-in to the isScrolling param. Maybe we could do this in a backwards compatible way though (by letting you opt-out instead). If there was a prop that told List that rowRenderer didn't care about that param, then it could skip the extra render when scrolling stopped.
Would you be interested in putting together a PR for this (including docs+tests)?

@bvaughn I'd love to take this issue :)

It's all yours

I met exactly the same issue in Grid as in List. Can you please add this enhancement into Grid as well?  React-infinite, another light weight virtualized library doing that, however they don't support other good functionalities that react-virtualized does.
thank you and please let us know when it is implemented.

was just tracking down some perf issues myself which led me here, thank you for working on this @wuweiweiwu

@wuweiweiwu any progress on this?

@bfang711 @chitezh @th3fallen Been busy with #1053 but I'll get a fix out for this as soon as I can :)

@wuweiweiwu any update on this?

@emflores havent had time to work on it. I'll get it in as a patch to 9.19.x release

@wuweiweiwu it looks like you added it to just grid, how about List?

@chitezh List is actually just a 1 column Grid. So I'll create a new issue to track that change! Thanks for letting me know!

@wuweiweiwu Did this ever get added for List?


FIX: Prevent QHull message stream being closed twice

Reference issue
This makes part of the current effort to remove the GIL from Python. After https://github.com/numpy/numpy/pull/26348 and this PR, all the test suite passes successfully when ran locally.
What does this implement/fix?
This PR prevents releasing the MessageStream object in QHull twice. This may occur because the deallocation logic is duplicated both in the close and the __dealloc__ methods (there's a note mentioning that this is required to support PyPy). Before, a call to close followed by __dealloc__ would segfault, since close would have closed the MessageStream before __dealloc__ would have attempted to close it, thus trying to free a null pointer.
Additional information
This behaviour occurs independent of locking, since the closing attempt would have occurred without checking if self._qh != NULL

Thanks for bringing these points up @rgommers, now that you mentioned it, the MessageStream object pointer is being set to NULL at some point, which I found to be correlated to not be NULL when _qh is still valid.
I'll add a self._messages != NULL check then.


EventTypes.page race condition

Hello,
First of all, I want to thank you for this library, it has simplified the way we work with segment events a lot at BreatheLife!
We recently started getting an issue with a special case we have, and we were wondering if this may be caused by a bug.
We have two domains (let's call them A and B).
On A, there is a form that users can fill out, and on submit, it sends a request to a cloud function, which returns a url from domain B to redirect to that includes UTM tags in the query params.
Once getting to domain B, a redux action gets dispatched (call it LOAD_APPLICATION), and this action uses redux-thunk as a middleware, which sends an api call, and on that api call's success, we use react-redux-router to redirect the user to another url (in domain B still), which doesn't include the query params.
At first, we had a track event setup for LOAD_APPLICATION, but we started having issues with a network race condition. If the internet connection was slow enough, the segment track event occurred before the api call returned, correctly parsing the UTM tags in the url. If the internet connection was fast, the segment track event occurred after the api call returned, and since the new url did not contain query params, the event did not have utm tags to parse.
We first tried to pass the query params onto the next url, but this caused a bunch of bugs on our side.
We then tried to replace that track event with a EventTypes.page event (we had previously disabled all page events from react-redux-router). At that point, we were optimistic that the page event would occur before the thunk api call was triggered, but unfortunately we seemed to have a similar race condition issue, with the order of the calls depending on the internet speed.
This is what happens when it works:

This is what happens when it doesn't work:

What I don't understand is how this can be the case, since the @@router/LOCATION_CHANGE redux action consistently happens before the LOAD_APPLICATION action (which is the open with the thunk that sends the api call)

Anyone got ideas on what could be happening here?
Thank you for the help!

having pretty similar issue, need to make sure that page event is sent before track (actions are dispatched properly), but sometimes track comes to segment first which causes some issues with one of our destinations


Release 1.6.4 patch

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Fixes #Issue]
[Optional Deprecated:]

@brian-avery: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.6
d665726028b781d8f8c7c65261bc77476ca51d69
link
/test test-tsan_envoy_release-1.6

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test test-tsan_envoy_release-1.6


fix: --https get ignored in preview

Description
fix #4169
--https is invalid in vite preview.
Additional context
options.https is not passed into resolveConfig
https://github.com/vitejs/vite/blob/decc7d885d108a3e96ffc82abcb4057f54aa6db5/packages/vite/src/node/cli.ts#L206-L215
but subsequent execution depends on config.server.https
https://github.com/vitejs/vite/blob/decc7d885d108a3e96ffc82abcb4057f54aa6db5/packages/vite/src/node/preview.ts#L56
https://github.com/vitejs/vite/blob/decc7d885d108a3e96ffc82abcb4057f54aa6db5/packages/vite/src/node/server/http.ts#L32-L35

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

I think this would be a feature request 🤔
But ... do we even want to support that or is it by design?
preview should not serve content for production but just to test if the build/dist works

I think this would be a feature request 🤔
But ... do we even want to support that or is it by design?
preview should not serve content for production but just to test if the build/dist works

The main solution of this pr is that the --https config option doesn't take effect when use preview. I think using https in preview is may not a feature according to the previous code.
https://github.com/vitejs/vite/blob/decc7d885d108a3e96ffc82abcb4057f54aa6db5/packages/vite/src/node/cli.ts#L191

@patak-js @OneNail thanks, but this doesn't solve #4169 entirely.
Yes it solves  --https  parameter, but root is still not working with preview. I can't reopen the original card, since commenting here.
Thanks

@patak-js @OneNail thanks, but this doesn't solve #4169 entirely.
Yes it solves --https parameter, but root is still not working with preview. I can't reopen the original card, since commenting here.
Thanks

The vite preview root you use, is the root an normal directory or a directory of vite project?

Normally preview uses dist folder, but I also have storybook-dist and sometimes want to run from that folder. Why to install another static server, when vite can do that.?

Normally preview uses dist folder, but I also have storybook-dist and sometimes want to run from that folder. Why to install another static server, when vite can do that.?

According to the current design, root refers to your vite project, not the dist directory generated by build.

@OneNail if root setting doesn't work, then why is it there? If conents of my dist folder was in xyzdist and I would run vite preview xyzdist it still would not work. I might be trying to use if for different purpose, but the feature doesn't work to start with

I also have the exact use case as @husayt. I am using lib mode of vite to build react component library.
I use vite builder for storybook - storybook-builder-vite.
And there isn't much to preview the contents of dist directory as it is a library. Ability to preview stroybook-static folder after building it would be super helpful.

@OneNail if root setting doesn't work, then why is it there? If contents of my dist folder was in xyzdist and I would run vite preview xyzdist it still would not work. I might be trying to use if for different purpose, but the feature doesn't work to start with

The root setting can work. If the name of the vite project is xyzdist, you can preview by executing vite preview xyzdist outside this directory.

I also have the exact use case as @husayt. I am using lib mode of vite to build react component library.
I use vite builder for storybook - storybook-builder-vite.
And there isn't much to preview the contents of dist directory as it is a library. Ability to preview stroybook-static folder after building it would be super helpful.

You can consider opening a pr or issue for this feature.


Several key rules/patterns added to address missing auth and auth pat…

Several key rules/patterns added to address missing auth and auth patterns for SAML, Oauth, Basic Auth, a missing Microsoft login URL, active directory, LDAP, NTML, and more.  Also corrected few patterns with regex type with '.' but no literal markers.  Some work done on infra file.

Moving forward as Mike is busy and request was for FYI primarily.


Unable to start PaaS in rootless docker [with proposed solution]

I believe that this is due to my having rootless docker, and not being able to make the server as root:
Error response from daemon: driver failed programming external connectivity on endpoint server_frontend_1 (8097ffb8ff258274cb621ad256dc8f6930d1c09f047d848cf53456fdf42dc265): Error starting userland proxy: error while calling PortManager.AddPort(): reply.Error: map[desc:bad request: add_hostfwd: slirp_add_hostfwd failed]

It looks to me like the frontend server would like to run on port 80.
So I changed the ports to 8010:80, so I wouldn't be taking over the host machine's port 80 and now it starts.
I'm afraid I don't know docker compose syntax well enough to make an MR myself, but I think what  would be best would be to have the docker compose file check to see if it's run as root and if not, open a different port, possibly one specified to the makefile like:
make WEBPORT=8010

or something along those lines.

Aye, even with root, it would fail. Port clashes can be frustrating :P. I think we should be able to have this included in the ENV stuff -- already including lots there: https://github.com/AI-Planning/planning-as-a-service/blob/main/server/.env.example

Should be fixed with #62


Job start time control

It should be possible to specify time when job should begin it's execution.
When selecting jos from the queue to execute, select only jobs with startTime == null or startTime <= now.
When creating a job, check that startTime is either not set or matches queue's schedule.

Not implemented in python client yet.