Representation of undefined/exceptional values in canonical-data.json

The current instructions in the readme recommend using -1 to indicate an exception.

expected: the expected result (this would be -1 when we expect an exception)

Is '-1' the best value to be using? I think that null would be a better value to use to indicate an exceptional or undefined result.
Discuss.

I don't think null is a very language neutral value to indicate an undefined or exceptional result. Some languages do not have a null value. And for languages that do, I would personally go to great lengths to avoid returning null, as it promotes a bad practise.
Furthermore I think that undefined and exceptional values are representing two different things. Something can be undefined, without being an exception. I would opt for having different conventions for the two cases

It is up to the language tracks to implement undefined and exceptional values in the most appropriate manner for their language.
Using a null value in the json does not mean that the language needs to use null.

Using a null value in the json does not mean that the language needs to use null.

That is certainly true. But I still have the same objections. Let's say that someone wants to port an exercise to a language with null. If that person looks at the canonical data and sees a null, they could assume that it is an actual requirement to return an explicit null. You would have to about the convention that null doesn't mean null but either throw an exception or signal provide an undefined answer, which ever is appropriate for the target language.
I would rather see that the JSON is more self contained. That is doesn't rely on conventions and mores, but that it makes sense on its own.

I think this is a "Tabs vs Spaces" thing. It depends. As long as the description in the JSON file describes what's expected, I think it's fine.

The C programmer that still lives inside of me thinks that -1 is perfect.
The Haskell one is screaming that this is so $&#*<^%... well, let's just say that he favors null but misses Maybe.
The problem with using -1 is that we are encoding an error as a standard value, and this makes it impossible to distinguish it from a valid negative value.
Of course, there is the risk of someone misinterpreting a null, as @dvberkel mentioned, but there is the same risk with -1.
At least null is a special value in JSON...

I mostly care about this when a language that wishes to write an automated test generator expects that all values at, say, expected are all the same type. Mixing some non-numeric type and -1 would cause trouble then, possibly causing the generator of that language to be unable to parse the JSON file! Then again, null could cause trouble as well for the same reason.
I don't have any specific recommendations to make since I'm not working on any generators right now. But I do want to point this out since I want our future designs to be as amenable to generators as possible.

The JSON spec is silent on this issue.  It's basically leaves to the parties involved to agree on some convention (insert @IanWhitney 's comment here).
JSON Schema essentially relies on a set of JSON keys that are treated like keywords (e.g the "type" key in { "type": "string" } or "enum" key in { "colors": { "enum": [ "red", "green", "peachpuff"...] } }).
JSON-based APIs rely on a similar scheme: the presence of an "error" key implies that the object represents an error/exception.

Straw man:
For test cases where an exception/error is expected, represent this as thus:
{
  "description": "garbage input",
  "input": "100$#^0002",
  "expected": {
    "error": {
      "message": "Invalid input."
    }
}

...where the presence of such an object implies that an error or exception should be expected by the corresponding test case.  The value of "message" is not to be taken literally.

I like @jtigger's solution best: encode the error case as a completely different object. That makes the -1 and null are actually valid values problem completely go away. If I did have to choose, my preference would be to use null.

To be useful for test generators, we could agree on this exact shape:

an object containing exactly one property named error;
which contains an object containing exactly one property named message whose content is a string.

Would an error string indicate that the test should check for an exception (or Either return value in languages like haskell) with the given message?

I was thinking about

The value of "message" is not to be taken literally.

If that means what I think it means, I think I agree. I generally think it is strange to test for an exact string in an error message, since it leaves a risk that the tests will break if I need to change the string.
But then you ask, how do I check that the code is giving back the correct error? Well, if strings are involved, I'd be OK with testing that the string contains some essential part of the error. Gives back a little bit of risk of breakage, but gives a bit of assurance.
Or if the language in question has discriminated variants, I could have something like type error = WindowTooLarge | WindowNegative | InputContainsNonDigits and see that the error is the correct one of those three variants. The display layer can choose how to present those errors to the user separately from the tests that check we're giving back the right error.
Okay, you say, those considerations are more important when writing code that may need to change from time to time and present error messages to its users, but does it translate to Exercism?
Well I do like to instill habits that I think are representative (obvious caveat that what I think is representative might not actually be!). But I can tell you what the tracks that I'm involved in tend to do:

Go: check that the error is non-nil, and that it is indeed of type error, don't check the value of Error()
Haskell: check Data.Either.isLeft,  don't check the value contained in the Left.
Rust: check Result#is_err and don't check the value contained in the Err.

I thought interested parties should know that the proposal:

An object containing exactly one property named error which contains a string.

Is being used in #336 and thus #551.

Oh, honestly I should have marked #551 as "Closes #401", since the latest proposal in here has been made official... though note that null is a separate possibility from {"error": ...} for cases where it makes a difference.


docs(rbac): remove a page that is by default not used in kong-mesh

Description

I'm removing the https://docs.konghq.com/mesh/latest/production/secure-deployment/api-access-control/ page that in Kong Mesh is handled by https://docs.konghq.com/mesh/latest/features/rbac/. This is an alternative to https://github.com/kumahq/kuma-website/pull/1784.

Testing instructions
Preview link:
Checklist

[X] Review label added
[X] Conditional version tags added, if applicable.

@slonka Would it be helpful to also add a redirect link from /mesh/:version/production/secure-deployment/api-access-control/ to /mesh/:version/features/rbac/?

Would it be helpful to also add a redirect link from /mesh/:version/production/secure-deployment/api-access-control/ to /mesh/:version/features/rbac/?

there shouldn't be anything linking to that but that won't hurt


Final directory for css

Have you been able to solve the problem that seems to have been left by https://github.com/mgechev/angular2-seed/wiki/Add-custom-Gulp-task in that the final css is in the src directory and not in dist?

Nope. I tried 3 options:

Use Sass files in styleUrls and in-line them during the build. This made the build very complex and deviate heavily from angular2-seed. This would be difficult to keep in sync with the parent project.
Use a temp directory for all preprocessed files and run the dev environment from this directory. Unfortunately, this would mean copying everything to the temp directory, increasing the build time and making the dev process very inefficient.
Preprocess Sass files in place, leaving them in the src directory. I add .css to .gitignore so that these files don't get checked in accidentally. It also assumes that we don't have .css in source - which seems to be a reasonable assumption if we are using Sass anyway.

I finally settled on solution 3. It is a compromise, but better that solutions 1 and 2, I feel.

Wow-how complicated that is.
Does option 3 mean there is though a final built CSS file to deploy?
On 17 Mar 2016 10:29 am, "Naresh Bhatia"<EMAIL_ADDRESS>wrote:

Nope. I tried 3 options:

Use Sass files in styleUrls and in-line them during the build. This
made the build very complex and deviate heavily from angular2-seed. This
would be difficult to keep in sync with the parent project.
Use a temp directory for all preprocessed files and run the dev
environment from this directory. Unfortunately, this would mean copying
everything to the temp directory, increasing the build time and making the
dev process very inefficient.
Preprocess Sass files in place, leaving them in the src directory.
I add .css to .gitignore so that these files don't get checked in
accidentally. It also assumes that we don't have .css in source -
which seems to be a reasonable assumption if we are using Sass anyway.

I finally settled on solution 3. It is a compromise, but better that
solutions 1 and 2, I feel.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/archfirst/angular2-seed-sass/issues/1#issuecomment-197787436

Yes. The prod build will do that: npm run build.prod


Files not copied in the tmp directory for gordon run

Run the telegram api example with gordon run
fs.js:549
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open '.context'

This happens because the .context file is not copied to the temporary directory created by gordon to run locally the script and
var gordon_context = JSON.parse(fs.readFileSync('.context', 'utf8'));

fails.
I modified the bot not to read the token from .context. I pass the token directly in the new TelegramBot(token) constructor and it works, both locally and on AWS.

Hello @pmontrasio yes... that is the case unfortunately :(
Few days ago @lukemelia suggested something similar in https://github.com/jorgebastida/gordon/issues/29
My plan is to make this possible as part of 0.3 as soon as I fix some of the most obvious bugs already raised for 0.2.x.


(Wireguard) tcpdump shows packets coming but connected devices get no internet access

In raising this issue, I confirm the following:

[X] I have read the documentation
[ ] Is it a feature request? please consider opening a [Discussion] (https://github.com/pivpn/pivpn/discussions/new)
[X] I have read and understood the contributors guide.
[ ] The issue I am reporting can be replicated.
[ ] The issue I am reporting is directly related to the pivpn installer script.
[X] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Has your install failed?
yes/[no]

Describe the issue
I installed pivpn (testing branch*) on a fresh Raspberry Pi Os installation; the install ends successfully and I am able to add a client and generate a qr code for it (an iPhone, in my case). Once I connect to the VPN, however, I am unable to access my network.
I used an app to ping my gateway, my Raspberry Pi and any website, but nothing goes through.
*Note: I installed pivpn from the testing branch because I was getting errors about setting up a static IP address when installing normally, and I read in other issues that this could be a solution (and it is).
Have you searched for similar issues and solutions?
([yes]/no / which issues?)

Have you taken any steps towards solving your issue?
I tried uninstalling and reinstalling everything a few times and then I tried with different settings (e.g. different ports, different DNS, no DDNS; empty “Allowed IPs” field or “Exclude private IPs” enabled on the client) but nothing works. These are my first attempts at installing a VPN on a Raspberry Pi, since the device itself is new, so I could be missing something obvious.

`pivpn -c` shows the client as connected.

I followed the FAQs on docs.pivpn.io and every step checks out, including the tcpdump (at least as far as I’m understanding it?).
Here is the output of that command, as root:

> tcpdump -n -i eth0 udp port 11940
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:41:18.362390 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362398 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362631 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362636 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362639 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 112
13:41:18.362643 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 112
13:41:18.362646 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362649 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362652 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362818 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.362823 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:18.366246 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 112
13:41:18.368603 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 352
13:41:18.373159 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 192
13:41:18.374601 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 160
13:41:18.375348 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 288
13:41:18.376095 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 352
13:41:18.378511 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 112
13:41:18.378966 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 224
13:41:18.379449 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 208
13:41:18.380209 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 224
13:41:18.381062 IP <IP_ADDRESS>.11940 > REDACTED: UDP, length 352
13:41:20.374367 IP  REDACTED > <IP_ADDRESS>.11940: UDP, length 96
13:41:20.374373 IP REDACTED > <IP_ADDRESS>.11940: UDP, length 96
(…)
^C
59 packets captured
59 packets received by filter
0 packets dropped by kernel

Please provide your system information
What type of hardware are you running PiVPN at?

Raspberry Pi 4 Model B

Output of uname -a
Linux nespi 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux

Output of cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

If install failed Please provide the console output of  curl -L https://install.pivpn.io | bash
  install did not fail

Console output of      curl -L install.pivpn.io | bash
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    17  100    17    0     0     96      0 --:--:-- --:--:-- --:--:--    97
100   162  100   162    0     0    375      0 --:--:-- --:--:-- --:--:--   375
[100 92976](tel:100 92976)  [100 92976](tel:100 92976)    0     0   106k      0 --:--:-- --:--:-- --:--:--  524k
:::
::: sudo will be used for the install.
::: Repair option selected.
::: Hostname length OK
::: Verifying free disk space...
:::
::: Package Cache update is needed, running apt-get update -y ...
 done!
:::
::: Checking apt-get for upgraded packages.... done!
:::
::: Your system is up to date! Continuing with PiVPN installation...
:::    Checking for git... already installed!
:::    Checking for tar... already installed!
:::    Checking for curl... already installed!
:::    Checking for grep... already installed!
:::    Checking for dnsutils... already installed!
:::    Checking for grepcidr... already installed!
:::    Checking for whiptail... already installed!
:::    Checking for net-tools... already installed!
:::    Checking for bsdmainutils... already installed!
:::    Checking for bash-completion... already installed!
:::    Checking for iptables-persistent... already installed!
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
::: PiVPN Automated Installer
::: This installer will transform your Debian host into an OpenVPN or WireGuard server!
::: Initiating network interface
::: Enable forced IPv6 route with no IPv6 uplink on server.
::: Using interface: eth0 for IPv4
::: Since we think you are not using Raspbian, we will not configure a static IP for you.
::: nes will hold your ovpn configurations.
:::
::: Checking for existing base files...
:::    Checking /usr/local/src/pivpn is a repo... OK!
::: Repairing an existing installation, not downloading/updating local repos
::: WireGuard will be installed
::: Installing WireGuard from Debian package...
:::    Checking for wireguard-tools... already installed!
:::    Checking for qrencode... already installed!
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
::: Using port 11940
::: Using DNS <IP_ADDRESS> <IP_ADDRESS>
dig failed, now trying to curl checkip.amazonaws.com
::: Using domain name REDACTED
::: Backing up the wireguard folder to /etc/wireguard_2022-05-13-135142.tar.gz
::: The Server Keys will now be generated.
::: Server Keys have been generated.
::: Server config generated.
::: Install Complete...
::: Restarting services...
::: Enabling unattended upgrades
:::    Checking for unattended-upgrades... already installed!
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
::: Setupfiles copied to /etc/pivpn/wireguard/setupVars.conf
::: Installing scripts to /opt/pivpn...
 done.
::: Flushing writes to disk...
::: done.
::: Installation Complete!
::: Now run 'pivpn add' to create the client profiles.
::: Run 'pivpn help' to see what else you can do!

::: If you run into any issue, please read all our documentation carefully.
::: All incomplete posts or bug reports will be ignored or deleted.

::: Thank you for using PiVPN.
::: It is strongly recommended you reboot after installation.
:::

Console output of      pivpn debug

::: Generating Debug Output
::::            PiVPN debug              ::::
=============================================
::::            Latest commit            ::::
Branch: test
Commit: a5e41c466fd9539dcbfaaee4ca13853fca87e107
Author: Orazio
Date: Tue May 3 17:14:31 2022 +0200
Summary: Use easy-rsa commit 8d1be1c instead of release 3.0.7 for OpenSSL 3 support.
=============================================
::::        Installation settings        ::::
PLAT=Debian
OSCN=bullseye
USING_UFW=0
pivpnforceipv6route=1
IPv4dev=eth0
install_user=nes
install_home=/home/nes
VPN=wireguard
pivpnPORT=11940
pivpnDNS1=<IP_ADDRESS>
pivpnDNS2=<IP_ADDRESS>
pivpnHOST=REDACTED
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=1
INPUT_CHAIN_EDITEDv6=
FORWARD_CHAIN_EDITEDv6=
pivpnPROTO=udp
pivpnMTU=1420
pivpnDEV=wg0
pivpnNET=<IP_ADDRESS>
subnetClass=24
pivpnenableipv6=0
ALLOWED_IPS="<IP_ADDRESS>/0, ::0/0"
UNATTUPG=1
INSTALLED_PACKAGES=(dnsutils grepcidr bsdmainutils iptables-persistent wireguard-tools qrencode unattended-upgrades)
=============================================
::::  Server configuration shown below   ::::
[Interface]
PrivateKey = server_priv
Address = <IP_ADDRESS>/24
MTU = 1420
ListenPort = 11940
### begin test ###
[Peer]
PublicKey = test_pub
PresharedKey = test_psk
AllowedIPs = <IP_ADDRESS>/32
### end test ###
=============================================
::::  Client configuration shown below   ::::
[Interface]
PrivateKey = test_priv
Address = <IP_ADDRESS>/24
DNS = <IP_ADDRESS>, <IP_ADDRESS>

[Peer]
PublicKey = server_pub
PresharedKey = test_psk
Endpoint = REDACTED:11940
AllowedIPs = <IP_ADDRESS>/0, ::0/0
=============================================
::::    Recursive list of files in       ::::
::::    /etc/wireguard shown below       ::::
/etc/wireguard:
configs
keys
wg0.conf

/etc/wireguard/configs:
clients.txt
test.conf

/etc/wireguard/keys:
server_priv
server_pub
test_priv
test_psk
test_pub
=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] Iptables FORWARD rule set
:: [OK] WireGuard is running
:: [OK] WireGuard is enabled (it will automatically start on reboot)
:: [OK] WireGuard is listening on port 11940/udp
=============================================
:::: Having trouble connecting? Take a look at the FAQ:
:::: https://docs.pivpn.io/faq
=============================================
:::: WARNING: This script should have automatically masked sensitive       ::::
:::: information, however, still make sure that PrivateKey, PublicKey      ::::
:::: and PresharedKey are masked before reporting an issue. An example key ::::
:::: that you should NOT see in this log looks like this:                  ::::
:::: YIAoJVsdIeyvXfGGDDadHh6AxsMRymZTnnzZoAb9cxRe                          ::::
=============================================
::::            Debug complete           ::::
:::
::: Debug output completed above.
::: Copy saved to /tmp/debug.log
:::

I would say DNS, but since not even ping works, I think the Raspberry Pi is not forwarding the traffic, so post the output of sudo iptables -vnL FORWARD

Thanks for answering, here’s the output:
Chain FORWARD (policy DROP 0 packets, 0 bytes)  pkts bytes target     prot opt in     out     source               destination              0     0 DOCKER-USER  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0                0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0                0     0 ACCEPT     all  --  *      docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED     0     0 DOCKER     all  --  *      docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0                0     0 ACCEPT     all  --  docker0 !docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0                0     0 ACCEPT     all  --  docker0 docker0  <IP_ADDRESS>/0            <IP_ADDRESS>/0                0     0 ACCEPT     all  --  eth0   wg0     <IP_ADDRESS>/0            <IP_ADDRESS>/24        ctstate RELATED,ESTABLISHED /* wireguard-forward-rule */     0     0 ACCEPT     all  --  wg0    eth0    <IP_ADDRESS>/24        <IP_ADDRESS>/0            /* wireguard-forward-rule */

It may be that the DOCKER-USER and DOCKER-ISOLATION-STAGE-1 chains are dropping packets. The easiest way to fix is to delete the wireguard rules and insert them back to the top to maximize the priority:
Delete:
sudo iptables -D FORWARD -d <IP_ADDRESS>/24 -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "wireguard-forward-rule"
sudo iptables -D FORWARD -s <IP_ADDRESS>/24 -i wg0 -o eth0 -j ACCEPT -m comment --comment "wireguard-forward-rule"

Insert:
sudo iptables -I FORWARD 1 -d <IP_ADDRESS>/24 -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "wireguard-forward-rule"
sudo iptables -I FORWARD 2 -s <IP_ADDRESS>/24 -i wg0 -o eth0 -j ACCEPT -m comment --comment "wireguard-forward-rule"

Done. Running the previous command shows the changed output (those two lines are now in first and second position) but I still get no internet access (tried pinging, browsing and all that).

Can you try tcpdump over the virtual infervace while pinging <IP_ADDRESS>? sudo tcpdump -n -i wg0

Yes I was pinging from my configured client (the iPhone) and those were the outputs of the tcpdump command on the Pi.
Also actually, in the meantime I was cleaning up some stuff on the Pi and looking up other things and while I was doing that the VPN actually worked for a minute or so lol
I was able to ping my gateway and everything else from my phone, and when I looked up my public IP on a generic website it was the same public IP that my ethernet-connected home computer gets, not the one I get on mobile data.
Temporary success!
However, after a minute or so of me gloating it's back to not working again. I'm not sure what's happening here.
Visiting <IP_ADDRESS> from the client is back to not working at all, too.

Yes I was pinging from my configured client (the iPhone) and those were the outputs of the tcpdump command on the Pi.

The tcpdump log is showing the following:
18:02:37.426851 IP <IP_ADDRESS>> <IP_ADDRESS>: ICMP echo request, id 12992, seq 2, length 64
Which means that <IP_ADDRESS> (the virtual IP of the raspberry pi) is pinging <IP_ADDRESS>, while you iphone is <IP_ADDRESS>, assuming it is test in the debug log.

However, after a minute or so of me gloating it's back to not working again.

It could be that the NAT session on the router is expiring and the iphone is not doing the handshake anymore, but that would be a bug in the Apple VPN framework or wireguard, can you check wireguard logs on the iphone (they are in the app)?

I was trying stuff in the wg0.conf and added a PersistentKeepalive=25 option in the Peer settings of my client and it looks like it worked for a moment after that

Usually this is not needed for a roaming client, since it will just perform the handshake on demand, and keeping a connection open uses more battery.
If you just turn off and turn back on the VPN when it stops working, does it start working again?

Which means that <IP_ADDRESS> (the virtual IP of the raspberry pi) is pinging <IP_ADDRESS>, while you iphone is <IP_ADDRESS>, assuming it is test in the debug log.

I'm not sure what happened there to be honest, because I was pinging from the app on my phone, that yes, is called "test" in the debug log.
I've tried the command once more, not sure if it's still relevant but here are the results:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wg0, link-type RAW (Raw IP), snapshot length 262144 bytes
19:02:46.541718 IP <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 18867, seq 7, length 64
19:02:46.541823 IP <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 18867, seq 7, length 64
19:02:46.812200 IP <IP_ADDRESS>.53077 > <IP_ADDRESS>.53: 38149+ Type65? gateway.icloud.com. (36)
19:02:46.812398 IP <IP_ADDRESS>.51746 > <IP_ADDRESS>.53: 29397+ A? gateway.icloud.com. (36)
19:02:46.823461 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.53077: 38149 1/1/0 CNAME gateway.fe.apple-dns.net. (144)
19:02:46.824138 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.51746: 29397 9/0/0 CNAME gateway.fe.apple-dns.net., A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS> (202)
19:02:47.551475 IP <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 18867, seq 8, length 64
19:02:47.551570 IP <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 18867, seq 8, length 64
19:02:47.731619 IP <IP_ADDRESS>.63221 > <IP_ADDRESS>.53: 63490+ A? apple.com. (27)
19:02:47.731752 IP <IP_ADDRESS>.60967 > <IP_ADDRESS>.53: 21707+ Type65? securepubads.g.doubleclick.net. (48)
19:02:47.732545 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.63221: 63490 1/0/0 A <IP_ADDRESS> (43)
19:02:47.738946 IP <IP_ADDRESS>.49558 > <IP_ADDRESS>.53: 37902+ A? securepubads.g.doubleclick.net. (48)
19:02:47.738946 IP <IP_ADDRESS>.64602 > <IP_ADDRESS>.53: 53645+ Type65? f0480d9778d90f89c600291bdc493650.safeframe.googlesyndication.com. (82)
19:02:47.739116 IP <IP_ADDRESS>.59283 > <IP_ADDRESS>.53: 31762+ A? f0480d9778d90f89c600291bdc493650.safeframe.googlesyndication.com. (82)
19:02:47.739116 IP <IP_ADDRESS>.50467 > <IP_ADDRESS>.53: 15299+ Type65? outlook.live.com. (34)
19:02:47.739116 IP <IP_ADDRESS>.51633 > <IP_ADDRESS>.53: 3769+ A? outlook.live.com. (34)
19:02:47.739116 IP <IP_ADDRESS>.62617 > <IP_ADDRESS>.53: 15561+ Type65? www.wired.it. (30)
19:02:47.739410 IP <IP_ADDRESS>.53007 > <IP_ADDRESS>.53: 64291+ A? www.wired.it. (30)
19:02:47.739410 IP <IP_ADDRESS>.64767 > <IP_ADDRESS>.53: 43584+ Type65? www.google.it. (31)
19:02:47.739411 IP <IP_ADDRESS>.49628 > <IP_ADDRESS>.53: 48683+ A? www.google.it. (31)
19:02:47.739411 IP <IP_ADDRESS>.57567 > <IP_ADDRESS>.53: 44318+ Type65? in.appcenter.ms. (33)
19:02:47.739411 IP <IP_ADDRESS>.54982 > <IP_ADDRESS>.53: 54267+ A? in.appcenter.ms. (33)
19:02:47.739411 IP <IP_ADDRESS>.50655 > <IP_ADDRESS>.53: 10890+ A? www.google.com. (32)
19:02:47.739411 IP <IP_ADDRESS>.62145 > <IP_ADDRESS>.53: 30819+ Type65? googleads.g.doubleclick.net. (45)
19:02:47.739411 IP <IP_ADDRESS>.53005 > <IP_ADDRESS>.53: 25634+ A? googleads.g.doubleclick.net. (45)
19:02:47.739733 IP <IP_ADDRESS>.56102 > <IP_ADDRESS>.53: 52826+ A? app-measurement.com. (37)
19:02:47.739733 IP <IP_ADDRESS>.52537 > <IP_ADDRESS>.53: 62543+ A? https://app-measurement.com/sdk-exp. (53)
19:02:47.739734 IP <IP_ADDRESS>.59639 > <IP_ADDRESS>.53: 7597+ Type65? pagead2.googlesyndication.com. (47)
19:02:47.739734 IP <IP_ADDRESS>.59968 > <IP_ADDRESS>.53: 25427+ A? pagead2.googlesyndication.com. (47)
19:02:47.739734 IP <IP_ADDRESS>.59366 > <IP_ADDRESS>.53: 2062+ Type65? api.techet.net. (32)
19:02:47.739734 IP <IP_ADDRESS>.51537 > <IP_ADDRESS>.53: 27544+ A? api.techet.net. (32)
19:02:47.739914 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.49558: 37902 2/0/0 CNAME partnerad.l.doubleclick.net., A <IP_ADDRESS> (105)
19:02:47.741188 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.59283: 31762 2/0/0 CNAME pagead-googlehosted.l.google.com., A <IP_ADDRESS> (144)
19:02:47.742381 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.60967: 21707 1/1/0 CNAME partnerad.l.doubleclick.net. (134)
19:02:47.749918 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.64602: 53645 1/1/0 CNAME pagead-googlehosted.l.google.com. (175)
19:02:47.750137 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.49628: 48683 1/0/0 A <IP_ADDRESS> (47)
19:02:47.751293 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.50467: 15299 4/1/0 CNAME outlook.office365.com., CNAME outlook.ha.office365.com., CNAME outlook.ms-acdc.office.com., CNAME MRS-efz.ms-acdc.office.com. (219)
19:02:47.752442 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.51633: 3769 8/0/0 CNAME outlook.office365.com., CNAME outlook.ha.office365.com., CNAME outlook.ms-acdc.office.com., CNAME MRS-efz.ms-acdc.office.com., A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS>, A <IP_ADDRESS> (214)
19:02:47.752674 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.50655: 10890 1/0/0 A <IP_ADDRESS> (48)
19:02:47.752981 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.62617: 15561 1/1/0 CNAME cni-digital.map.fastly.net. (131)
19:02:47.754153 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.53007: 64291 2/0/0 CNAME cni-digital.map.fastly.net., A <IP_ADDRESS> (86)
19:02:47.754357 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.53005: 25634 1/0/0 A <IP_ADDRESS> (61)
19:02:47.754608 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.56102: 52826 1/0/0 A <IP_ADDRESS> (53)
19:02:47.756468 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.59968: 25427 1/0/0 A <IP_ADDRESS> (63)
19:02:47.757565 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.51537: 27544 2/0/0 CNAME ghs.googlehosted.com., A <IP_ADDRESS> (82)
19:02:47.777146 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.62145: 30819 0/1/0 (105)
19:02:47.777292 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.57567: 44318 2/1/0 CNAME in2-prod-east-us2-23fa330.trafficmanager.net., CNAME in2-gw2-01-ce7dd027.eastus2.cloudapp.azure.com. (221)
19:02:47.777473 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.54982: 54267 3/0/0 CNAME in2-prod-east-us2-23fa330.trafficmanager.net., CNAME in2-gw2-01-ce7dd027.eastus2.cloudapp.azure.com., A <IP_ADDRESS> (167)
19:02:47.777658 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.52537: 62543 NXDomain 0/1/0 (128)
19:02:47.777803 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.59639: 7597 0/1/0 (104)
19:02:47.778370 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.64767: 43584 0/1/0 (91)
19:02:47.778496 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.59366: 2062 1/1/0 CNAME ghs.googlehosted.com. (123)
19:02:47.871524 IP <IP_ADDRESS>.61796 > <IP_ADDRESS>.53: 41810+ PTR? <IP_ADDRESS>.in-addr.arpa. (42)
19:02:47.881875 IP <IP_ADDRESS>.53 > <IP_ADDRESS>.61796: 41810 NXDomain 0/1/0 (119)
^C
54 packets captured
54 packets received by filter
0 packets dropped by kernel

It could be that the NAT session on the router is expiring and the iphone is not doing the handshake anymore, but that would be a bug in the Apple VPN framework or wireguard, can you check wireguard logs on the iphone (they are in the app)?

Luckily I took a screenshot at the time the VPN was working, so here are the Wireguard logs at that exact time:
(...)
2022-05-13 18:19:33.003512: [NET] peer(CsqG…0myU) - Sending handshake initiation
2022-05-13 18:19:38.179102: [NET] peer(CsqG…0myU) - Handshake did not complete after 5 seconds, retrying (try 2)
2022-05-13 18:19:38.179388: [NET] peer(CsqG…0myU) - Sending handshake initiation
2022-05-13 18:19:38.228227: [NET] peer(CsqG…0myU) - Received handshake response
2022-05-13 18:19:38.228460: [NET] peer(CsqG…0myU) - Sending keepalive packet
2022-05-13 18:21:55.748051: [NET] peer(CsqG…0myU) - Sending handshake initiation
2022-05-13 18:21:56.092121: [NET] peer(CsqG…0myU) - Received handshake response
2022-05-13 18:21:56.092313: [NET] peer(CsqG…0myU) - Sending keepalive packet

2022-05-13 18:21:56.840635: [NET] Network change detected with satisfied route and interface order [pdp_ip0, utun2]
2022-05-13 18:21:56.841839: [NET] DNS64: mapped <IP_ADDRESS> to itself.
2022-05-13 18:21:56.842157: [NET] peer(CsqG…0myU) - UAPI: Updating endpoint
2022-05-13 18:21:56.842386: [NET] Routine: receive incoming v4 - stopped
2022-05-13 18:21:56.842427: [NET] Routine: receive incoming v6 - stopped
2022-05-13 18:21:56.842692: [NET] UDP bind has been updated
2022-05-13 18:21:56.842925: [NET] peer(CsqG…0myU) - Sending keepalive packet
2022-05-13 18:21:56.842957: [NET] Routine: receive incoming v4 - started
2022-05-13 18:21:56.843044: [NET] Routine: receive incoming v6 - started
2022-05-13 18:21:59.605094: [NET] Network change detected with satisfied route and interface order [pdp_ip0, utun2]
2022-05-13 18:21:59.606255: [NET] DNS64: mapped <IP_ADDRESS> to itself.
2022-05-13 18:21:59.606651: [NET] peer(CsqG…0myU) - UAPI: Updating endpoint
2022-05-13 18:21:59.607020: [NET] Routine: receive incoming v4 - stopped
2022-05-13 18:21:59.607216: [NET] Routine: receive incoming v6 - stopped
2022-05-13 18:21:59.607648: [NET] UDP bind has been updated
2022-05-13 18:21:59.607734: [NET] Routine: receive incoming v4 - started
2022-05-13 18:21:59.607781: [NET] peer(CsqG…0myU) - Sending keepalive packet
2022-05-13 18:21:59.607846: [NET] Routine: receive incoming v6 - started

2022-05-13 18:23:22.745841: [NET] peer(CsqG…0myU) - Receiving keepalive packet
2022-05-13 18:23:47.588631: [NET] peer(CsqG…0myU) - Receiving keepalive packet
2022-05-13 18:25:49.853450: [NET] peer(CsqG…0myU) - Sending handshake initiation
2022-05-13 18:25:50.185792: [NET] peer(CsqG…0myU) - Received handshake response
2022-05-13 18:26:05.228273: [NET] peer(CsqG…0myU) - Retrying handshake because we stopped hearing back after 15 seconds
(...)

If you just turn off and turn back on the VPN when it stops working, does it start working again?

Unfortunately it does not.

Oh, thank you! :) I didn't know that, I'm still new at the whole GitHub thing.
I went all the way down to an MTU value of 1000 but got nothing. Should I keep trying with even lower values?

Should I keep trying with even lower values?

No just turn it back on to automatic. Lowering the MTU can fix some issues with networks that are unable to carry bigger packets, but 1000 is quite low.
Can you summarize what works all the time - only occasionally - never, when doing the following tests, possibly trying different networks too?

Ping <IP_ADDRESS>
Ping <IP_ADDRESS>
Load http://<IP_ADDRESS>
Load some websites.
Downloading 100 MB or so( to check how stable it is).

Never (only worked once)
Never (only worked once)
Never (only worked once)
Never (only worked once)
Never tried it and the VPN never worked after that one time it did so I can’t even test it right now

1 to 4 all refer to the same instance that happened in the Wireguard logs on my iPhone that I shared a few posts prior to this one.
With trying different networks you mean using different clients? I tried Wireguard on Windows a few hours ago but it still didn’t work.

With trying different networks you mean using different clients? I tried Wireguard on Windows a few hours ago but it still didn’t work.

No a network like public wifi, friend’s network, cellular network.

I tried a bit of everything and anything, but nothing worked.
I even tried setting up Wireguard manually by following a very in-depth guide (not sure if I can link to it, but here it is - if it needs to be removed I'll do it) but it just wouldn't work at all.
Then I tried reconfiguring pivpn and setting up OpenVPN, and that worked right out of the box.
Can I grab some info from how it's working and use that info to try a new Wireguard configuration, you think?

I even tried setting up Wireguard manually by following a very in-depth guide (not sure if I can link to it, but here it is - if it needs to be removed I'll do it) but it just wouldn't work at all.

There isn't much room for maneuver with wireguard itself, I think this is something that has to do with the network, that's why I've asked you to try another.

Can I grab some info from how it's working and use that info to try a new Wireguard configuration, you think?

No, openvpn and wireguard are fundamentally different.

Same my problem. No internet connect if I connect to PiVPN. Before it working normal after that I no any change configure but after few months it suddenly no internet accesses if I connect PiVPN. Now change to use OpenVN by PIVPN it working. Pls check WireGuard in PiPVN


tls_inspector: inline the recv in the onAccept

Description:
As discussed in #7864 this PR is the attempt to peek the socket at the invoke of onAccept.
Usually client_hello packet should be in the buffer when tls_inspector is peeking, we could save a poll cycle for this connection.
Once we agree on the solution I can apply to http_inspector as well.
The expecting latency improvement especially when poll cycle is large.
Benchmark:
Env:
hardware Intel(R) Xeon(R) CPU @ 2.20GHz
envoy: concurrency = 1, tls_inspector as listener filter. One tls filter chain, and one plain text filter chain.
load background: a sniper client with concurrency = 5 hitting the server with tls handshake, aiming to hit using the tls_filter chain. The qps is about 170/s
Another load client hitting the plain text filter chain but would go through tls_inspector with concurrency = 1
This PR:
TransactionTime:              10.3 - 11.0 ms(mean)
Master
TransactionTime:              12.3 - 12.8 ms(mean)
Risk Level: Med (ActiveSocket code is affected to adopt the side effect of onAccept)
Testing:
Docs Changes:
Release Notes:
Fixes #7864

CC @PiotrSikora @lizan

gentle ping @PiotrSikora @lizan

docs/build.sh doesn't fail on my env
/retest

@lizan @PiotrSikora Let me know what should I add to this PR

/retest envoy-macos
Maybe we should skip this test in macos

/retest

/azp run envoy-macos

call for help @lizan


drush commands no longer work with multisite

Previously, I was able to do this:
platform drush "cr -l mymultisite"
On 3.49.1, if I try and run the same command, I get this:
Command "cr -l mymultisite" is not defined.
I'm assuming this got broken in: https://github.com/platformsh/platformsh-cli/commit/5a3ab4dd666a5636d05afb4e4e009c6d63b23ddd
Happy to change my syntax if there is another way to do this.

Actually, I think more than just multisite is affected. Even the example command is not working for me:
platform drush user-login<EMAIL_ADDRESS>The "--mail" option does not exist.
platform --environment=develop drush 'user-login<EMAIL_ADDRESS>Command "user-login<EMAIL_ADDRESS>is not defined.

There is a workaround for your syntax before #861 can be released:
platform drush -- cr -l mymultisite

Great thanks. Might be good to get some test coverage on this if possible?

It would be good yes... for now it's fixed in version 3.49.2 (platform up to update)


Make sure distinct_id is set for all MixpanelTrack calls

@karantan: re-review pls, two more commits added


⚠ PrivateHD has degraded performance

In cd9d656, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1803 ms

Resolved: PrivateHD performance has improved in ee03b59.


Require Vagrant version 1.7.0 or later

Which introduced the config.ssh.insert_key option and enabled it by
default. We rely on this to replace the default insecure public key in the
concourse/lite AMI and we go to some additional effort in 67295ed to remove
any other keys.
You'll now get a more explanatory error message if you're using an older
version, rather than the following:
==> default: Mounting /var/vcap/data/garden on to ephemeral disk...
==> default: Setting up concourse basic auth as admin : ******
Permission denied (publickey).
Setting up SSH tunnel to concourse...
Permission denied (publickey).

Works.


fix: fixes metric control when changing viz type to tree chart

🐛 Bug Fix
Fixes https://github.com/apache/superset/issues/14654.
@villebro @rusackas

@michael-s-molina let's always include BEFORE and AFTER screenshot/video in each fix PR. thanks!! 🙏


Remove / refactory legacy code

Because this project is oriented around unity, I should reference unity types which will exist in all unity versions in the project rather than wrapping it over with nothing
Any extra functionality / ease of use / types that might not exist in unity I need will be in a wrapper


Fix kube-dns, it must be in kube-system namespace

Typo, the DNS ILB must be in kube-system.
NONE

/lgtm

@costinm this has not been picked up in 0.2.10 and its causing the tutorial to fail. Can you check why?
@sebastienvas

Yes it was not merged in when we did the release.


🚀 Feature: Re-enable FOSSA license scanning for CNCF compliance?

🔖 Feature description
Is there interest in continuing some of the work to enable Backstage's FOSSA license compliance scanning? I noticed there was a flag in the CNCF CLO Monitor site suggesting Backstage didn't yet align to this aspect.  Seems since its last attempt, the FOSSA config file has changed from v2 to v3, in addition the verify-fossa.yaml workflow was manually disabled.
Is there interest in having the community attempt to try to get this fixed up and working?  The FOSSA API Key is statically hardcoded in the repo, so open source contributors could help, but there may be other nuance I or the community am lacking which infers this was either intentionally dropped or should not be picked back up.
Just wanted to check?
Current CNCF CLO Monitor report for Backstage which could also be improved as part of this work (if FOSSA enabled):

🎤 Context
Originally attempted in Jan 2021:
FOSSA attempt was originally contributed by a member of CNCF: https://github.com/backstage/backstage/pull/4077
Then an attempt to improve it here: https://github.com/backstage/backstage/pull/4171
Workflow is currently disabled.
✌ Possible Implementation
Running FOSSA locally, I notice the config file versioning has changed to now be v3 so there may have been some significant CLI updates since this was last attempted.
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Yep let's try it again! 👍 It would be nice to have it enabled.

Is there any chance to add me to your Backstage FOSSA org account?  My user ID on FOSSA is<EMAIL_ADDRESS>I can see my own free account, but the permissions in FOSSA I believe are entirely separate than those through GitHub and have to be explicitly set.
If you feel like there's any risk in that absolutely no problem. I'll continue to just play around with my free account for now!

@martina-if Noticed you had opened an issue in the FOSSA project issues list (https://github.com/fossas/fossa-cli/issues/1111) for the same issue I'm seeing scanning the Backstage repo.
Wondering, were you able to work around it, or somehow mark the two packages which lack a scope (e.g., @backstage/) to be ignored in some way?
Error:
yarn project in "/Users/adaharve/Documents/github/backstage-backstage/": failed

>>> Relevant errors

  Error

    Couldn't find package for descriptor: Descriptor {descriptorScope = Nothing, descriptorName = "techdocs-cli-embedded-app", descriptorRange = "link:../techdocs-cli-embedded-app"}

    Traceback:
      - Validating lockfile
      - Lockfile V2 analysis
      - Project Analysis: YarnProjectType

  Error

    Couldn't find package for descriptor: Descriptor {descriptorScope = Nothing, descriptorName = "example-app", descriptorRange = "link:../app"}

    Traceback:
      - Validating lockfile
      - Lockfile V2 analysis
      - Project Analysis: YarnProjectType

Just for kicks, tried with the latest FOSSA CLI v3.8.4; same error, so the bug hasn't been patched yet.
Scan Summary
------------
fossa-cli version 3.8.34 (revision b78c3ba13e53 compiled with ghc-9.4)
fossa endpoint server version: N/A

6 projects scanned;  4 skipped,  1 succeeded,  1 failed,  1 analysis warning

* yarn project in "/Users/adamharvey/Documents/github/backstage/": failed
* npm project in "/Users/adamharvey/Documents/github/backstage/packages/cli/asset-types/": succeeded with 1 warning
* yarn project in "/Users/adamharvey/Documents/github/backstage/microsite/": skipped (exclusion filters)
* npm project in "/Users/adamharvey/Documents/github/backstage/packages/create-app/templates/default-app/examples/template/content/": skipped (non-production path filtering)
* npm project in "/Users/adamharvey/Documents/github/backstage/packages/eslint-plugin/src/__fixtures__/monorepo/": skipped (exclusion filters)
* yarn project in "/Users/adamharvey/Documents/github/backstage/storybook/": skipped (exclusion filters)
-
----------
yarn project in "/Users/adamharvey/Documents/github/backstage/": failed

>>> Relevant errors

  Error

    Couldn't find package for descriptor: Descriptor {descriptorScope = Nothing, descriptorName = "techdocs-cli-embedded-app", descriptorRange = "link:../techdocs-cli-embedded-app"}

    Traceback:
      - Validating lockfile
      - Lockfile V2 analysis
      - Project Analysis: YarnProjectType

  Error

    Couldn't find package for descriptor: Descriptor {descriptorScope = Nothing, descriptorName = "example-app", descriptorRange = "link:../app"}

    Traceback:
      - Validating lockfile
      - Lockfile V2 analysis
      - Project Analysis: YarnProjectType

----------
npm project in "/Users/adamharvey/Documents/github/backstage/packages/cli/asset-types/": succeeded with 1 warning

  Could not analyze edges between dependencies.

  Could not analyze deep dependencies.

  >>> Details

    We could not perform lockfile analysis for your nodejs project.

      Ensure valid lockfile exist and is readable prior to running fossa.
        For yarn package manager, you can perform: `yarn install` to install dependencies and generate lockfile.
        For node package manager, you can perform: `npm install` to install dependencies and generate lockfile.

    Refer to:
      - https://github.com/fossas/fossa-cli/blob/v3.8.34/docs/references/strategies/languages/nodejs/nodejs.md
      - https://docs.npmjs.com/cli/v8/configuring-npm/package-lock-json
      - https://classic.yarnpkg.com/lang/en/docs/yarn-lock/
      - https://yarnpkg.com/getting-started/qa#should-lockfiles-be-committed-to-the-repository

  Warning

    Lock files - yarn.lock or package-lock.json were not discovered.


cleanup(storage): Remove references of BucketPolicyOnly

Fixes: #3194
Fixes: #5613
BREAKING CHANGE

UniformBucketLevelAccess was known as BucketPolicyOnly during the beta.
For compatibility the C++ Cloud Storage library supported both, however
BucketPolicyOnly is now completely removed.

Making a new one because of force push.

This change is

I am running into unexplainable protobuf errors and I'm too sick to debug right now. Feel free to close this and take over the PR if you wish.

I am running into unexplainable protobuf errors and I'm too sick to debug right now. Feel free to close this and take over the PR if you wish.

Ack, I will take a look.

Ack, I will take a look.

I fixed my development environment and the build error was eluding me because I forgot to enable storage GRPC again. Should be good to go now.

I fixed my development environment and the build error was eluding me because I forgot to enable storage GRPC again. Should be good to go now.

When you have some time, please run ./ci/kokoro/docker/build.sh update-abi and commit the files it changes to update the API baseline.

When you have some time, please run ./ci/kokoro/docker/build.sh update-abi and commit the files it changes to update the API baseline.

Thanks!

Thanks!


bots: Add a widget file to directly create bot from integration pages.

Add a widget file to create and subscribe bot to the stream user wishes
the incoming webhook services to send messages.

Codecov Report

Merging #5418 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5418      +/-   ##
==========================================
+ Coverage   86.65%   86.65%   +<.01%
==========================================
  Files         431      432       +1
  Lines       53528    53550      +22
  Branches     2088     2089       +1
==========================================
+ Hits        46384    46405      +21
- Misses       7144     7145       +1

Impacted Files
Coverage Δ

zerver/lib/bot_lib.py
56.09% <0%> (ø)

frontend_tests/node_tests/hotkey.js
99.01% <0%> (ø)
:arrow_up:

zerver/worker/queue_processors.py
55.91% <0%> (+0.14%)
:arrow_up:

api/bots_api/bot_lib.py
30.18% <0%> (+0.18%)
:arrow_up:

static/js/hotkey.js
60.2% <0%> (+0.31%)
:arrow_up:

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 19ffb84...6ff60fa. Read the comment docs.

The callbacks still aren't quite right on this.  If you have function A call function B to setup a callback to function C, there is no way for B to return a value from C to A.  Instead, C can only pass in values to some other function.  So when you call B from A, you need A to setup its own callback function to process the results from C.

Here is an example:
function get_planet(which_planet, success) {
    if (which_planet === 3) {
        success('earth');
    }
}

function get_planet_number(success) {
    success(3);
}

function get_our_planet(success) {
    get_planet_number(function (planet_number) {
        get_planet(planet_number, success);
    });
}

function greeting() {
    function on_success(planet_name) {
        console.log('hello, ' + planet_name);
    }
    get_our_planet(on_success);
}

greeting();

Merged!  Thanks @abhijeetkaur!


Add system dependencies for Alpine Linux

Useful for building Docker containers

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[ ] Feature
[x] Docs
[ ] New Binding Issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes. Issue #___
[x] No

The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:
These packages are needed when building a Tauri app with a rust:alpine base Docker image - if Rust is installed on a vanilla Alpine image using the rustup installer additional dependencies are needed.

Hey @torkleyy sorry it took so long, can you PR the same change to the tauri-docs repo? We've moved all documentation to that repo, so this PR cannot be merged anymore.


Add resource requests for NFS & Agent containers

To be good Kubernetes citizens, we need to set resource requests for our containers.
Based on testing on an AKS cluster, these limits seem quite reasonable
Shortcut story: [sc-70554]
NFS
CPU

Memory

Agent
CPU

Memory

I will update this PR with the Tentacle container that contains the job resource requests


hallucinated words in the output

While running the program during silence periods irrelevant output like "okay" and "thank you" appears.
Is there a way to fix this or is it a feature of faster-whisper

I have also noticed that behaviour.
I think the particular VAD model we're using, while conceptually it fits the project well, is almost useless at the moment, could be worth experimenting with other model.
For the time being, what I do is to read the language_probability. After a bit of experimentig, I've found out that setting a 0.9 threshold will basically prevent all the false positives.
`
websocketRecognition = new WebSocket(recognitionWebSocketAddress);
websocketRecognition.onmessage = function(event) {
const response = JSON.parse(event.data);
    console.log(response.language_probability);

    if (response.language_probability > 0.9) {
        doSomethingWith(response.text);
    } else {
        console.log("Speech not recognized. Could be just noise or hallucinations")
    }
};`

@alesaccoia
But when I use this for only English, language_probability is always 1.
What is the solution in this case?

I see, didn't try that. then maybe you could take a look at the word level probabilities to isolate the problem?

I understnad,  I looked at word level probabilities but couldn't find a threshold.

So, do you suggest me to use multilanguage option?

@alesaccoia
Also, when I use multilanguage mode, will I meet additional latency?

Yes multiingual model does have additional latency, it first computes the audio language.
Although this is a very small extra latency compared to the transcription

Please add "vad_filter=True" to fix the problem
Exam:
model.transcribe(fileName, beam_size=10, language="vi", vad_filter=True)

@KZyred didn't know that argument existed. did you test that?

Indeed it helps, however is not any miracle option.
It does decrease latency for long audios.
Other types of hallucination may appear, play with vad filter options.


Problem with dependencies in parallel builds

My project contains of few modules. For building it I'm using mvn -T 1C  to make them build in parallel.
I'm currently trying to add owasp-dependency-check maven plugin to my project to have the check done during my builds however it seems to have some problems with parallel building.
First module (that others depend on) is always build successfully and has it's dependencies checked, but after that when maven starts to build few modules in parallel I'm getting some random compilation errors (each build errors are coming from different module and different packages are not being found), preceded with information about lock file:
[INFO] --- dependency-check-maven:4.0.2:aggregate (default) @ my-module2 ---
[INFO] Central analyzer disabled
[INFO]
[INFO] --- dependency-check-maven:4.0.2:aggregate (default) @ my-module3 ---
[INFO] Central analyzer disabled
[INFO] Lock file found `C:\path_to_m2\.m2\repository\org\owasp\dependency-check-utils\4.0.2\..\..\dependency-check-data\3.0\dc.update.lock`
[INFO] Existing update in progress; waiting for update to complete
[INFO] Analysis Started
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/path/to/project/my-module4/src/test/java/package/name/MyClass1.java:[3,24] package org.junit does not exist
[ERROR] /C:/path/to/project/my-module4/src/test/java/package/name/MyClass1.java:[3,1] static import only from classes and interfaces
[ERROR] /C:/path/to/project/my-module4/src/test/java/package/name/MyClass1.java:[4,26] package org.mockito does not exist
[ERROR] /C:/path/to/project/my-module4/src/test/java/package/name/MyClass1.java:[4,1] static import only from classes and interfaces

Here the log contains a 100 compilation errors like above example.
Removing '-T 1C' from the build command and building modules one after another solves the problem and everything works correctly.
This is how I configured the plugin in my project's pom.xml:
<plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>4.0.2</version>
                    <configuration>
                        <autoUpdate>false</autoUpdate>
                        <format>XML</format>

                        <skipProvidedScope>true</skipProvidedScope>
                        <skipSystemScope>true</skipSystemScope>
                        <skipRuntimeScope>true</skipRuntimeScope>

                        <centralAnalyzerEnabled>false</centralAnalyzerEnabled>
                        <nexusAnalyzerEnabled>false</nexusAnalyzerEnabled>
                        <nodeAuditAnalyzerEnabled>false</nodeAuditAnalyzerEnabled>
                        <nuspecAnalyzerEnabled>false</nuspecAnalyzerEnabled>
                        <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
                        <opensslAnalyzerEnabled>false</opensslAnalyzerEnabled>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                        </execution>
                    </executions>
</plugin>

I got that problem with missing mockito class with 5.0.0 and 5.2.1 as well. It is really important that we build our projects quickly in parallel.
When that is going to be fixed?

I'm unable to re-produce the issue. See https://github.com/jeremylong/DependencyCheck/commit/d63fdfb362a497e47e8c8eb0bb1ad8f7fad002d6
Do you have an example project that exhibits this behavior?


RDK-28320: Enable Thunder Packager plugin

Reason for change:

Modify Makefile to build Packager if enabled
Remove libprovision and libopkg dependency. Linking handled in recipe
Modify opkg header path
Test Procedure: Packager plugin must build fine if enabled
Risks: None

Signed-off-by: Deva<EMAIL_ADDRESS>

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

@tdeva14  Can you verify that desktop build is successful?


Refactoring: PDF utilities

Hi @lea-33 ,
how about refactoring the code in Test_Models.ipynb for handling the PDFs. I could imagine moving code in two functions, load_pdf and save_images to a new python file pdf_utilities.py. We could then in subsequent sub-projects just do this:
from pdf_utilities import load_pdf and save_images

slides = load_pdf("test.pdf")

# extract images from slides
images = [s.image for s in slides]

save_images(filepath, images)

Hint: Together with the images, I would also extract the text a slide contains. These image-text pairs might be useful further down the road. Feel free to also steal code here.

Hi @haesleinhuepf,
thanks for those good ideas! I already implemented the pdf_utilities.py.  I am now working on the text extraction, that's why I reopened the issue.

Just for better understanding: I accidentally closed the issue on my way while creating the pull request for the .gitignore.

I now added a function for text extraction. It saves a dictionary (as .json) for the image-text pairs. RR #7


FastAPI Integration - TypeError: 'coroutine' object is not callable

How do you use Sentry?
Self-hosted/on-premise
Version
1.8.0
Steps to Reproduce

Install the lib v1.8.0;
Our Sentry server is self-hosted;
Configure the sentry inicialization as described in the release documentation:

from fastapi import FastAPI
from sentry_sdk.integrations.starlette import StarletteIntegration
from sentry_sdk.integrations.fastapi import FastApiIntegration
sentry_sdk.init(
dsn="...",
integrations=[StarletteIntegration(), FastApiIntegration()],
)
app = FastAPI()

So I did purposefully a request that would give me a 404/500 to activate the sentry warning.

Thanks in advance.
Expected Result
Sentry 404 log sent successfully.
Actual Result
web-1        | /usr/local/lib/python3.10/site-packages/sentry_sdk/serializer.py:216: RuntimeWarning: coroutine 'request_validation_exception_handler' was never awaited
web-1        |   with memo.memoize(obj) as result:
web-1        | RuntimeWarning: Enable tracemalloc to get the object allocation traceback
web-1        | ERROR:    Exception in ASGI application
web-1        | Traceback (most recent call last):
web-1        |   File "/usr/local/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
web-1        |     result = await app(self.scope, self.receive, self.send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
web-1        |     return await self.app(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/fastapi/applications.py", line 269, in call
web-1        |     await super().call(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 268, in _sentry_patched_asgi_app
web-1        |     return await middleware(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 126, in _run_asgi3
web-1        |     return await self._run_app(scope, lambda: self.app(scope, receive, send))
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 176, in _run_app
web-1        |     raise exc from None
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 171, in _run_app
web-1        |     return await callback()
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 268, in _sentry_patched_asgi_app
web-1        |     return await middleware(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 126, in _run_asgi3
web-1        |     return await self._run_app(scope, lambda: self.app(scope, receive, send))
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 137, in _run_app
web-1        |     raise exc from None
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/asgi.py", line 134, in _run_app
web-1        |     return await callback()
web-1        |   File "/usr/local/lib/python3.10/site-packages/starlette/applications.py", line 124, in call
web-1        |     await self.middleware_stack(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/fastapi.py", line 122, in call
web-1        |     await self.app(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 461, in call
web-1        |     await self.app(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 86, in _create_span_call
web-1        |     await old_call(*args, **kwargs)
web-1        |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/errors.py", line 184, in call
web-1        |     raise exc
web-1        |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/errors.py", line 162, in call
web-1        |     await self.app(scope, receive, _send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 86, in _create_span_call
web-1        |     await old_call(*args, **kwargs)
web-1        |   File "/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py", line 84, in call
web-1        |     await self.app(scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 160, in _sentry_exceptionmiddleware_call
web-1        |     await old_call(self, scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 160, in _sentry_exceptionmiddleware_call
web-1        |     await old_call(self, scope, receive, send)
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 160, in _sentry_exceptionmiddleware_call
web-1        |     await old_call(self, scope, receive, send)
web-1        |   [Previous line repeated 1 more time]
web-1        |   File "/usr/local/lib/python3.10/site-packages/sentry_sdk/integrations/starlette.py", line 86, in _create_span_call
web-1        |     await old_call(*args, **kwargs)
web-1        |   File "/usr/local/lib/python3.10/site-packages/starlette/exceptions.py", line 104, in call
web-1        |     await response(scope, receive, sender)
web-1        | TypeError: 'coroutine' object is not callable

Got the same error,
I'm using Sentry SaaS (sentry.io)
Traceback (most recent call last):
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 372, in run_asg
i
    result = await app(self.scope, self.receive, self.send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\fastapi\applications.py", line 269, in __call__
    await super().__call__(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 268, in _sentry_pat
ched_asgi_app
    return await middleware(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 126, in _run_asgi3
    return await self._run_app(scope, lambda: self.app(scope, receive, send))
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 176, in _run_app
    raise exc from None
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 171, in _run_app
    return await callback()
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 268, in _sentry_pat
ched_asgi_app
    return await middleware(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 126, in _run_asgi3
    return await self._run_app(scope, lambda: self.app(scope, receive, send))
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 137, in _run_app
    raise exc from None
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\asgi.py", line 134, in _run_app
    return await callback()
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\fastapi.py", line 122, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 461, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 86, in _create_span
_call
    await old_call(*args, **kwargs)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 86, in _create_span
_call
    await old_call(*args, **kwargs)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\middleware\cors.py", line 84, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 86, in _create_span
_call
    await old_call(*args, **kwargs)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\middleware\sessions.py", line 80, in __call__
    await self.app(scope, receive, send_wrapper)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 160, in _sentry_exc
eptionmiddleware_call
    await old_call(self, scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 160, in _sentry_exc
eptionmiddleware_call
    await old_call(self, scope, receive, send)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 160, in _sentry_exc
eptionmiddleware_call
    await old_call(self, scope, receive, send)
  [Previous line repeated 3 more times]
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\sentry_sdk\integrations\starlette.py", line 86, in _create_span
_call
    await old_call(*args, **kwargs)
  File "C:\Users\x\.virtualenvs\x-M0aUaMTg\lib\site-packages\starlette\exceptions.py", line 104, in __call__
    await response(scope, receive, sender)
TypeError: 'coroutine' object is not callable

+1 I was able to get the same error when trying to do a POST. I'll see if I can get a minimal piece of code with which this can be reproduced.

Alright with this code you can see the issues:
from fastapi import FastAPI, Form

import sentry_sdk
from sentry_sdk.integrations.starlette import StarletteIntegration
from sentry_sdk.integrations.fastapi import FastApiIntegration

SENTRY_ENABLED = True
SENTRY_URI = ''

if SENTRY_ENABLED:
    sentry_sdk.init(
        SENTRY_URI,
        integrations=[StarletteIntegration(), FastApiIntegration()],
    )

app = FastAPI()

# works fine
@app.get("/")
async def root():
    return {"message": "Hello World"}

# broken
@app.post("/my-post")
async def my_post(name: str = Form(...)):
    return {"message": f"Your name is {name}"}

Run it with: uvicorn main:app
A couple of observations:

POST requests seem to be broken. They never finish. When running the code above, open http://<IP_ADDRESS>/docs and do a POST to the my-post endpoint. Swagger will show an endlessly looping loading animation.
When going to a page that does not exist (e.g. http://<IP_ADDRESS>:8000/ohno) you get the exception that @danilogco posted.
When one of the aforementioned exceptions has occured, the following gets printed when doing CTRL + C:

INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [1589034]
sys:1: RuntimeWarning: coroutine 'request_validation_exception_handler' was never awaited
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Hey everyone! Thanks for reporting this! I will have a look at this in the afternoon!

@antonpirker thanks!

@ybinnenwegin2ip Thanks for the project to reproduce this!
So there are two issues:

When going to a non existent route the coroutine error is raised
When posting a form we end up in an infinite loop.

I have reproduced both problems but will not be able to fix them before the weekend. Will fix this beginning of next week.

Any progress on this?


How can I use it in my nextJs project

I'm writting the new syntaxe but not working, How can i solve it. Thanks

@pasternak-karmel
it is just a proposal, it is not ready to use.
Currently there is no even babel plugin for that.
You can try to use some libraries for you project:
Like safely-try
or do-try-tuple

ohh got it. thanks for your help


Named reference used in 2 output files: edited in one does not update the other

Setup
example.md
```js {#some-reference}
This code block is tangled into multiple files
```

```js {file=one.js}
<<some-reference>>
```

```js {file=other.js}
<<some-reference>>
```

Bug
Edit one.js.

The markdown file will be updated correctly
one.js will remain as is
bug:other.js will not be updated

Output
* [11:38:35] Initializing
    * Monitoring 'example.md'
    * Creating 'one.js'
    * Creating 'other.js'

* [11:39:31] Untangling 'one.js'
    updated NameReferenceId "some-reference" "example" 0
    * Overwriting 'example.md'

This should now be fixed.


Add test for reproducible code generation by the MPPA backend

Add a new test that checks for a set of implementations if the generated code is identical to the code generated when the implementations were found.

bors r=Elarnon r=nicoTolly

This shouldn't be r=me; I did not look at it (not an issue for merging, but we should try to have commits indicate who actually reviewed them).


[FEATURE] Integrate your component into nativescript-material-components

Hy @henrychavez love your component!
I want to add a bottom navigation to nativescript-material-components
As you might now inside nativescript-material-components we try to have native components  only based on material-components-android and material-components-ios
Your implementation for ios is using it but not your android one.
Would be willing to help on migrating your component to nativescript-material-components and implementing the android based this ?

Hi @farfromrefug,
Yes, I would like to do that, let me know how you wanna do this.
You can email me if you want<EMAIL_ADDRESS>


[FEATURE] Change the "master" nomenclature

Is your feature request related to a problem?
OpenSearch repository is going to replace the terminology "master"with "cluster manager".
issue: https://github.com/opensearch-project/OpenSearch/issues/472#issuecomment-960298995, with the plan for its terminology replacement.
The existing OpenSearch REST APIs and settings will be deprecated in version 2.0, and eventually be removed in at least version 3.0. Please prepare for the nomenclature change in advance.
What solution would you like?
Replace the  terminology "master" with "cluster manager".

Inform the user about the nomenclature change in advance in the documentation.
Replace all the internal usages with "master" word in the code base.

The impact to the OpenSearch user of the nomenclature change:

REST APIs and settings that contain "master" word will be deprecated in version 2.0. They are still able to be used, but using deprecated APIs and settings will result in a deprecation warning logged in file.
Alternative usages with "cluster_manager" word is preferred to be used, which are provided for every deprecated usages.

For detailed code change, please see the issue https://github.com/opensearch-project/OpenSearch/issues/1549.
List of REST API and setting changes:
For all the non-inclusive REST APIs and settings list, please see the replacement plan of master terminology for OpenSearch repository: https://github.com/opensearch-project/OpenSearch/issues/472#issuecomment-960298995
Setting names
1 cluster.initial_master_nodes (static)
New name: cluster.initial_cluster_manager_nodes
2 cluster.no_master_block (dynamic)
New name: cluster.no_cluster_manager_block
3 cluster.service.slow_master_task_logging_threshold (dynamic)
New name: cluster.service.slow_cluster_manager_task_logging_threshold
Expected behavior (same as the deprecated OpenDistro settings of plugins):

If the new setting is configured, value of the old setting will be ignored.
If the new setting is not configured, value of the old setting will be valid.

Setting value
1 node.roles: [ master ]
New name of the master role :  cluster_manager

A new node role will be added, aims to replace the existing master role. New node created by OpenSearch 2.0 will have cluster_manager role and without master role by default, but they have got the same functionality.
New node will have "cluster_manager", "data", and "ingest" roles by default. Which means the default value of setting "node.roles" will be ["cluster_manager","data","ingest"], instead of ["master","data","ingest"]
master role and cluster_manager role can not be assigned together to a node.
See the link for detailed changes in responses of REST APIs https://github.com/opensearch-project/OpenSearch/pull/2424.

REST API endpoint
1 GET _cat/master
New name: GET _cat/cluster_manager

Using the old path _cat/master and new path _cat/cluster_manager will get the same response.

REST API path parameter
1 "node filters" used in some cluster-level APIs. The APIs are usually in the format: GET /_nodes/<node_id>, where <node_id> can be set as _master or master:true or master:false to filter the master nodes.

The filter names are based on the node roles, since a new node role is added, cluster_manager can also be used to filter nodes to be shown in the API response. Besides, master and cluster_manager have got the same filtering effect, and they will filter the node with either role.

REST API request parameter name
1 master_timeout=
New name: cluster_manager_timeout=

A new optional parameter cluster_manager_timeout will be added, and it has the same effect with the existing master_timeout. An exception will be thrown if values are assigned to the both parameters.
The parameter is widely used in REST APIs

REST API request parameter value
1 metric=master_node
New name: metric=cluster_manager_node

Use either master_node or cluster_manager_node can get the same metrics.
So far, the metric parameter is used in GET /_cluster/state/<metrics>/<target> and POST /_cluster/reroute APIs

REST API response field
1 discovered_master in the response of GET _cluster/health
New name: discovered_cluster_manager

a new field will be added to GET _cluster/health API: discovered_cluster_manager, though the "old" field discovered_master has not been added to the document yet.

2 discovered_master in the response of GET _cat/health

the header discovered_master of the table in the response of GET _cat/health API will be replaced by discovered_cluster_manager (breaking change)
If user wants to get output with the old column header name master, please use h parameter to filter the column to be shown explicitly, such as GET _cat/health?v&h=master

3 master in the response of GET _cat/nodes
master -> cluster_manager

the header master of the table in the response of GET _cat/nodes API will be replaced by cluster_manager (breaking change)
If user wants to get output with the old column header name master, please use h parameter to filter the column to be shown explicitly, such as GET _cat/nodes?v&h=version,master

What alternatives have you considered?
none.
Do you have any additional context?
none.

Thanks @tlfeng! We'll get this in before the upcoming preview.

Reopening to change the cluster.initial_master_nodes setting name to cluster.initial_cluster_manager_nodes in the sample docker compose file on the Docker image page.

Boxing this back up post merge of #1151.


data-ajax--process-results is (may) not (be) working (properly)..

Hi I am trying dynamically instantiate based on data attributes. Everything is fine, except data-ajax--process-results.
I have a predefined function as below:
var select2fnResultConverter = function (xhr, params) {
    var data;
    params.page = params.page || 1;
    params.name = "asc";

    data = $.map(xhr.data.items, function (obj) {
        obj.text = obj.text || obj.name;
        return obj;
    });

    return {
        results: data,
        pagination: {
            more: (params.page * 10) < xhr.data.total_items
        }
    };
};

When I add it to data attribute as data-ajax--process-results="select2fnResultConverter", javascript throws an error saying that:
i.processResults is not a function
I tried a lot of combination  but couldn't make it work. If I write it in javascript instead of data attributes, it works.
$('#js_form_new_business_id').select2({ajax:{processResults:select2fnResultConverter}});

Thanks for the lib and support.

javascript throws an error saying that:
i.processResults is not a function

Because in your case, it's not. You're passing in a string.
Select2 does not dynamically parse JavaScript functions that are passed in as a string. This would require us to know what type the option is supposed to be, and that's way more effort than we're willing to invest.
We recommend either defining it entirely in JS or using $.each() to dynamically pull that attribute for each element before Select2 is initialized on it.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.


[Package mode] add new flag --package-mode

https://github.com/Azure/autorest.python/issues/1053

overall looks much better, thank you @msyyc!

@iscai-msft  I think we could disable py27 CI check now that we have not supported it yet.


Add null check in RedirectUrlActivity

@MatkovIvan,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


Wrapper type for signals, refactor errors and signal numbers

@ultimaweapon This one is pretty safe to merge too, I would say. This is just an internal refactor, you don't have to compare anything with the PS4

I saw you have changes some of the strerror. Where did you get those changes from?

I must have missed those. I got them through copilot :skull:

@ultimaweapon They should be correct now.


Hang (or extremely slow start) compared to aomenc 3.8.0

I have built aom-av1-lavish from opmox/mainline-merge (commit 3b4594d81bed823c41ad95a195cd4b321aebdd07) and I'm now trying to compare it against vanilla aomenc 3.8.0.
However, while vanilla aomenc 3.8.0 starts processing and is well on the way a few minutes after entering pass 2, aom-av1-lavish just sits there. It reads lag-in-frames frames, then (at least for 6 hours now) doesn't achieve anything.

But vanilla aomenc 3.8.0 estimates about 80 hours (< 4 days) of encoding time, about 2 frames per minute,
whereas aom-av1-lavish has, after ~6 hours of waiting, not managed to process even one frame and thus, no estimate.
So I suspect there is a problem when the above combination of parameters is used. Unless the effect of the "butteraugli" tune and/or lag-in-frames at 80 is so drastic that it takes >6 hours to process a single frame.

I did some further testing:

Increasing cpu-used all the way up to 8 and using --lag-in-frames=48 has so far not made aom-av1-lavish move (waited merely 45 minutes so far)
Removing --tune=butteraugli while at the same time increasing --lag-in-frames=96 has it encoding at least 1 frame per minute right now

So it appears that the "butteraugli" tune is forbiddingly slow.
I'm using my distro's libjxl 0.8.1.
My build command for aom-av1-lavish was
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_CCACHE=OFF -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=ON -DENABLE_NASM=OFF -DENABLE_TESTS=no -DENABLE_TOOLS=ON -DENABLE_WERROR=OFF -DCONFIG_BIG_ENDIAN=0 -DCONFIG_TUNE_BUTTERAUGLI=1 -DENABLE_NEON=OFF -DENABLE_ARM_CRC32=OFF -DENABLE_NEON_DOTPROD=OFF -DENABLE_NEON_I8MM=OFF -DENABLE_SVE=OFF -DENABLE_MMX=ON -DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON -DENABLE_SSSE3=ON -DENABLE_SSE4_1=ON -DENABLE_SSE4_2=ON -DENABLE_AVX=ON -DENABLE_AVX2=ON -DENABLE_VSX=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONFIG_TUNE_BUTTERAUGLI=1 -DCMAKE_C_FLAGS="-march=native -Ofast -pipe -fomit-frame-pointer -g0 -fgraphite-identity -fno-common -flto=12 -fmerge-all-constants -falign-functions=32 -fno-stack-protector -floop-strip-mine -floop-block -ftree-vectorize -floop-interchange -floop-nest-optimize -floop-parallelize-all -fstack-check=no -fno-stack-check -fno-stack-clash-protection" -DCMAKE_C_FLAGS_INIT="-flto=12 -static" /opt/aom-av1-lavish-3b4594d81bed823c41ad95a195cd4b321aebdd07

A bit of GCC ricing, but it's a release build.
Is the enormous performance impact normal for the "butteraugli" tune?
Can I do something to reduce this? Newer version of libjxl? Any compile flags for CMake?


M_PI is Deprecated

Check List

[+ ]   M_PI is deprecated

The M_PI should be already fixed recently. Please upgrade your Kingfisher.


Encapsulated template behavior via decorator and view parts

In response to @solnic's comment at https://github.com/dry-rb/dry-view/pull/34#issuecomment-283248842, I'm looking into using decorators to wrap our view objects and provide better encapsulation for template-level behaviour.
This is a work in progress.
So far:

Add a default Decorator, whose job it is to wrap objects in Parts
Add Part back, make it work as both the scope for the main template and a wrapper for objects passed to the templates
Support rendering partials from Part, and passing around a common context object

Still to do:

[x] Think about potential better names. Is Decorator and Part right?
[x] Support specifying a custom part class for exposures (e.g. expose :users, as: MyApp::Views::Parts::User do ... end)
[x] Work out whether we're happy with render :foo and keeping our template lookup rules (some/path/template_name/_foo, some/path/shared/_foo and then ascending up the paths until we hit the root), or using explicit naming of partials (i.e. render "shared/foo")
[x] Decide whether its worth trying to wrap explicit locals passed to partials (e.g. my_thing.render :foo, bar: "baz") in parts (probably not)
[x] Consider pulling out all the common render-time values into an object that is easier to pass around (renderer, context, format, etc.)
[x] Tidy ups, etc.
[x] Documentation - if this is going to work, we need it to be easy to understand/explain, too!

To answer some of the questions I ticked off in my initial description:

Think about potential better names. Are Decorator and Part right?

Yeah, I'm feeling pretty happy with these after I've sat with them for a while. The job of the "decorator" job is to decorate the objects that are being sent to the view, and they're sent through as "view parts", which makes it clear that the object is specifically intended for use within the view.
I know a "decorator" can also be the term given to the class that wraps another one (i.e. what our view parts are in this case), but since the name is a verb, I think it also works pretty well for our
Besides, the alternatives don't seem great PartBuilder, PartFactory? Ugh...

Work out whether we're happy with render :foo and keeping our template lookup rules (some/path/template_name/_foo, some/path/shared/_foo and then ascending up the paths until we hit the root), or using explicit naming of partials (i.e. render "shared/foo")

Now that #render is part of the View::Part API, it means that we can actually hide render implementation details behind public methods of custom view part classes. For example:
class MyUserPart < Dry::View::Part
  def info_box
    render(:info_box)
  end
end

Given that a user view part like this could be used across a number of different top-level templates in different filesystem locations, keeping the partial lookup rules in place is actually important, because otherwise a template wouldn't have the ability to render the partial differently for its own needs (i.e. by having a partial file located "closer" to the template, ensure its the file found first by the lookup).

Decide whether its worth trying to wrap explicit locals passed to partials (e.g. my_thing.render :foo, bar: "baz") in parts (probably not)

Yeah, it's not worth it, and I think this would violate the principle of least surprise. We'd also run the risk of potentially double-decorating something if we're passing another one of the view locals as an explicit local to another partial.

Consider pulling out all the common render-time values into an object that is easier to pass around (renderer, context, format, etc.)

This didn't turn out to be too much a problem. I tried a few different things to tie them together but nothing improved matters, so I've left as-is.

Code-wise, this is ready to go. All that's left is for me to write a decent summary of the changes so I can put it up in the PR description field. And then write the corresponding documentation for dry-rb.org.
If any of you feel like reviewing the design/code, now's the right time!

Docs are up at https://github.com/dry-rb/dry-rb.org/pull/163, and they hopefully give a good overview of this new feature.

@solnic reckon this is good to merge now?


[DE DateTimeV2] nächstem Jahr/letztem Jahr

nächstem Jahr should return next year and letztem Jahr should return last year.

I had a look at the German-DateTime.yaml file, and it seems 'm' is missing in the optional character for Next/Previous Prefix.
I would appreciate if you could have a look and fix this.
Thank you.
Best Regards,
Jinjoo

@jinjoo-ha Thanks for the feedback and the ping.
I'm able to help from time to time and I'm pushing a fix for this one right now. But @nawanas is the person responsible for the team working on feedback/bug-fixing.
Please also tag him in future issues, ok?


Version: Failed test

Overview
I use go v1.16. While running make test locally, I've got an error:
$ make test
=== Failed
=== FAIL: pkg/version TestGetVersionsGithub/error_on_bad_addr (30.00s)
    version_test.go:117:
        	Error Trace:	version_test.go:117
        	Error:      	Error message not equal:
        	            	expected: "Get \"http://a.super.non.existant.domain/\": dial tcp: lookup a.super.non.existant.domain: no such host"
        	            	actual  : "Get \"http://a.super.non.existant.domain/\": dial tcp <IP_ADDRESS>:80: i/o timeout"
        	Test:       	TestGetVersionsGithub/error_on_bad_addr
    --- FAIL: TestGetVersionsGithub/error_on_bad_addr (30.00s)

=== FAIL: pkg/version TestGetVersionsGithub (30.01s)

DONE 108 tests, 2 failures in 55.668s
make: *** [test] Error 1

So, the error you are getting suggests that the fake domain is actually resolving to an address. What happens when you run:
host a.super.non.existant.domain
dig a.super.non.existant.domain

Or on Windows:
nslookup a.super.non.existant.domain

My guess is that perhaps you have a custom /etc/hosts entry, or your local DNS resolver is handing out an address for domains which received an NXDOMAIN?

@wcs1only Here the output:
 $ host a.super.non.existant.domain
Host a.super.non.existant.domain not found: 3(NXDOMAIN)

I've already opened a PR for this issue. So let's close this one.


SDN Controller application Features

Hi
I'm trying to use the feature of SDNController , but i have some JAVA exception occur, and my network is emulate by mininet's instruction $sudo mn like below:
node1 (<IP_ADDRESS>) is running SDNControllerService and SDNControllerClient both,
node2 (<IP_ADDRESS>) is running SDNControllerClient only.

When I send GenericDataType using "Send Packet" of node1's SDNClient to the node2, the following exception occurs
this is on h1

this is on h2

Do you have similar mistakes?
And there are many terms that I don't understand, such as the difference between GenericDataType, InfoDataType and DefaultMessage
And what will the data plane rule affect?
Is There any related documents or papers that can make me understand?
Thanks so much!

Hello,
thank you for your feedback, I was able to repoduce the issue and now it is fixed. I've uploaded the latest version od Ramp Stand Alone Client in the deployment folder.
Answering your questions:

Generic Data Type is a class that let to create a message with a payload and a sequence number
Info Data Type is a class  that let to create a message with a payload, a sequence number and a value
DefaultMessage is not used anymore
Talking about the data plane rules, in the SDNControllerService there is a panel that lets you to activate/deactivate data plane rules for specific data types and you can also specify which nodes should activate such rules.

If you have more questions I'll be happy to answer, this time I'll be quicker.
Best regards,
Dmitrij

Hi,
thank you for your reply,
I tested it briefly, the sender's exception does not occur now, but some exception still occur.
Is there anything I should notice to in the steps?
This time environment is the same with the previous, only the ID and sender changed
host1 node5 (<IP_ADDRESS>) is running SDNControllerService and SDNControllerClient both,
host2 node6 (<IP_ADDRESS>) is running SDNControllerClient only.

node 6 send a GenericDataType to node 5
node 6 is correct, but node5 had some exception like below

I don't know if I need to register with the controller, so I add Data Plane Rule with
data type: GenericDataType
Rule: DeserializationDataPlaneRule
node5
node6

But more exception occurred....
node6 (sender)

node5 (receiver)

This is the video I recorded during the test. Could you please help me to see if there are steps that make mistakes?
https://youtu.be/yo7aqkVUfvk
Thanks so much!

Hello @u284976,
thanks for your feedback and for the video that helped me a lot to solve the issue quickly.
I've uploaded a new version of RampStandAloneClient in the deployment folder.
When you activate a rule in the SDNControllerService, if you directly click on the "Add Data Plane Rule" button it will automatically enables the rule for all the current SDNControllerClients so you can avoid to specify them. The select box that appears when you click the "Add client" button is useful only in case you want to activate the data plane rule for specific SDNControllerClients.
A last consideration, I've developed the SDNControllerService and SDNControllerClient during my thesis work so as you've noted is a little bit buggy since I didn't test it too much. So if you want to share what you would you like to do with Ramp I can help you in understanding the best approach to achieve it.
Have a nice day,
Dmitrij

Hi, @davidMonnuar
Thanks for update, every function buttons are work correct now.
Actually I am a graduate student looking for the topic of graduation thesis. So far testing RAMP, I have three ideas.
The first is a whimsical idea, base on "Show Topology Graph" button in SDNControlService, I want to estimate client node's physical location by wireless link, example of situation like in a Smart Home (or other "less changeable spaces") , the signal of the network may not cover the entire range, and I can order the robot to go to the required location for temporary packet forward.
Second is base on your past paper, I want to explore "How to define a spontaneous network island range", in your paper that is a very important issue will affect the overall network QoS a lot, but it has not been resolved. However, the spontaneous network is very different from the real environment. If I want to do this topic, I think it is necessary to design a very large scenario, which is too difficult for me.
Third is also base on your past paper, this paper proposes a "task-> resource-> flow schedule" process to illustrate the architecture of SDN used in the IoT environment, on this basis, I want to add concept of "reservation", some un-important tasks can be adjusted by the controller to avoid network congestion.
For the third idea, I would like to ask SDNControlService can affect other Serivce?
For example, I press "Set Application Require" button with below figure parameter in node1 SDNControlClient, this setting can affect other Service? like FileSharingService bit rate will be limited to 50 kb/s.

Thanks in advance!

Thank you for your help, let me understand the ability of RAMP and save me a lot of time.
I will try to coding the required function based on RAMP SDNControllerService.
Thank you again for your guidance and support!

You're welcome.
Have a look at this link: https://github.com/DSG-UniFE/ramp/tree/master/src/test/sdncontroller
This is the test package containing several code examples of applications built on top of RAMP-SDN. In particular check the classes:

ControllerClientTestSender
ControllerClientTestReceiver
They are an example of communication between two SDN Clients inside the same island. The receiver registers itself as a RAMP service and the sender finds it via the RAMP Discovery Service. As soon on as the client finds the other you can do whatever you want.

For the SDN Controller you have two options:

Run the class ControllerServiceTest, it has no User Interface and you can change the SDN island configuration by code.
Run the SDNControllerService, im my opinion the best option since you can control the island behaviour via a User Interface.

I think I've answered to all of your questions and I'm going to clode this issue.
Have a nice day
Dmitrij


Cant get the newly release 0.28

Hello
Am trying to follow the steps as usually to get the latest readium-js viewer 0.28.But am getting an error on
npm run prepare:all
I have node version 8.0.0 and Os Windows 7 64 bit
These are the errors

Could you please use another terminal than MS-DOS, such as GitBash or GitShell which come with the official GiHub and Git tools for Windows.
Sorry for the inconvenience, let us know if this helps.

I have downloaded the git bash from here https://git-for-windows.github.io/.
npm run prepare:all  worked
But now it is stopping at npm run build.
These are the errors

Thank you for the update.
Could you please now try from the develop branch. A bug was recently fixed to resolve NPM dependencies issues.
Many thanks!

Could you please tag a version with the NPM dependency issues fix?

The bugfix for the NPM dependencies is multi-faceted and has not been retro-fitted into the master branch as a hotfix cherry-pick. Instead, it will be incorporated into the master branch along with a history of other non-breaking improvements, at the next release point. Meanwhile, I would recommend using the source tree from the head of the develop branch, which ; as of today ; is revision 2a41a144ad75cb33058c0684a817aa2fe332f907 https://github.com/readium/readium-js-viewer/commit/2a41a144ad75cb33058c0684a817aa2fe332f907
(this commit hash will pull-in the correct chain of submodule dependencies too)