Issue #187: Add support for uploading files to remote Selenium instance

Here's a proposed fix for #187. This works both on local and remote instances. I tested using a local installation of Selenium and a Docker instance.

This still needs some work. There's a PHP error, but I also see that it now fails on a local instance of PhantomJS when running in webdriver mode.

This is ready for a review. The tests are failing but this is due to the known problem https://github.com/minkphp/MinkSelenium2Driver/issues/245

Addressed the remarks. This is ready for another look :)

Except moving of @see tag the code looks good to me.

Thanks for the quick reviews! I have addressed the remarks.

have you actually checked, that new tests will fail without new library code changes?
when test suite is running locally on developer machine all will work properly as before, but of course no remote upload tests?

I don't fully understand the question.
I need this fix because we are running our tests on continuousphp which recently switched to remote Selenium instances and our uploads were failing.
I have tested on my dev machine with local and remote instances of Selenium. It's now also working on continuousphp which it wasn't before.

Oh you probably mean to run the tests on Travis using a remote Selenium instance, but without the fix.
I made a branch containing only the test, but without the fix. Here is the relevant test result: https://travis-ci.org/pfrenssen/MinkSelenium2Driver/jobs/171671291
You can see that in the response the text 1 uploaded file is missing after some_file.txt. This proves that without the fix the file is not uploaded to the remote instance.
Here is the same test result with the fix: https://travis-ci.org/pfrenssen/MinkSelenium2Driver/jobs/171596712
In this case you can see that the text 1 uploaded file is present in the response, so the file is correctly uploaded to the remote instance.

That's exactly what I've meant. Good.

Merging, thanks @pfrenssen .

This was such a pain for so long, THANK YOU!

@stof , thanks for reviewing, but PR is already merged. All the fixes should go as separate PR I guess.

yeah, I received a notification about this PR because of the comment, and I reviewed it while noticing it was merged only at the end.
Doing a new PR for the fixes is indeed the way to go (if it is not done at the time I work on releasing, I will do it myself, as I don't want to release with the method exposed publicly and so covered by BC)

Thanks for the review. I will open a followup to address the remarks. Will link it here when I make the PR.

Is there any roadmap for the next release yet? This feature by itself would deserve a release.

+1. Is there a planned release for this feature?

+1. Is there a planned release for this feature?

+1 for release! We spend days in agony trying to fix this problem while testing CircleCI 2.0 with docker images (which can't share volumes). When I finally found this yesterday I was thrilled. One note: I had to debug it to get it to work because my docker php didn't have zip support and because the exception is caught and the 'local' file is then used, it seemed like this didn't fix the problem. So if anyone else is checking this fix and it doesn't seem to work, check your zip extension ;)

I made a separate issue that suggests to make a new release, the comments here are probably not going to be seen since this is already closed: #269


Update docs for refactor: remove the SQL execution interfaces in Datanode

A document change request is generated from
https://github.com/GreptimeTeam/greptimedb/pull/1135

no mysql configs in https://docs.greptime.com/reference/configuration#datanode-in-distributed-mode


[#3489] improvement(hive-catalog):  Add user authentication e2e test for Hive catalog

What changes were proposed in this pull request?
Add e2e tests to test end-to-end user authentication.
Why are the changes needed?
Verify that user authentication works
Fix: #3489
Does this PR introduce any user-facing change?
N/A
How was this patch tested?
Test locally.

Ping me when it is ready for review.

Ping me when it is ready for review.

Got it.

Ping me when it is ready for review.

It's now ready for review.

@qqqttt123
Could you also review it for me?


Builds page is too wide

Right now it goes way off my laptop's screen and has come up a few times (see #68), a couple of solutions we came up with internally:

[ ] freeze PR number column so you don't have to scroll around to get it
[ ] add option to hide columns where all builds are both present + passed

Fixed with #83


Add subcommand to debug SENZING_DATABASE_URL

Pull requests

https://github.com/Senzing/docker-init-container/pull/115


Log Privacy Badger branch and commit hash

Branch for human readability and hash for exactness. Logging the hash will make it possible to know precisely which Privacy Badger code was exercised by the scan.

Let's also log the browser version.

Just to clarify -- you think this should be logged in the statements that print out on every run, or just in the --log-stdout output if that option is passed?

--log-stdout doesn't change what is logged, just how it is logged.

Ah, right thank you!


Added JumpListItem to BootStrapper.AdditionalKinds

Added support for Launching via JumpListItem (API coming with TH2 SDK on November 30)

What you mean jump list item?

This:

Documentation available here: https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.startscreen.jumplistitem.aspx
When launching the app by clicking them it's like from a secondary tile, but tile id is "App"

I've also added an overload of NavigationServiceFactory that allows the dev to specify the frame to be used to create NavigationService and FrameFacade.
In addition I've added a virtual CreateRootFrame method that allows the dev to create a specific frame for default NavigationService.
These changes are to solve this issue: https://github.com/Windows-XAML/Template10/issues/346
If you want I can create a sample too!

I am not sure why this is necessary? Why not treat it like Primary?

For anyone reading this, this is new to 10586


🐛 BUG: [pages + windows] Could not automatically determine proxy port

What version of Wrangler are you using?
2.0.23
What operating system are you using?
Windows
Describe the Bug
This specifically occurs when the directory which wrangler is being run in is in a different disk than the directory that netstat is located.
For example, in this case, netstat is located on my C: drive, whereas my code is located on my F: drive. It incorrectly searches the F drive for the file, which does not exist. Creating a symlink or copying the executable into the correct path does resolve this for me, however that's obviously not a real solution.
🚧 'wrangler pages <command>' is a beta command. Please report any issues to https://github.com/cloudflare/wrangler2/issues/new/choose
Running npm run dev...
Sleeping 5 seconds to allow proxy process to start before attempting to automatically determine port...
To skip, specify the proxy port with --proxy.
[proxy]:
><EMAIL_ADDRESS>dev
> svelte-kit dev --host

No Instance(s) Available.
The system cannot find the path specified.
X [ERROR] Error scanning for ports of process with PID 5252: Error: Command failed: \windows\system32\netstat.exe -nao

  The system cannot find the path specified

Found this which may be of use? https://github.com/balena-io-modules/drivelist, as it includes which is the system drive (where netstat is located)
I imagine this issue may actually be present across all operating systems, but have no way of testing currently.

Ok, so the issue for this lies here:
https://github.com/cloudflare/wrangler2/blob/d4fbd0be5f5801c331a76709cb375a9386117361/packages/wrangler/src/pages/dev.tsx#L322
Looks like Wrangler already has logic to see if a port is in use and wait for it to be available/error. We may be best just using this logic:
https://github.com/cloudflare/wrangler2/blob/d4fbd0be5f5801c331a76709cb375a9386117361/packages/wrangler/src/proxy.ts#L420
Looks like this would have correctly errored for the port in use here.

The purpose of this is to automatically determine which port to proxy, not to check if a port has been proxied


Make git hooks actually fail and cancel commits + remove unnecessary hook

Why are we here? Just to suffer?

Codecov Report

Merging #54 (86b3855) into master (3bdd46c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #54   +/-   ##
=========================================
  Coverage     73.43%   73.43%
  Complexity      437      437
=========================================
  Files            72       72
  Lines          1280     1280
  Branches        132      132
=========================================
  Hits            940      940
  Misses          308      308
  Partials         32       32

Continue to review full report at Codecov.

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

this also makes it such that ctrl-c actually kills everything (e.g. while git commit is running the hooks) instead of letting things continue running in the bg


Fix the duplicate dependency for graphql

Move the graphql to devDependencies
Now graphql-subscriptions will not install an extra graphql when graphql release a new version
graphql-subscriptions will resolve to what ever version the user is using.

@citium Thanks a lot for the PR! I think we took care of this in #26 by making it a peerDependency.


AWX breakage on test-packet-ubuntu1604-x64-2 in remove the old ant action

https://ansible.adoptopenjdk.net/#/jobs/88515/#followAnchor
TASK [ant : Remove the older Ant package] **************************************
13:29:21
fatal: [test-packet-ubuntu1604-x64-2]: FAILED! => {"changed": false, "failed": true, "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this  module"}

Not sure that message is especially helpful but here's what I get when I try and remove it manually:
root@test-packet-ubuntu1604-x64-2:~# dpkg -r ant
dpkg: dependency problems prevent removal of ant:
 ant-contrib depends on ant.
 ant-optional depends on ant (= 1.9.6-1ubuntu1.1).

dpkg: error processing package ant (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 ant
root@test-packet-ubuntu1604-x64-2:~#

SInce we have a separate Ant-contrib role to install into /usr/local/ I suspect these can be removed. Will submit a PR to do this.

Oh hang on - the role appears to be trying to remove via yum not apt even on Ubuntu which probably explains the seemingly unclear message


Build mobile teacher select classes view

Students
Input assignment (new test, etc.)
Manage Lessons ->
Previous lessons -> feedback / response data
Add new lesson -> create custom collector

Requires connection to db and sockets


Go comments not being cleaned up correctly

Issue
When running the tool with cleanup_comments = true against a go codebase I'm seeing some inconsistent behaviour around comment cleanup.
Steps to reproduce
I've added test cases demonstrating this issue in this pr https://github.com/uber/piranha/pull/375
Observations:

Multiline comments are cleaned up
Single line comments are not cleaned up
Single line comments are cleaned up provided the next node above is also a comment

The test cases provided in the pr are for cleaning up if blocks however I've noticed the same behaviour when cleaning up constants in my own codebase e.g.
Before
const (
    // comment
    myFlag = "flag"

   // stale comment
   myStaleFlag = "stale flag"
)

After
const (
    // comment
    myFlag = "flag"

   // stale comment
)

Expected
const (
    // comment
    myFlag = "flag"
)

The constants example above exhibits the same behaviour around only cleaning up comments if they're (a) multiline or (b) have another comment node directly above them.
Any context on if this is a known issue in other languages or seems go specific etc would be great. It's the one piece left stopping autogenerated pr's we have being able to be directly merged.

Hey! Thanks a lot for reporting this.
the go cleanup mechanism we have is pretty much experimental :| We have not battle tested it yet (by running it on our internal codebase) But thanks for doing this :) I will look into it. Like our java/kotlin cleanup is kinda robust.
cc @dvmarcilio

@conormurray95 can you check this branch go_comment_bug https://github.com/uber/piranha/pull/392 on your go codebase, and let me know if it works as expected?

Hey @ketkarameya apologies I just got a chance to look back at this, that pr looks good and solves the cases I'd spotted. Thanks!


Make argument names more idiomatic

In Rust, a leading underscore in a variable name/argument name means that the variable is unused, which isn't the case here. This PR impacts the generated documentation / readability of the code, but otherwise impact behavior.
It would also be more idiomatic to avoid allocating Strings instead these functions in a couple places either by avoiding mutation altogether (there's no need to physically remove the padding characters) or by having functions take Strings instead of &str's. However, such changes would be more invasive so I held off doing them for now

Thanks for your contribution!


Add code splitting for Renderers

It seems that all the renderers are loaded all at once. I expect the renderer to be lazy to load, just a little try.
const H = new Highway.Core({
  renderers: {
    home: () => import('./Home'),
    about: () => import('./About'),
    contact: () => import('./Contact')
  },
  transitions: {}
});

Example: https://github.com/zhw2590582/I-am-sleepy
Preview: https://sleepy.im/index.html

@all-contributors please add @zhw2590582 for code


Add custom icon for license.md files

This PR adds the license custom file icon to files named license.md and licence.md as GitHub also accepts these filenames. There was no open issue mentioning this improvement so I'm not sure whether this will be merged or not.

Thanks @ImRodry for the PR. But please see the file header:
"If you want to provide a fix or improvement, please create a pull request against the jesseweed/seti-ui repository.",
"Once accepted there, we are happy to receive an update request."

@aeschli my apologies for not having read that part of the file. I have submitted a PR to that repo which has been merged so can you reopen this pull request and merge it? https://github.com/jesseweed/seti-ui/commit/2b078f89a535a9f6dda47817bac01f02a4350078


Add the Promise pattern to the docs

This pattern here: https://github.com/simonw/shot-scraper-demo/blob/e72b6b5960b9b9cd184c3c569fa04a0edcd63a59/shots.yml#L12-L70
It's a way to run custom JavaScript code and then wait a few seconds before taking the shot - to allow things like fading animations to finish running.
It's very useful but non obvious, so it should go in the documentation.

new Promise(resolve => {
  // Your code goes here
  // ...
  setTimeout(() => {
    // when you call resolve() the shot will be taken
    resolve();
  }, 1000);
});


(un) registration

This is very interesting work. One thing I was thinking about was dynamic registration / unregistration of event handlers. How do you feel about this? Would you take a pull request for unregistration?

In your usercase, do you want to re-register  (replace the handler for an existing registration),  or genuinely remove a registration completely.
BTW, there are a couple of other variations on registration too.  Like, for example, having multiple handlers registered for the one event, perhaps with some ordering amoung them (Flux has this notion of certain handlers waiting for other handlers to run, etc).  I've resisted them all so far because I didn't have a usecase which is why I'm curious about yours.

This is just me thinking aloud, but I'm curious what you think about this idea. It looks like Clojure, but consider it pseudo-code—I've not even run it let alone tested it. You won't offend me if you think it sucks... :)
(def ^:private event-chan (chan))
;; core.async pub/sub (publication part)
(def ^:private event-publisher (pub event-chan :event))

(defn register
  "Subscribes to certain events"
  ([topic handler-fn]
   (let [sub-ch (chan)]
     ;; core.async pub/sub (subscription part)
     (sub event-publisher topic sub-ch)
     (go-loop []
       (let [event-data (:data (<! sub-ch))]
         (handler-fn app-db event-data)
         recur))
     sub-ch)
   ([topic middleware handler-fn]
    (let  [mware (if (vector? middleware)
                   (apply comp middleware)   ;; compose the vector of middleware
                   middleware)
           hander-fn (mware handler-fn)]
      (register topic hander-fn))))

  (defn unregister
  "Unsubscribes from events"
	[topic ch]
	(unsub event-publisher topic ch))

  (defn dispatch
  "reagent components use this function to send events.
  Usage example:
  (dispatch [:delete-item 42])"
  [[topic data]]
  ;; also eliminates need for nil? check
  (when topic
  	(put! event-chan {:event topic :data data})))
  nil)

;;;; usage

(defn foobar
  "A pure event handler"
  [app-data event-data]
  ;; do something useful
  )

(def get-data-sub (register :get-data [pure] foobar)

(unregister :get-data get-data-sub)

;; if you never need unregister, just use as normal...
(register :get-data (fn [app-db event-data] ...)

For the sake of clarity, I've omitted the flush-dom metadata handling. What I like about this idea is that it uses core.async's native pub/sub capabilities which help us avoid reinventing the pub/sub mechanism and gives us multiple topic subscribers and unsubscription with very little effort.
We also collapse the router loop handle function and eliminate a nil check in dispatch since we're always putting a data structure on the channel. It's possible (likely?) I've overlooked something, but I did want to share my thoughts.
Cheers!

It's been fun watching the commits stream in over the last couple of days. :) In that time I've whipped up a working example of the idea sketched out above here: https://bitbucket.org/pointslope/restated/overview
I purposely changed some names so as not to really distract from the ideas. Cheers...

Hi Christian,  I've had a quick look, but I'll need to go back and read further.   Like macros. And, if I do have to use core.async, then I want it hidden as much as possible. In re-frame, it is indeed used, but a re-frame user is oblivious. So my inclination is towards less core.async. It looks to me that yours might be in the opposite direction.
one of my goals was to ONLY ever dispatch/emit pure data.  I notice that you are putting functions and channels on the wire. The pure-data-only rule, leads to emergent niceness like this: https://github.com/Day8/re-frame#logging-and-debugging
I don't have a usecase where I need the "unssubscribe" which makes this hard for me to embrace this.

When I was working on re-frame, I was aware that the dispatch/emit area would be impossible to get right for everyone. Small changes in requirements trigger quite different designs. I did wonder how I should make the dispatch/routing more pluggable, so that different approaches could be used within the framework.
So rather than adopting any alternative approaches which might offer feature A or B, I'd prefer a solution that allowed different approaches to be plugged in.  But I'm not likely to cycle back around to this until I get v0.3.0 pushed, which might be another week or so.
Small point, but I much prefer the name emit to dispatch.  There are too many dispatches in this world -- there's one in core.async and each time it shows up in a stacktrace, it confuses me. There is also dispatches in Flux which means something slightly different, etc.  I really want to use emit now. Look what breakage you have wrought!!!

Thanks for your considerate reply; you've given me much to think about. re-frame is very well thought through and your README and documentation are excellently written. I look forward to watching the evolution of your project, and I thank you for taking the time to review my ideas.
My best,
Christian

I've quickly put together this page of information which is related:
https://github.com/Day8/re-frame/wiki/Alternative-dispatch%2C-routing-%26-handling
It certainly isn't a solution to the un-registration need you pose, but a way of thinking about re-frame as a base.
I'll probably add to that document over time.


Azure ArcBox CSI Driver not installed

Disclaimer: The intent of this "Bug report" templates is to address issues related to the Azure Arc Jumpstart scenarios, ArcBox and all other project ares. The Azure Arc Jumpstart team does not handle Azure Arc core product issues, bugs and feature requests and will try to assist on a best effort basis. For a core product issue or feature request/feedback, please create an official Azure support ticket or general feedback request

Scenario which you are working on
Deployment of Azure ArcBox Full flavor
Describe the bug
I tried to deploy twice the ArcBox full flavor without any luck. First time I thought I was doing something wrong. It was stuck during the data controller deployment so I deleted everything but the second try did the same.
I troubleshooted a bit more and saw the pods were in pending state, because the PVC cannot be done. The PVC was waiting the external provisionner to occur but there was no azure csi pods created. I installed them using Helm and it unblocked everything and I'm good to go.
Maybe you should try to redeploy an ArcBox to see if you have the same issue. I guess something changed in AKS version, engine, CLI or whatever.
To Reproduce
Steps to reproduce the behavior:

Deploy ArcBox full flavor
Connect to the VM once it's deployed
Wait for the remaining tasks and see it's stuck in data controller deployment

Expected behavior
ArcBox deployed and fully functional
Screenshots
Sorry I don't have any but you can trust me haha. kubectl get pods -n arc shows bootstrap running then 2 pods pending and no azure csi pods in kube-system namespace
Additional context
Add any other context about the problem here.

Thank you @jbpaux, we are aware of the issue and are about to stage a PR to fix this. This is something we are working towards streamlining with the Cluster API team.


Load balancer ARP responder broken since 21.06

The LXD team use OVN load balancers for its Network forward functionality (https://linuxcontainers.org/lxd/docs/master/howto/network_forwards/).
We have had a user report (since confirmed) from @lepokle that recent versions of OVN have broken the ARP responder functionality of OVN load balancers.
@lepokle has identified that it appears to broken since 21.06 specifically the commit https://github.com/ovn-org/ovn/commit/ea6ee901ff9107a084bc830a8a38c4e0bd9f75f7
We no longer see the OVN logical router responding to ARP requests for the load balancer listen IP on the chassis's gateway port.
If packets are manually routed to the OVN logical router's gateway port IP then the load balancer does still work though, so its just the ARP responder that has been broken.
On a pre-21.06 OVN version we see the following logical flows configured with a load balancer:
# ovn-nbctl --version
ovn-nbctl 21.03.0
Open vSwitch Library 2.15.90
DB Schema 5.31.0

# ovn-sbctl list logical_flow | grep bbb.76.20.84
match               : "ct.est && ip && ip4.dst == bbb.76.20.84 && is_chassis_resident(\"cr-lxd-net11-lr-lrp-ext\")"
actions             : "eth.dst = eth.src; eth.src = xreg0[0..47]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[0..47]; arp.tpa = arp.spa; arp.spa = bbb.76.20.84; outport = inport; flags.loopback = 1; output;"
match               : "inport == \"lxd-net11-lr-lrp-int\" && arp.op == 1 && arp.tpa == bbb.76.20.84"
match               : "ip && ip4.dst == bbb.76.20.84"
actions             : "reg1 = bbb.76.20.84; ct_lb(backends=<IP_ADDRESS>);"
match               : "ct.new && ip4.dst == bbb.76.20.84"
match               : "ct.new && ip && ip4.dst == bbb.76.20.84 && is_chassis_resident(\"cr-lxd-net11-lr-lrp-ext\")"
actions             : "eth.dst = eth.src; eth.src = xreg0[0..47]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[0..47]; arp.tpa = arp.spa; arp.spa = bbb.76.20.84; outport = inport; flags.loopback = 1; output;"
match               : "inport == \"lxd-net11-lr-lrp-ext\" && arp.op == 1 && arp.tpa == bbb.76.20.84 && is_chassis_resident(\"cr-lxd-net11-lr-lrp-ext\")"

Specifically there is a mention of an /* ARP reply */ flow.

I am still experiencing the issue on 22.03.0 (despite it having a commit that seems like it would fix it https://github.com/ovn-org/ovn/commit/ecc941c70f1675b66f6ecb2cdf09df362f62c97a):
ovn-nbctl --version
ovn-nbctl 22.03.0
Open vSwitch Library 2.17.0
DB Schema 6.1.0

Reproducer steps:
lxc launch images:ubuntu/jammy v1 --vm
lxc shell v1
  apt install snapd ovn-host ovn-central -y
  snap install lxd --edge
  lxd init --auto
  sudo ovs-vsctl set open_vswitch . \
    external_ids:ovn-remote=unix:/var/run/ovn/ovnsb_db.sock \
    external_ids:ovn-encap-type=geneve \
    external_ids:ovn-encap-ip=<IP_ADDRESS>

  lxc network show lxdbr0
  config:
    ipv4.address: <IP_ADDRESS>/24
    ipv4.nat: "true"
    ipv6.address: fd42:41fc:e9fc:6418::1/64
    ipv6.nat: "true"
  description: ""
  name: lxdbr0
  type: bridge

  lxc network set lxdbr0 \
    ipv4.dhcp.ranges=<IP_ADDRESS>-<IP_ADDRESS> \
    ipv4.ovn.ranges=<IP_ADDRESS>-<IP_ADDRESS> \
    ipv4.routes=<IP_ADDRESS>/32

  lxc network create ovn1 --type=ovn network=lxdbr0
  lxc launch images:alpine/3.15 c1 -n ovn1
  lxc ls
  +------+---------+--------------------+-----------------------------------------------+-----------+-----------+
  | NAME |  STATE  |        IPV4        |                     IPV6                      |   TYPE    | SNAPSHOTS |
  +------+---------+--------------------+-----------------------------------------------+-----------+-----------+
  | c1   | RUNNING | <IP_ADDRESS> (eth0) | fd42:8f11:9df0:efd1:216:3eff:fe10:125a (eth0) | CONTAINER | 0         |
  +------+---------+--------------------+-----------------------------------------------+-----------+-----------+

  lxc network forward create ovn1 <IP_ADDRESS> target_address=<IP_ADDRESS>

  ping <IP_ADDRESS>
  PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
  64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=63 time=1956 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=63 time=941 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=63 time=0.423 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=63 time=0.212 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=63 time=0.236 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=6 ttl=63 time=0.233 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=7 ttl=63 time=0.213 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=8 ttl=63 time=0.202 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=9 ttl=63 time=0.242 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=10 ttl=63 time=0.247 ms
  From <IP_ADDRESS> icmp_seq=11 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=12 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=13 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=14 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=15 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=16 Destination Host Unreachable
  64 bytes from <IP_ADDRESS>: icmp_seq=17 ttl=63 time=1625 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=18 ttl=63 time=601 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=19 ttl=63 time=0.263 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=20 ttl=63 time=0.071 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=21 ttl=63 time=0.262 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=22 ttl=63 time=0.204 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=23 ttl=63 time=0.140 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=24 ttl=63 time=0.198 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=25 ttl=63 time=0.226 ms
  64 bytes from <IP_ADDRESS>: icmp_seq=26 ttl=63 time=0.218 ms
  From <IP_ADDRESS> icmp_seq=27 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=28 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=29 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=30 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=31 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=32 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=33 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=34 Destination Host Unreachable
  From <IP_ADDRESS> icmp_seq=35 Destination Host Unreachable

Thanks for reporting the issue.
I'll check the issue in more detail and come back to you.

Thanks for reporting the issue.
I'll check the issue in more detail and come back to you.

Thanks! :) Let me know if you need any more info.

Is it possible to share the OVN NB DB and SB DB ?

@tomponline  this commit https://github.com/ovn-org/ovn/commit/5c4010dd7f41d2ebd7b8aa4f0350ee7c803b94a5 removed ARP responder flows for load balancer vips which are not reachable from the router.
@dceara   wdyt about this reported issue ?  We should add back this support with an option to enable it if CMS desires ?

Putting it under a feature flag  would be good.

@tomponline What do you think of a new NB.Load_Balancer.options:arp_responder=<all|reachable> with a default of reachable?  That would mean that the CMS would have to explicitly set it to all for each load balancer if it's desired that OVN generate ARP responder for all IPs.
Alternatively, we could add a new config option on the routers, e.g.: NB.Logical_Router.options:lb_arp_responder=<all|reachable> with a default of reachable.  This latter option has the advantage that a load balancer may be applied in different ways on different routers.  I'm not sure how important this extra flexibility is though.

Thanks for looking at this.
I think I would prefer the NB.Load_Balancer.options:arp_responder option as it then means its a property of the load balancer.
We don't tend to share load balancers between routers so the latter option wouldn't provide us any benefit.
Whilst we on the subject, I haven't checked, but did the change also prevent IPv6 NDP responders from working in the same way that IPv4 ARP responders were stopped?
If not, then they probably should be for consistency, and then perhaps instead of NB.Load_Balancer.options:arp_responder th new option should be called NB.Load_Balancer.options:neighbour_responder to accommodate both IPv4 and IPv6 responders?

Thanks for looking at this.
I think I would prefer the NB.Load_Balancer.options:arp_responder option as it then means its a property of the load balancer. We don't tend to share load balancers between routers so the latter option wouldn't provide us any benefit.

Makes sense.  I know ovn-kubernetes shares load balancers across routers but I don't see why they would need different behavior for the same load balancer.

Whilst we are on the subject, I haven't checked, but did the change also prevent IPv6 NDP responders from working in the same way that IPv4 ARP responders were stopped?

Yes.

If not, then they probably should be for consistency, and then perhaps instead of NB.Load_Balancer.options:arp_responder th new option should be called NB.Load_Balancer.options:neighbour_responder to accommodate both IPv4 and IPv6 responders?

Good point, will do.  I just need to figure out if it should be "neighbour" or "neighbor" :).  We have both in the code base but we mostly use "neighbor" from what I can tell.

Good point, will do. I just need to figure out if it should be "neighbour" or "neighbor" :). We have both in the code base but we mostly use "neighbor" from what I can tell.

ARP is an acronym so using NDP would make sense to me (NB.Load_Balancer.options:ndp_responder).

Except NDP is an IPv6 protocol so one may assume that it would control IPV6 NDP only, so using the word "neighbour" (or "neighbor") would seem to cover both ARP and NDP.

This way we would have one config option that enables both ARP and NDP responders.

Ah I misunderstood your proposal of a single config option, I like it better!

I sent a patch to implement this:
https://patchwork.ozlabs.org/project/ovn/list/?series=297414&state=*
https://mail.openvswitch.org/pipermail/ovs-dev/2022-April/393627.html
@tomponline It would be great if you could try it out and confirm it works for your case. Thanks!

Hi @dceara,
thank you very much for your patch! I've just tried it out in our environment and it works perfectly! Thank you very much!
@tomponline
I've configured as suggested in patch via ovn-nbctl. Is there any chance that this option will be overwritten by LXD?
Thanks!

@lepokle ah excellent glad you were able to test.
At the current time lxd will not override it.
We may add a feature setting in the future though that controls this flag, although I suspect we would leave it disabled by default for performance reasons.

Any chance that this will be merged @dceara ?

@lepokle Sorry, I forgot to update this issue but the patch was merged a while ago: https://github.com/ovn-org/ovn/commit/7644698a783aef883a12ed74becec1dadedbf77a It's available in versions 22.06, 22.09 and 22.12.

Hi @dceara ,
thank you very much, I'll test it with 22.12!!

Hi @dceara ,
since 22.12 is not officially tagged, I've used now 22.09. I get the following error when starting ovn-controller:
ovs|00035|physical|ERR|No tunnel endpoint found for HA chassis in HA chassis group of port cr-lxd-net5-lr-lrp-ext
Could this be related to the new version?

Hi @dceara , since 22.12 is not officially tagged, I've used now 22.09. I get the following error when starting ovn-controller: ovs|00035|physical|ERR|No tunnel endpoint found for HA chassis in HA chassis group of port cr-lxd-net5-lr-lrp-ext Could this be related to the new version?

Hmm, 22.12 is  tagged for a while: https://github.com/ovn-org/ovn/releases/tag/v22.12.0
I'm not sure about the error. There were some changes that were made in that area but it's hard to tell without looking at databases.


Inventory collection

When run with --inventory-kubernetes does seal collect the set of nodes only at startup or at the start of each "run" (when in autonomous mode)?  I'm really hoping it refreshes the node list at the start of each run to account for dynamically scaling clusters.

@jcstanaway I think it's just at startup.
The result is that if you leave a strategy running that stops nodes without restarting them (which is the sensible behaviour if you run your nodes in an ASG), it gradually exhausts its list of nodes, and eventually ends up in the state where the only node left in the inventory is the one that the PowerfulSeal pod is on, at which point the stop pods strategy does nothing.

That's right: currently it reads the list of nodes at startup only: https://github.com/powerfulseal/powerfulseal/blob/master/powerfulseal/cli/main.py#L525
@jcstanaway do you need support for refreshing the inventory mid-flight?

I would suggest refreshing the inventory each time seal wakes up before running scenarios. Our clusters utilize dynamic scaling (using k8s autoscaler) with multiple ASGs and so we have nodes coming and going quite frequently depending on load. Since seal only reads the list of nodes at startup, this effectively makes it so that we can't run most node chaos scenarios.


Factorio false INVOCATION - no "--port" option

There is a big bug in your script because there is no option with "--port" for yout invocation.
Please remove it (v. 0.12.30)

hmm, odd - let me have a look

The only references made to --port are done in the config.example and factorio.service.example if you do not want to use the port in them you simply remove them yourself =)


[Alpha] Content side bar

Hi! This is a PR to add the new content side bar.
Much of this is probably still subject to change (such as background color, animation style, etc.), but interested to get some feedback to see if this is ready to be merged in.
Features:

Ability to retract side bar
minor routing (swap/introduction/products/organizations)
animation using framer-motion (thanks ed for inspiration from your branch!)
minor style changes of the entire page, so swap widget will be centered

TODOS: mobile view for this (currently display: none)

Looking good, would just like to remove the bounce for now. Also noticing the :focus draws a square around the button, maybe we drop focus styling until we do an accessibility pass?


Live reactions for lectures

Is your feature request related to a problem? Please describe.
When watching a lecture that uses Tweedback there are things like the panic button, that clearly indicate that the lecture is hard to follow. This can be really useful, since the chat can become hard to track for large amount of students.
That also makes it difficult to actually estimate what percentage of the student shares a certain opinion about the lecture. Therefore there should be an option for easy, instant, grouped feedback, that can also be visualized while being completely anonymous.
Describe the solution you'd like
There should be buttons that represent the mood of the student. For example there could be buttons that indicate the lecture moved too fast eg. 🏎 , too slow e.g 🐌, or even mood indications. There could also be a certain threshold of votes e.g 20% of the current viewers within 5 minutes, that trigger an alert, that will be also directly sent to the lecturer.
The buttons should be combined with a heatmap or gauge, that will fade again after some time, as we expect the relevancy of the feedback to decrease over time.
Describe alternatives you've considered
Of course you could always use Tweedback additionally, but it would be awesome if TUM-live became independent of other platforms and offers an integrated solution for lectures. Quizes can also be used for getting opinions about the lecture, but it is not ideal, as those have to be created manually.

Love this! If we want to take it up a notch there could also be an overview page for the lecturers that displays information on the lecture including:

livestream preview (muted?)
reactions and alerts
live time left
viewer count graph
chat messages (would do this later because the chat will change a lot)
...

More advanced information could be:

health status of the stream (useful for lecturers who use OBS)
audio/video loss alerts (we can get this data from our hardware in the lecture halls)

But most of this is something for another PR I guess.


Br-N bond (not in Parm99/Parm@Frosst)

I'm looking up GAFF2 parameters:
br-n1  141.51   1.860                     SOUECE3       1
br-n2   88.47   2.038                     SOURCE3       5    0.1082
br-n   136.53   1.873                     SOURCE3       4    0.0046
br-n3  110.41   1.952                     SOURCE3       2
br-n4  118.29   1.926                     SOURCE3       3    0.0013
br-na   96.95   2.002                     SOURCE3       7    0.2156
br-nh  112.77   1.944                     SOURCE3       1
br-no   75.65   2.101                     SOURCE3       1

Where these are the nitrogen types:
n  14.01         0.530               Sp2 nitrogen in amide groups
n1 14.01         0.530               Sp N
n2 14.01         0.530               aliphatic Sp2 N with two connected atoms
n3 14.01         0.530               Sp3 N with three connected atoms
n4 14.01         0.530               Sp3 N with four connected atoms
na 14.01         0.530               Sp2 N with three connected atoms
nh 14.01         0.530               Amine N connected one or more aromatic rings
no 14.01         0.530               Nitro N

I propose we use a rough average for coverage's sake:
[#35:1]~[#7:2]   110.   2.0

Sounds good to me.
How are you actually adding these? Adding to the smirffishFrcmod, hopefully, with comments on source?

YES! Adding to smirffishFrcmod with a comment on source then I'll convert to smirff99Frosst. Once I've actually typed anything into the smirffFrcmod file I'll make a pull request.

OK. Probably obvious but just wanted to make sure. :)

I realized we should do this for F, Cl, I too, I'll add the GAFF2 parameters for those in a minute.

Chlorine
cl-n1  217.59   1.630                     SOUECE3       1
cl-n2  123.81   1.819                     SOURCE3       6    0.1020
cl-n3  139.52   1.777             SOURCE4_SOURCE5      16    0.0044
cl-n   167.01   1.716             SOURCE4_SOURCE5      17    0.0049
cl-n4  149.71   1.753                     SOURCE3       4    0.0098
cl-na  118.36   1.835                     SOURCE3       7    0.2083
cl-nh  145.39   1.763                     SOURCE3       1
cl-no  116.71   1.840                     SOURCE2       1

N-Cl  with k=150. r=1.8
Fluorine
f -n1  167.33   1.410                     SOUECE3       1
f -n2  148.04   1.444                     SOURCE3       5    0.0377
f -n3  169.79   1.406                     SOURCE1       9
f -n   175.49   1.397                     SOURCE3       3    0.0112
f -n4  246.14   1.308                     SOURCE3       2
f -na  166.72   1.411                     SOURCE3       7    0.0611
f -nh  157.90   1.426                     SOURCE3       3    0.0085
f -no  136.49   1.467                     SOURCE2       1

N-F with k=170. r=1.4
Iodine
i -n1  105.51   2.060                     SOUECE3       1
i -n2   59.35   2.304                     SOURCE3       6    0.1186
i -n    96.05   2.098                     SOURCE3       5    0.0156
i -n3   77.95   2.185                     SOURCE3       3    0.0437
i -n4   83.69   2.155                     SOURCE3       3    0.0168
i -na   89.07   2.129                     SOURCE3       8    0.1276
i -nh   84.69   2.150                     SOURCE3       1
i -no   70.03   2.231                     SOURCE3       1

N-I with k=80. r = 2.1

Final: Add a "N-halogen" section with the following:
[#7:1]-[#9:2]    170.   1.4
[#7:1]-[#17:2]    150.   1.8
[#7:1]-[#35:2]   110.   2.0
[#7:1]-[#53:2]    80.    2.1

Lots of fun chemistry here to follow up on, and the great thing is that we (a) know exactly where to find example molecules, and (b) can easily find and/or build more.
These proposals look like good starting points.

covered in pull request #43


rbd: add support to create snapshot and clone from snapshot in different pools

Added support to create volumesnapshot in a different pool
as cephcsi internally creates an rbd image when a user requested a snapshot, cephcsi can create an rbd image in a  different pool

Added support to create pvc from snapshot to a different pool
as cephcsi internally creates a clone from a snapshot its possible to clone to a new pool

Signed-off-by: Madhu Rajanna<EMAIL_ADDRESS>

Warning: rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
++ kubectl get nodes
NAME       STATUS   ROLES    AGE     VERSION
minikube   Ready    master   3m48s   v1.19.4
++ kubectl -n rook-ceph get events
No resources found in rook-ceph namespace.
++ kubectl -n rook-ceph describe pods
No resources found in rook-ceph namespace.
++ kubectl -n rook-ceph logs -l app=rook-ceph-operator
++ kubectl -n rook-ceph get CephClusters -oyaml
apiVersion: v1
items: []
kind: List
metadata:
resourceVersion: ""
selfLink: ""
++ kubectl -n rook-ceph get CephFilesystems -oyaml
apiVersion: v1
items: []
kind: List
metadata:
resourceVersion: ""
selfLink: ""
++ kubectl -n rook-ceph get CephBlockPools -oyaml
apiVersion: v1
items: []
kind: List
metadata:
resourceVersion: ""
selfLink: ""
++ exit 1
script returned exit code 1

deploy rook failed without any reason

@mergifyio  rebase

@mergifyio rebase

@Yuggupta27 will be working on this one.

/retest ci/centos/mini-e2e/k8s-1.19

/retest ci/centos/mini-e2e/k8s-1.19

/retest ci/centos/mini-e2e/k8s-1.19

/retest ci/centos/mini-e2e/k8s-1.19

closing this in favor of #1838


Compatibility issues with Windows Server 2019, Azure Service Fabric / Mesh 6.4 and Docker 18.09.3

Installing Azure Service Fabric / Mesh on the same local VM running Docker and Portainer causes Docker to be unstable. For example when I create or remove a local Mesh cluster, the Portainer container stops running. Also worth noting is that I have configured Docker to run both Windows and Linux containers (LCOW).
Creating or Removing a Mesh or Service Fabric cluster seems to interfere with docker, for example containers already running show the following error:

Once the Service Fabric / Mesh cluster is created, the containers come back up.
Other Details:
Service Fabric / Mesh Version | 6.4.617.9590
OS Information | windows x86_64 Windows Server 2019 Standard Version 1809 (OS Build 17763.379)
Kernel Version | 10.0 17763 (17763.1.amd64fre.rs5_release.180914-1434)
Docker Version | 18.09.3
Portainer Version | 1.20.2
cc @masnider @MikkelHegn @raunakpandya

I think SF assumes complete ownership of the container runtime on your OS when it is running.  I'm not sure how well side by side scenarios will work b\c of that.

@mattrowmsft - appreciate the insight. Wondering if this is documented anywhere? I expected mesh to own only the containers it knows about, were deployed via mesh... does this mean any local cluster with Service Fabric / Mesh installed cannot use other docker tooling & workflows, everything must go via SF Mesh?


Websocket-Server not working

Hello,
Yesterday I installed the laravel-webwockets package for the second time.
My server (VPS) is at a German hoster and I have enabled port 6001 in the firewall policies.
After that I uploaded my Laravel project and made the adjustments in the files (/config/websockets.php & /config/broadcasting.php)
// /config/websockets.php
[
	'id' => my-id,
	'name' => 'testaccount',
	'key' => my-key,
	'secret' => 'secure-password',
	'path' => null,
	'capacity' => null,
	'enable_client_messages' => true,
	'enable_statistics' => false,
],

// /config/broadcasting.php
'pusher' => [
	'driver' => 'pusher',
	'key' => my-key,
	'secret' => 'secure-password',
	'app_id' => my-id,
	'options' => [
		'cluster' => env('PUSHER_APP_CLUSTER'),
		'useTLS' => false,
		'encrypted' => true,
		'host' => 'IP from server',
		'port' => 6001,
		'scheme' => 'http'
	],
],

In the .env file it says BROADCAST_DRIVER=pusher.
My Nginx file looks like this:
map $http_upgrade $type {
  default "web";
  websocket "ws";
}

server {
    listen 80;

    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot

    server_name my-domain.dev;

    ssl_certificate /etc/letsencrypt/live/my-domain.dev/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my-domain.dev/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    root /var/www/my-domain.dev/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php;
    charset utf-8;

    location / {
        try_files /nonexistent @$type;
    }

    location @web {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location @ws {
        proxy_pass http://server-ip:6001;
        proxy_set_header Host $host;
        proxy_read_timeout 60;
        proxy_connect_timeout 60;
        proxy_redirect off;

        # Allow the use of websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location = @web/favicon.ico {
        access_log off;
        log_not_found off;
    }
    location = @web/robots.txt {
        access_log off;
        log_not_found off;
    }

    error_page 404 /index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

After starting the websocket server via php artisan websockets:serve and trying to connect to the socket server on https://meine-domain.dev/laravel-websockets, I get the following message: "Channels current state is unavailable".

Unless you're binding to a WAN IP when starting the artisan command, just put this to <IP_ADDRESS>. No need to open ports as you're switching on port 80/433 to HTTP vs WS traffic with this;
map $http_upgrade $type {
  default "web";
  websocket "ws";
}

What do you have here for server-ip?
proxy_pass http://server-ip:6001;

can be closed.

Little background info:
@informatJonas configured nginx as reverse proxy on a dedicated server => that way the traffic is routed through the external nginx.
For websocket consumers like pusher/websocket dashboard/etc this means that the port also has to be set to 443. (config/broadcasting.php) + add --port=6001 to php artisan websockets:serve (to be on the save side)


Slider performance very slow in android mobile devices having OS > Kitkat(4.4.0)

Hello,
Thank you for such a great image slider. It was very helping hand to show images in such a organised way.
But i am getting performance issue , like image swiper is very slow in android devices having OS > 4.4 (kitKat)
I am using below options :+1:
jssor_1_slider_init = function () {
var jssor_1_options = {
$AutoPlay: false,
$HWA: false,
$LazyLoading : 2,
$ArrowNavigatorOptions: {
$Class: $JssorArrowNavigator$
},
$ThumbnailNavigatorOptions: {
$Class: $JssorThumbnailNavigator$,
$Cols: 5,
$SpacingX: 8,
$SpacingY: 50,
$Align: 360
}
};

Please post your web browser info here.
To get your web browser info, please visit http://www.jssor.com/testcase/browser.html
Thank in advance!

I have implemented this for mobile hybrid application.
And running this in mobile webview which renders mobile application.
User-agent string: Mozilla/5.0 (Linux; Android 5.0; Nexus 4 Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/<IP_ADDRESS> Mobile Safari/537.36

I see. It's the problem of third party app.
Please visit the slider with Android Browser or any other kind of browser directly.

Hey , Thanks for a reply..
Third party app ?? Sorry but i did not understood your reply . Can you please explain more. My application is basically a combination of HTML , CSS and jQuery. It is just slider working very slow in mentioned browser version

First, please test the simple-slideshow to see if there is performance problem.
If not, please test your page to see if there is performance problem.
If there is problem, please remove some elements/scripts from your page and then test.
Finally, you will find the part which cause the problem.


Revert "tsdb: WAL replay waitUntilIdle() optimize sleep time"

Reverts prometheus/prometheus#10878

cc @bboreham


[WIP] Design Changes to Help Plugin

This is the initial PR for Design changes to the help plugin. I have included screenshots of the updates.

The help plugin runs the widget in the side bar area (as opposed to main area) because <iframe> elements steal mouse events. This means that drag-drop breaks when trying to drag a tab over the <iframe>.

drag-drop breaks when trying to drag a tab over the <iframe>

@sccolbert   I'm not sure what you mean by that. Could you please elaborate on that? I tried it on my end and it works.

@charnpreetsingh185 configure the page as you have in the last image, with the <iframe> displaying the scipy docs. Then, try to drag-and-drop a file from the file browser over that the iframe. The iframe will eat the mouse events, which will prevent the drag-and-drop action from working properly.
This is a fundamental limitation with iframes. There's a workaround, but it's expensive. We (the project) haven't yet fully decided how to handle iframes in a way which doesn't suck. So the current rule is "no iframes in the main area".

@sccolbert  Thanks for the explanation. I tried what you are describing and still can't see where it is breaking.

Ah. Ok. We've already set up the expensive workaround:
https://github.com/jupyter/jupyterlab/blob/master/src/default-theme/help.css#L26-L34
Basically, whenever a drag starts, we overlay a transparent div over the iframe and disable pointer events for that div. It works, but it's expensive.
The second (less immediately important) problem with iframe is that they reload whenever their position in the DOM tree changes. You can see this in your most recent gif when you drop the new item.

Hi @sccolbert the folks who submitted are one of the student teams here at Cal Poly. Looking at this now with them. I know iframes are a total pain, but they are trying to understand what exactly won't work. Also worried that if the limitations exist we will still run into them evetually with iframes in the L/R panel.

Ahh, thanks for the clarification...

If this is going inactive, it's probably best to close the PR to clear out the PR queue. We can always either open it back up, or get the branch and create a new PR.

Was it decided in the call I missed that this is going inactive?

Yes, due to the iframe issue, we decided to go back to the original Help plugin design.

Ok. Thanks!

I agree with @jasongrout about the closure.


Update Person to Member

Codecov Report

Merging #48 (afcab8a) into master (000a66a) will not change coverage.
The diff coverage is 81.50%.

@@            Coverage Diff            @@
##             master      #48   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

.../main/java/seedu/address/model/person/Address.java
80.00% <ø> (ø)

...rc/main/java/seedu/address/model/person/Email.java
80.00% <ø> (ø)

src/main/java/seedu/address/model/person/Name.java
80.00% <ø> (ø)

...rc/main/java/seedu/address/model/person/Phone.java
80.00% <ø> (ø)

.../java/seedu/address/model/util/SampleDataUtil.java
20.00% <0.00%> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/MemberCard.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/address/ui/MemberListPanel.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/model/EzFoodie.java
91.66% <92.30%> (ø)

... and 17 more

Continue to review full report at Codecov.

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


[Splink 4] Move key user-facing classes/functions to __init__.py?

If __init__.py contains:
__version__ = "4.0.0.dev2"

from splink.blocking_rule_library import block_on
from splink.datasets import splink_datasets
from splink.linker import Linker
from splink.settings_creator import SettingsCreator

from splink.sqlite.database_api import SQLiteAPI

try:
    from splink.duckdb.database_api import DuckDBAPI
except ImportError:
    pass

try:
    from splink.postgres.database_api import PostgresAPI
except ImportError:
    pass

try:
    from splink.spark.database_api import SparkAPI
except ImportError:
    pass

We could then write
from splink import DuckDBAPI, Linker, SettingsCreator, block_on, splink_datasets

You can do:
def __getattr__(name):
    if name == "SparkAPI":
        try:
            from splink.spark.database_api import SparkAPI

            return SparkAPI
        except ImportError:
            raise ImportError(
                "SparkAPI cannot be imported because its dependencies are not "
                "installed. Please `pip install pyspark`."
            )
    raise AttributeError(f"module 'splink' has no attribute '{name}'")

If you want a custom error message that is generated at the point the user tries to from splink import SparkAPI
Otherwise the user would just get ImportError: cannot import name 'SparkAPI' from 'splink'


[CELEBORN-1233] Add unit test to verify data correctness

What changes were proposed in this pull request?
Add a unit test for https://github.com/apache/celeborn/pull/2235
Why are the changes needed?
ditto
Does this PR introduce any user-facing change?
No
How was this patch tested?
org.apache.celeborn.tests.spark.CelebornWorkerRestartSuite

ping @waitinfuture @RexXiong Please take a look. Thanks.

ping @waitinfuture @RexXiong Please take a look. Thanks.

see comments at https://github.com/apache/celeborn/pull/2609

ping @waitinfuture @RexXiong Please take a look. Thanks.

see comments at #2609

Hi, we found that without CELEBORN-1233's PR: #2235 , if a file is deleted, the worker won't throw an exception and this could lead to data correctness issues. There is no unit test for CELEBORN-1233, so I have written one. However, it is not a unit test for #2609.


factory: merge legacy dependencies and groups

This change ensures that existence of legacy "dev-dependency" section does not break when "dev" group is added for new dependencies.
root@b447a66339c6:/foobar# cat pyproject.toml
[tool.poetry]
name = "foobar"
version = "0.1.0"
description = ""
authors = ["Your Name<EMAIL_ADDRESS>readme = "README.md"

[tool.poetry.dependencies]
python = "^3.10"

[tool.poetry.group.dev.dependencies]
pycowsay = "^<IP_ADDRESS>"

[tool.poetry.dev-dependencies]
pytest = "*"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
root@b447a66339c6:/foobar# poetry show pycowsay
 name         : pycowsay
 version      : <IP_ADDRESS>
 description  :
root@b447a66339c6:/foobar# poetry show --tree
pytest 7.0.1 pytest: simple powerful testing with Python
├── atomicwrites >=1.0
├── attrs >=19.2.0
├── colorama *
├── iniconfig *
├── packaging *
│   └── pyparsing >=2.0.2,<3.0.5 || >3.0.5
├── pluggy >=0.12,<2.0
├── py >=1.8.2
└── tomli >=1.0.0
root@b447a66339c6:/foobar# pip uninstall poetry-core
Found existing installation: poetry-core 1.1.0a7
..
  Successfully uninstalled poetry-core-1.1.0a7
root@b447a66339c6:/foobar# pip install -q git+https://github.com/abn/poetry-core.git@groups-merge-dev
root@b447a66339c6:/foobar# poetry show --tree
pycowsay <IP_ADDRESS>
pytest 7.0.1 pytest: simple powerful testing with Python
├── atomicwrites >=1.0
├── attrs >=19.2.0
├── colorama *
├── iniconfig *
├── packaging *
│   └── pyparsing >=2.0.2,<3.0.5 || >3.0.5
├── pluggy >=0.12,<2.0
├── py >=1.8.2
└── tomli >=1.0.0

This commit seems to have broken Poetry’s test_solver_duplicate_dependencies_different_sources_types_are_preserved. If you update poetry-core from Git, that test now raises poetry.puzzle.exceptions.SolverProblemError: Because root depends on both demo (0.1.2 git) and demo (>=0.1.0), version solving failed.

This does not relate to the breakage. The tests downstream introduced a case we were previously not testing for. The breakage is related to package similarity check changes.
There already is a fix for this on Poetry.

I believe you that the real bug is elsewhere. But it isn’t fixed as of now. What I’m saying is that

current poetry master fails with current poetry-core master;
current poetry master fails with poetry-core where this commit was merged;
current poetry master succeeds with poetry-core before this commit was merged.

It's kind of related. This PR influences the order of dependencies that are returned by all_requires and thereby reveals a downstream bug in a test added recently in python-poetry/poetry#5640. A fix is on the way: python-poetry/poetry#5654


Several Overall Improvements

Changes

Provides both blocking and async interface
Removed repeated code
Added tests
Handled bad arguments
Used my new library :)

Thanks :)


Generic non-location format for time zones unavailable?

I tried:
  DateTimeFormatter zf =
    DateTimeFormatter.ofPattern("zzzz", Locale.ENGLISH).withZone(ZoneId.of("America/Los_Angeles"));
  System.out.println(LocalDateTime.now().format(zf)); // Pacific Time

This code compiles in Java-8 (v1.8.0_77), is runnable and yields the expected result ("Pacific Time"). However, using ThreetenBP fails with following exception:
Exception in thread "main" org.threeten.bp.temporal.UnsupportedTemporalTypeException: Unsupported field: InstantSeconds
	at org.threeten.bp.LocalDate.get0(LocalDate.java:593)
	at org.threeten.bp.LocalDate.getLong(LocalDate.java:572)
	at org.threeten.bp.LocalDateTime.getLong(LocalDateTime.java:628)
	at org.threeten.bp.format.DateTimePrintContext$1.getLong(DateTimePrintContext.java:181)
	at org.threeten.bp.format.DateTimeFormatterBuilder$ZoneTextPrinterParser.print(DateTimeFormatterBuilder.java:3370)
	at org.threeten.bp.format.DateTimeFormatterBuilder$CompositePrinterParser.print(DateTimeFormatterBuilder.java:1995)
	at org.threeten.bp.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1385)
	at org.threeten.bp.format.DateTimeFormatter.format(DateTimeFormatter.java:1359)
	at org.threeten.bp.chrono.ChronoLocalDateTime.format(ChronoLocalDateTime.java:263)
	at org.threeten.bp.LocalDateTime.format(LocalDateTime.java:1828)

I remember our discussion on stackoverflow. Following questions:

Is the observed exception a bug or a feature of ThreetenBP?
Are there any plans to update ThreetenBP to newer subversions of Java-8 (higher than 8u20)?
If a solution for given code above is not possible then how can I achieve the generic non-location name of a time zone in a different way?

ThreeTenBP is a best efforts project to get JSR-310 on earlier JDKs. Not everything is perfect, but I don't have the time to make it perfect. The key problem here is that JDKs before JDK 8 will not contain the localized "generic non-location" data, so the whole question is moot. (Basically, it is not ThreeTenBP's job to provide data in JDK 6 and 7 that was added in 8.
Since ThreeTenBP is for JDK 6 and 7, the question about Java 8u20 is unclear.

Thank you very much for your response which addresses my third question. I will try to clarify my other two questions.
The same exception I observed also happens with following code (similar stacktrace):
System.out.println(
  ZoneId.of("America/Los_Angeles").getDisplayName(TextStyle.FULL, Locale.ENGLISH));

Even if the generic name data are not available on Java 6+7, I would at least expect this code to be runnable and to fall back maybe to "specific standard time", IANA-id or something else. The exception should IMHO simply not occur. The root cause of the exception is that the ThreetenBP-code expects to find the missing field "INSTANT_SECONDS" without any alternative.
About Java 8u20, I have looked at your commit history, and the last release synchronizing ThreetenBP with Java-8 affected 8u20. But Java-8 is in active development. So my second question means, do you still have time or plans to synchronize ThreetenBP with newer bugfixes in Java-8? If yes, then maybe this problem can at least be partially solved (avoiding the exception, but with different data).
Thanks in advance.

I would be happy to see the codebase updated to match the behviour of later Java 8 releases. However, practically speaking I don't have time to do that (I'm performing minimal maintenance on the project). The error you point out might well be one that could be better handled.

As @jodastephen points out, JDK 6 and 7 do not provide localized resources for a generic timezone name. That said, the javadoc for TimeZone#getDisplayName(Locale) states that, if daylight-savings yes/no is not specified, the name of the standard time (i.e. no daylight savings) is returned. The same logic could be applied to zone name formatting and, consequently, ZoneId#getDisplayName().
As far as I can tell, this would require a relatively trivial patch in ZoneTextPrinterParser#print(DateTimePrintContext, StringBuilder) replacing
Long epochSec = context.getTemporal().getLong(INSTANT_SECONDS);
Instant instant;
if (epochSec != null) {
    instant = Instant.ofEpochSecond(epochSec);
} else {
    instant = Instant.ofEpochSecond(-200L * 365 * 86400);  // about 1770
}
TimeZone tz = TimeZone.getTimeZone(zone.getId());
boolean daylight = zone.getRules().isDaylightSavings(instant);

with something along the lines of (untested):
TemporalAccessor temporal = context.getTemporal();
TimeZone tz = TimeZone.getTimeZone(zone.getId());
boolean daylight;
if (temporal.isSupported(INSTANT_SECONDS)) {
    long epochSec = temporal.getLong(INSTANT_SECONDS);
    Instant instant = Instant.ofEpochSecond(epochSec);
    daylight = zone.getRules().isDaylightSavings(instant);
} else {
    daylight = false
}

This has the side effect of removing the // about 1170 case. However, this code seems unreachable in any case as TemporalAccessor#getLong(TemporalField) is declared to return a primitive long, which means that Long epochSec is always non-null. Not sure why that's in there.
TL;DR Issue seems trivial to patch. Mainly needs someone to write a patch set to match Java 8 behavior more closely.


Bullet-featherstone: Ellipse AABB returns invalid values on Focal

Environment

OS Version: Ubuntu 20.04 Focal
Source or binary build? Source build

Description

Expected behavior: The ellipse AABB common physics test passes (as it does with dartsim and on other Ubuntu versions)
Actual behavior: It does not

In the short term, the test is being disabled, with this as the tracking issue to resolve the test once the issue is discovered.
Output
The extents of the AABB on focal are incorrect:
 -0.24 -5.34 0.190018
  0.24 -4.66 7.71649e+29

Likely related to https://github.com/gazebosim/gz-sim/issues/1769


Add Messages to engine api Backup type

This allows the engine to signal corrupt backup.cfg
longhorn/longhorn#1212
Signed-off-by: Joshua Moody<EMAIL_ADDRESS>

Need to add the updated go mod once longhorn/backupstore#35 is merged

LGTM.

rebased and added the updated go mod


Create an unhandled exception handler for the VS extension

Since all of the entry points into the exception are known (all menu handlers and command handlers) we need to ensure that we wrap them with a special try/catch handler to log and diagnose all of the unhandled exceptions. Ensure that we don't crash and keep enough information for diagnostics (at least on the debug version).

This is fixed as of  b10bdfd


Switching Last.fm login

OS:
Windows 10
Issue Descriptions:
Unable to change Last.fm account
Steps to Reproduce:
Once logged in to one Last.fm account, when you log out and attempt to sign-in it will use the stored history of the previous login to log back in.
I'm transitioning to a new Last.fm account but am unable to switch over on GPMDP. Tried uninstalling and re-installing. Seems wherever the cache file for GPMDP is persistent. I've done this on Mac (found where the cache file was and removed the last.fm share key in the config file so it reset everything). I can't seem to find the file on Windows.
Anyone know where the config is stored on Windows?

%appdata%\Google Play Music Desktop Player\ is the folder you're looking for I believe.

Thanks jostrander!
To any future travelers wondering, it was here on my Win 10 installation:
\Users[user]\AppData\Roaming\Google Play Music Desktop Player\json_store.settings.json

OS:
Windows 10
Issue Descriptions:
Unable to change Last.fm account
Steps to Reproduce:
Once logged in to one Last.fm account, when you log out and attempt to sign-in it will use the stored history of the previous login to log back in.
I'm transitioning to a new Last.fm account but am unable to switch over on GPMDP. Tried uninstalling and re-installing. Seems wherever the cache file for GPMDP is persistent. I've done this on Mac (found where the cache file was and removed the last.fm share key in the config file so it reset everything). I can't seem to find the file on Windows.
Anyone know where the config is stored on Windows?

Can you share where you found the file on your Mac?


Why So Fk'd?

Everyone I talked to who have updated to the 1803 version has had issues.  Some minor but there are a lot of series ones.  I can't even install the update myself and with all the negatives reviews I'm hearing about I'm glad I can't update.  Is there any fixes for 1083?

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

ID: c880203c-6a5b-28e7-c74d-152890baa955
Version Independent ID: 59c9eb13-dd44-358a-130d-ca1e020573ba
Content: What's new in Windows 10, version 1803
Content Source: windows/whats-new/whats-new-windows-10-version-1803.md
Product: w10
GitHub Login: @greg-lindsay
Microsoft Alias: trudyha

Sorry to hear that you're having issues. Have you seen the new Setupdiag tool? It might be able to help you figure out what's going wrong. You can also find support on the Microsoft Support page, including a virtual agent who can help you find useful information. If none of those help, please use the Feedback app to provide specific problems/issues you're running into. Thanks.


Error Message "Message malformed: extra keys not allowed @ data['0']" When Implementing Provided Example Automations

What happened?
config_entry-smart_irrigation-f8cb1dfbb1ddaa9c2cc0aac6aa5458ba.json
Hello,
I'm receiving the error message "Message malformed: extra keys not allowed @ data['0']" when attempting to implement the provided example automations. I apologize for the inconvenience, but I'm new to Home Assistant and need assistance in resolving this issue.
- alias: Smart Irrigation
  description: 'Start Smart Irrigation at 06:00 and run it only if the adjusted_run_time is >0 and run it for precisely that many seconds'
  trigger:
  - at: 06:00
    platform: time
  condition:
  - above: '0'
    condition: numeric_state
    entity_id: sensor.smart_irrigation_garten_vorne
  action:
  - data: {}
    entity_id: switch.irrigation_tap1
    service: switch.turn_on
  - delay:
      seconds: '{{states("sensor.smart_irrigation_garten_vorne")}}'
  - data: {}
    entity_id: switch.irrigation_tap1
    service: switch.turn_off
  - data: {}
    service: smart_irrigation.reset_bucket
    target:
      entity_id: sensor.smart_irrigation_garten_vorne

How to reproduce

Navigate to the Automations section in Home Assistant.
Create a new automation using the provided example automation.
Attempt to save or activate the automation.
Observe the error message "Message malformed: extra keys not allowed @ data['0']" being displayed.

- alias: Smart Irrigation
  description: 'Start Smart Irrigation at 06:00 and run it only if the adjusted_run_time is >0 and run it for precisely that many seconds'
  trigger:
  - at: 06:00
    platform: time
  condition:
  - above: '0'
    condition: numeric_state
    entity_id: sensor.smart_irrigation_garten_vorne
  action:
  - data: {}
    entity_id: switch.irrigation_tap1
    service: switch.turn_on
  - delay:
      seconds: '{{states("sensor.smart_irrigation_garten_vorne")}}'
  - data: {}
    entity_id: switch.irrigation_tap1
    service: switch.turn_off
  - data: {}
    service: smart_irrigation.reset_bucket
    target:
      entity_id: sensor.smart_irrigation_garten_vorne

Relevant log output
No response
Which version are you running?
v2024.3
Diagnostics file

[X] I have attached a diagnostics file

Additional information
No response

Remove the data:{}  lines. Those are not needed unless you actually need to pass in data....


The client cannot retrieve file content if the file name contains "+"

Hello,
I am using v0.9.3, trying to retrieve files from an unmerged commit.
For all files with "+" in the names I get com.urswolfer.gerrit.client.rest.http.HttpStatusException: Request not successful. Message: Not Found. Status-Code: 404. Content: Not Found.
The client performs URL encoding for all file names in com.urswolfer.gerrit.client.rest.http.changes.FileApiRestClient#requestPath, and if I copy a URL of the file/content just before diving into Apache HttpClient and perform a GET request using curl it works as expected.
However, later in org.apache.http.impl.execchain.ProtocolExec#execute a method rewriteRequestURI() is executed, and properly encoded %2B became + again:
// Re-write request URI if needed
rewriteRequestURI(request, route, context.getRequestConfig().isNormalizeUri());

By default org.apache.http.client.config.RequestConfig#isNormalizeUri equals to true:
/**
 * Determines whether client should normalize URIs in requests or not.
 * <p>
 * Default: {@code true}
 * </p>
 *
 * @since 4.5.8
 */
public boolean isNormalizeUri() {
    return normalizeUri;
}

Is there a workaround?

Closed with #145.


Permission problem when run from sudo su

https://gist.github.com/eddiemonge/c1b8211f596ba2cdd4e3

I doubt this is caused by this module, and the stack trace points to the insight module. Can you post some code and its module dependencies, if you still think this is related to this module?

i guess the issue is that there isn't an error being thrown when it tries to downgrade. or who is it being downgraded to?

who is it being downgraded to

When using sudo, it downgrades to the user who invoked sudo:
silverwind@pi$ sudo node -e "require('downgrade-root')(); console.log(process.getuid())"
1000

When run as root, it currently downgrades to the first user-space uid, which is platform dependent, 1000 on most linux distros.
@sindresorhus regarding throwing: I see the README wraps with a try but we don't actually throw?

@sindresorhus regarding throwing: I see the README example wraps with a try but we don't actually throw?

process.setuid will throw if it fail downgrading the permissions.
Which is why I wrap it in try/catch here as we don't care about it failing: https://github.com/sindresorhus/root-check/blob/2e97094533d31fc101ceca71207a83865f21117d/index.js#L6-L8

Alright. I'll close this issue as invalid until further evidence is provided that it actually corncerns this module.


Expand groups for the first time in onCreateGroupViewHolder()

Is there any idea for expanding groups for the first time launching recyclerview, here is my code but it has problem when I click to collapse the second time, it go into animateExpand() so that my indication arrow not animate the right way:
`@Override
public ChatGroupParentVH onCreateGroupViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext)
.inflate(R.layout.item_header, parent, false);
final ChatGroupParentVH holder = new ChatGroupParentVH(itemView);
new Handler().post(new Runnable() {
@Override
public void run() {
holder.expand();
onGroupClick(holder.getAdapterPosition());
}
});
return holder;
}
Thank you!`

I would recommend using one of the adapter.toggleGroup() methods to toggle a group. This will ensure the expandCollapseController is aware of the expanded / collapsed state of all groups. The adapter uses this class to determine whether to call expand or collapse animations. So if that controller becomes out of sync, that is one reason why you might be seeing the wrong animations being called.

@mandybess I replaced onGroupClick(holder.getAdapterPosition()); method by toggleGroup(holder.getAdapterPosition()) but it still the same, my indication arrow still not animate the right way.
Can you explain with a little more detail about your idea for this issue.
Thank you for your help!

If you are calling this method inside onCreateGroupViewHolder then all of the work is being executed before the group click listener is applied to the group view holder. That might be why you are experiencing some weirdness. I would recommend calling toggleGroup after the adapter has had a chance to create and bind all view holders

@mandybess I moved all code from ChatGroupAdapter to my Activity:
List<ParentExpandable> expandableList = getListChatGroup();         final ChatGroupAdapter adapter = new ChatGroupAdapter(this, expandableList);         recyclerView.setLayoutManager(layoutManager);         recyclerView.setAdapter(adapter);         if (adapter.getGroups().size() > 0) {             new Handler().postDelayed(new Runnable() {                 @Override                 public void run() {                     for (int i = 0; i < adapter.getGroups().size(); i++) {                         ChatGroupParentVH holder = (ChatGroupParentVH) recyclerView.getChildViewHolder(recyclerView.getChildAt(i));                         adapter.toggleGroup(holder.getAdapterPosition());                         holder.expand();                     }                 }             }, 1000);         }
The group items was expanding for the first time and the indication arrow animate the right way, but when I click on the indication arrow for the second time it still when to ChatGroupParentVH.expand() method.
Or maybe I didn't get your idea. Could you please explain your solution for this issue.
Thank you so much!

I have solution for you @HoLuong1609
In function onBindGroupViewHolder of Adapter please check:
boolean isExpand = isGroupExpanded(flatPosition);
if(group instanceof ChatGroupParentVH){
         if(isExpand){
               ((ChatGroupParentVH) holder).animateExpand(0);
         }else {
               ((ChatGroupParentVH) holder).animateCollapse(0);
         }
 }

You can preference the code of animateExapand below
public ObjectAnimator createRotateAnimator(final View target, final float from, final float to, int duration) {

        ObjectAnimator animator = ObjectAnimator.ofFloat(target, "rotation", from, to);
        animator.setDuration(duration);
        animator.setInterpolator(Utils.createInterpolator(Utils.LINEAR_INTERPOLATOR));
        return animator;
    }
    private void animateExpand(int duration) {
        createRotateAnimator(view, 0f, 180f,duration).start();
    }

    private void animateCollapse(int duration) {
        createRotateAnimator(view, 180f, 0f,duration).start();
    }


Event Filters

This adds support for filters in the event service.  Current supported fields are:

container_id
image
topic
type

Examples:
Filter events by specific container id:
$> ctr events -f container~=redis.*
2017-06-22 21:01:09.673529544 +0000 UTC   /containers/create   id=redis-dev image=docker.io/library/redis:alpine runtime=&ContainerCreate_Runtime{Name:io.containerd.runtime.v1.linux,Options:map[string]string{},}
2017-06-22 21:01:09.748680775 +0000 UTC   /tasks/create   id=redis-dev
2017-06-22 21:01:09.758419718 +0000 UTC   /tasks/start   id=redis-dev
2017-06-22 21:01:10.639564012 +0000 UTC   /tasks/delete   id=redis-dev pid=6355 status=0
2017-06-22 21:01:10.661356899 +0000 UTC   /containers/delete   id=redis-dev
2017-06-22 21:01:12.876483098 +0000 UTC   /containers/create   id=redis image=docker.io/library/redis:alpine runtime=&ContainerCreate_Runtime{Name:io.containerd.runtime.v1.linux,Options:map[string]string{},}
2017-06-22 21:01:12.991848319 +0000 UTC   /tasks/create   id=redis
2017-06-22 21:01:13.005860842 +0000 UTC   /tasks/start   id=redis

Filter events by image:
$> ctr events -f image==docker.io/library/redis:alpine
2017-06-22 21:05:17.521391804 +0000 UTC   /images/update   name=docker.io/library/redis:alpine labels=map[]
2017-06-22 21:05:48.181069837 +0000 UTC   /images/delete   name=docker.io/library/redis:alpine

Filter events by type:
$> ctr events -f type==TaskStart
2017-06-22 21:07:56.809160013 +0000 UTC   /tasks/start   id=redis
2017-06-22 21:08:03.285250497 +0000 UTC   /tasks/start   id=redis-dev

This closes #1066

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1069   +/-   ##
=======================================
  Coverage   59.28%   59.28%
=======================================
  Files           5        5
  Lines         781      781
=======================================
  Hits          463      463
  Misses        204      204
  Partials      114      114

Continue to review full report at Codecov.

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

It would be good to use this new functionality in Task.Wait().
Perhaps a useful helper would be Container.Events() which wraps Client.Events() with a default container id filter? (Not sure about also suggesting Task.Events()).

Can you rebse?

Closing in favor of #1271.

👍


[BEAM-11794] Fixes a checkstyle error in UdfTestProvider

This cherry-pics https://github.com/apache/beam/pull/13959

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @apilloud


Display workspace number with icon

How could I make to workspace showing not only icon?

set strip_workspace_numbers no in your config.

Perhaps we could add this to the README or documentation? Unless it's there already and I just missed it like a dummy :sweat_smile:


Colors Support

Hello, is possible to add colors support ? The Command \color
https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Color

I Reopen Because I Cant Colorize A Segment Of Equation.


Move robot-agnostic code from herbrobot.py and adarobot.py to robot.py

@jeking04 and I spoke about this. There is a lot of robot-agnostic code in herbrobot.py that is duplicated in adarobot.py and likely timrobot.py. I suggest we move this all to robot.py and allow specific robots to override them if needed.
For example, [initializing the default planning pipeline] (https://github.com/personalrobotics/herbpy/blob/master/src/herbpy/herbrobot.py#L108), and [loading default TSRs from YAML] (https://github.com/personalrobotics/herbpy/blob/master/src/herbpy/herbrobot.py#L87).

Fixed in #97.


Documentation Build Failing

I created a new branch in which I did nothing but change the version number from 1.0.2 to 1.0.3. Creating a PR from this, #274, reveals that the documentation build is broken.

Downgrading the sphinx version to be <8 fixed my build locally.
Here's an example traceback from a local, failed build:
# Sphinx version:   8.1.3
# Python version:   3.12.7 (CPython)
# Docutils version: 0.21.2
# Jinja2 version:   3.1.4
# Pygments version: 2.18.0

# Last messages:
#   developers/testing
#
#
#   reading sources... [ 62%]
#   developers/utilities
#
#
#   reading sources... [ 65%]
#   examples/0_quickstart
#

# Loaded extensions:
#   sphinx.ext.mathjax (8.1.3)
#   alabaster (1.0.0)
#   sphinxcontrib.applehelp (2.0.0)
#   sphinxcontrib.devhelp (2.0.0)
#   sphinxcontrib.htmlhelp (2.1.0)
#   sphinxcontrib.serializinghtml (2.0.0)
#   sphinxcontrib.qthelp (2.0.0)
#   sphinx.ext.autodoc.preserve_defaults (8.1.3)
#   sphinx.ext.autodoc.type_comment (8.1.3)
#   sphinx.ext.autodoc.typehints (8.1.3)
#   sphinx.ext.autodoc (8.1.3)
#   sphinx.ext.autosummary (8.1.3)
#   sphinx.ext.napoleon (8.1.3)
#   sphinxcontrib.jquery (4.1)
#   sphinx_rtd_theme (unknown version)
#   nbsphinx (0.9.5)
#   sphinx.ext.linkcode (8.1.3)
#   sphinx_design (0.6.1)
#   sphinxcontrib.autoprogram (unknown version)
#   autodocsumm (8.1.3)

# Traceback:
Traceback (most recent call last):
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/cmd/build.py", line 514, in build_main
    app.build(args.force_all, args.filenames)
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/application.py", line 381, in build
    self.builder.build_update()
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 358, in build_update
    self.build(
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 385, in build
    updated_docnames = set(self.read())
                           ^^^^^^^^^^^
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 502, in read
    self._read_serial(docnames)
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 567, in _read_serial
    self.read_doc(docname)
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 630, in read_doc
    publisher.publish()
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/docutils/core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/sphinx/io.py", line 106, in read
    self.parse()
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/nbsphinx/__init__.py", line 667, in parse
    env.config.nbsphinx_prolog).render(env=env)
                                ^^^^^^^^^^^^^^^
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render
    self.environment.handle_exception()
  File "/home/kmdalton/opt/anaconda/envs/blah/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 2, in top-level template code
TypeError: can only concatenate str (not "_StrPath") to str

resolved in #273


Cop idea: define index inline when defining columns

Is your feature request related to a problem? Please describe.
When creating a new table, the column definition can accept the index options inline. From the rails guide:
create_table :users do |t|
  t.string :name, index: true
  t.string :email, index: { unique: true, name: 'unique_emails' }
end

But nothing stops people from writing the index separately:
create_table :users do |t|
  t.string :name
  t.string :email
  t.index :name
  t.index :email, unique: true, name: 'unique_emails'
end

Describe the solution you'd like
Would be nice to have a cop that force the inline style.
Notes:

we have to check which version of Rails started supporting this
it might not be possible to do this in change_table (?) EDIT: seems to work fine with change_table as well.
t.index is still required if the index is on more than one column

Is there a benefit here of enforcing either style? Since this is used in "throwaway no one cares the styles" migrations.


Can envoy support a build process without bazel?

cmake/make
go build
There are common ways to build binaries, and bazel is an absolute nightmare with legacy dependencies abound and a slew of unnecessary inclusions for specific project needs.
Can we please get a more security focused and simpler method to build code with the compilers for the appropriate code and a true list of necessary dependencies vs these bloated build environments that do not keep their dependencies up to date?
When trying to do a CentOS dev build to compile an envoy binary, the following always happens:
[rpmbuild@localhost envoy-1.14.2]$ bazel build --verbose_failures //source/exe:envoy-static
WARNING: The following rc files are no longer being read, please transfer their contents or import their path into one of the standard rc files:
/home/rpmbuild/nimbus8/envoy-build/envoy-1.14.2/tools/bazel.rc
INFO: Analyzed target //source/exe:envoy-static (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: Process exited with status 1
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Target //source/exe:envoy-static failed to build
INFO: Elapsed time: 0.620s, Critical Path: 0.06s
INFO: 0 processes.
FAILED: Build did NOT complete successfully
This build process is not intuitive at all. Bazel is more painful than helpful in this process.

We will not support a non-bazel build system. I would suggest following up with Bazel if you have Bazel specific feature requests and if there are specific things we can improve on the Envoy side feel free to open issues here.