pivpn not working, cannot connect at all

Console output of pivpn debug
::: Generating Debug Output
:::                                     :::
::              PiVPN Debug              ::
:::                                     :::
::      Latest Commit                    ::
:::                                     :::
commit 053c0d9d214ed9e9de90940d9b3e2291cb9323e8
Author: Carlos Colaço<EMAIL_ADDRESS>Date:   Wed Oct 18 20:58:20 2017 +0200

    Fix Clients only in one line (#384)

    * fixed pivpn clients text display

    * #Oops

    * clients in only 1 line fixed
:::                                     :::
::      Recursive list of files in       ::
::      /etc/openvpn/easy-rsa/pki        ::
:::                                     :::
/etc/openvpn/easy-rsa/pki/:
ca.crt
crl.pem
Default.txt
dh1024.pem
index.txt
index.txt.attr
index.txt.attr.old
index.txt.old
issued
private
serial
serial.old
ta.key
User1.ovpn
User2.ovpn
User3.ovpn

/etc/openvpn/easy-rsa/pki/issued:
server_EGpjJqmg8qo5hYs1.crt
User1.crt
User2.crt
User3.crt

/etc/openvpn/easy-rsa/pki/private:
ca.key
server_EGpjJqmg8qo5hYs1.key
User1.key
User2.key
User3.key
:::                                     :::
::      Output of /etc/pivpn/*           ::
:::                                     :::
:: START /etc/pivpn/DET_PLATFORM ::
Raspbian
:: END /etc/pivpn/DET_PLATFORM ::
:: START /etc/pivpn/INSTALL_PORT ::
1194
:: END /etc/pivpn/INSTALL_PORT ::
:: START /etc/pivpn/INSTALL_PROTO ::
udp
:: END /etc/pivpn/INSTALL_PROTO ::
:: START /etc/pivpn/INSTALL_USER ::
pi
:: END /etc/pivpn/INSTALL_USER ::
:: START /etc/pivpn/NO_UFW ::
1
:: END /etc/pivpn/NO_UFW ::
:: START /etc/pivpn/pivpnINTERFACE ::
wlan0
:: END /etc/pivpn/pivpnINTERFACE ::
:::                                     :::
:: /etc/openvpn/easy-rsa/pki/Default.txt ::
:::                                     :::
client
dev tun
proto udp
remote IP ADDRESS 1194
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_EGpjJqmg8qo5hYs1 name
cipher AES-256-CBC
auth SHA256
comp-lzo
verb 1
:::                                     :::
::      Debug Output Complete            ::
:::                                     :::
:::
::: Debug output completed above.
::: Copy saved to /tmp/debug.txt

Issue - cannot connect to VPN server using any device (iPhone, Mac, Windows). Times out after 1 minute. It will resolve, attempt to contact the IP via UDP (1194), wait, set tunnel socket returned 1, try to connect again, net internet:reachableviaWiFi/-R t------, server poll timeout, try next remote entry, reconnect and the cycle starts again. I am a newb - any help would be appreciated.

What client are you using?

On my iPhone, OpenVPN Connect, on my Windows, OpenVPN, on my Mac, Tunnelblick.

2017-10-20 11:39:14 OpenVPN 2.3.18 x86_64-apple-darwin [SSL (OpenSSL)] [LZO] [PKCS11] [MH] [IPv6] built on Oct 15 2017
2017-10-20 11:39:14 library versions: LibreSSL 2.5.5, LZO 2.10
2017-10-20 11:39:14 MANAGEMENT: TCP Socket listening on [AF_INET]<IP_ADDRESS>:1337
2017-10-20 11:39:14 Need hold release from management interface, waiting...
2017-10-20 11:39:14 *Tunnelblick: openvpnstart starting OpenVPN
*Tunnelblick: OS X 10.13.0; Tunnelblick 3.7.3 (build 4880); prior version 3.7.2 (build 4850)
2017-10-20 11:39:14 *Tunnelblick: Attempting connection with User2; Set nameserver = 769; monitoring connection
2017-10-20 11:39:14 *Tunnelblick: openvpnstart start User2.tblk 1337 769 0 3 0 1065264 -ptADGNWradsgnw 2.3.18-libressl-2.5.5
2017-10-20 11:39:15 *Tunnelblick: openvpnstart log:
OpenVPN started successfully. Command used to start OpenVPN (one argument per displayed line):
      /Applications/Tunnelblick.app/Contents/Resources/openvpn/openvpn-2.3.18-libressl-2.5.5/openvpn
      --daemon
      --log
      /Library/Application Support/Tunnelblick/Logs/-SLibrary-SApplication Support-STunnelblick-SShared-SUser2.tblk-SContents-SResources-Sconfig.ovpn.769_0_3_0_1065264.1337.openvpn.log
      --cd
      /Library/Application Support/Tunnelblick/Shared/User2.tblk/Contents/Resources
      --setenv
      IV_GUI_VER
      "net.tunnelblick.tunnelblick 4880 3.7.3 (build 4880)"
      --verb
      3
      --config
      /Library/Application Support/Tunnelblick/Shared/User2.tblk/Contents/Resources/config.ovpn
      --verb
      3
      --cd
      /Library/Application Support/Tunnelblick/Shared/User2.tblk/Contents/Resources
      --management
      <IP_ADDRESS>
      1337
      --management-query-passwords
      --management-hold
      --script-security
      2
      --up
      /Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -9 -d -f -m -w -ptADGNWradsgnw
      --down
      /Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -9 -d -f -m -w -ptADGNWradsgnw

2017-10-20 11:39:15 MANAGEMENT: Client connected from [AF_INET]<IP_ADDRESS>:1337
2017-10-20 11:39:15 *Tunnelblick: Established communication with OpenVPN
2017-10-20 11:39:15 MANAGEMENT: CMD 'pid'
2017-10-20 11:39:15 MANAGEMENT: CMD 'state on'
2017-10-20 11:39:15 MANAGEMENT: CMD 'state'
2017-10-20 11:39:15 MANAGEMENT: CMD 'bytecount 1'
2017-10-20 11:39:15 MANAGEMENT: CMD 'hold release'
2017-10-20 11:39:15 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2017-10-20 11:39:18 MANAGEMENT: CMD 'password [...]'
2017-10-20 11:39:18 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
2017-10-20 11:39:18 Control Channel Authentication: tls-auth using INLINE static key file
2017-10-20 11:39:18 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
2017-10-20 11:39:18 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
2017-10-20 11:39:18 Socket Buffers: R=[196724->196724] S=[9216->9216]
2017-10-20 11:39:18 UDPv4 link local: [undef]
2017-10-20 11:39:18 UDPv4 link remote: [AF_INET]IPADDRESS:1194
2017-10-20 11:39:18 MANAGEMENT: >STATE:1508495958,WAIT,,,
2017-10-20 11:40:18 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
2017-10-20 11:40:18 TLS Error: TLS handshake failed
2017-10-20 11:40:18 SIGUSR1[soft,tls-error] received, process restarting
2017-10-20 11:40:18 MANAGEMENT: >STATE:1508496018,RECONNECTING,tls-error,,
2017-10-20 11:40:18 MANAGEMENT: CMD 'hold release'
2017-10-20 11:40:18 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2017-10-20 11:40:18 Socket Buffers: R=[196724->196724] S=[9216->9216]
2017-10-20 11:40:18 UDPv4 link local: [undef]
2017-10-20 11:40:18 UDPv4 link remote: [AF_INET]<IP_ADDRESS>:1194
2017-10-20 11:40:18 MANAGEMENT: >STATE:1508496018,WAIT,,,

This is the output from my Mac.

This seems like that part that is causing issues
2017-10-20 11:39:18 UDPv4 link remote: [AF_INET]IPADDRESS:1194 2017-10-20 11:39:18 MANAGEMENT: >STATE:1508495958,WAIT,,, 2017-10-20 11:40:18 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) 2017-10-20 11:40:18 TLS Error: TLS handshake failed 2017-10-20 11:40:18 SIGUSR1[soft,tls-error] received, process restarting 2017-10-20 11:40:18 MANAGEMENT: >STATE:1508496018,RECONNECTING,tls-error,, 2017-10-20 11:40:18 MANAGEMENT: CMD 'hold release'
Try to uninstall pivpn then install it again with 1024 bit enc.
See if it works.

@trilleplay reinstall wont solve ... TLS Negotiation failed usually means that the Client is not reaching the server ... so ... brings me the question, @raspberrypivpn have you forwarded the correct port / protocol to the correct device on your router?

According to my router, it seems the port is forwarded. Where it says IP ADDRESS, I have put the IP ADDRESS of my Raspberry Pi. If it matters, I am using a wireless connection.

I don't know if there might be a problem at the Pi end: is the port forwarding correctly at both ends?

Earlier, when I posted my debug code, one line said this:
remote IP ADDRESS 1194
and also in the Mac Tunnelblick log:
2017-10-20 11:39:18 UDPv4 link remote: [AF_INET]IPADDRESS:1194
Here, IP ADDRESS is my public IP ADDRESS.
As far as I know, it is static.

hmm ... give me the output of
ifconfig
iptables -t nat -S
iptables -S

Hide any sensitive info please .. and please check if your public IP address matches the IP address pn your .ovpn file... are you trying to connect from within your network or from an outside network??

ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:e2:96:97
          inet6 addr: fe80::e6a3:5cee:de95:e3b5/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:6288 (6.1 KiB)  TX bytes:6288 (6.1 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:<IP_ADDRESS>  P-t-P:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: fe80::e099:2f14:a0f0:2edf/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:288 (288.0 B)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:b7:c3:c2
          inet addr:PI_IP_ADDRESS  Bcast:192.168.X.XXX  Mask:255.255.255.X
          inet6 addr: fe80::997a:c15a:a24:5cad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:697 errors:0 dropped:44 overruns:0 frame:0
          TX packets:346 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:75076 (73.3 KiB)  TX bytes:101164 (98.7 KiB)

iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s <IP_ADDRESS>/24 -o wlan0 -j MASQUERADE

iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

PI_IP_ADDRESS replaces the IP address of the Raspberry Pi.

Have you tried reaching it on the local network @raspberrypivpn

Yeah, doesn’t work on local network either.

@raspberrypivpn output of systemctl status openvpn please

● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled)
   Active: active (exited) since Fri 2017-10-20 21:09:48 BST; 23s ago
  Process: 530 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 530 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvpn.service

Oct 20 21:09:48 raspberrypi systemd[1]: Started OpenVPN service.

What raspbian are you on @raspberrypivpn ? I've had some glitches on Stretch.

Raspbian Jessie

Also @raspberrypivpn can you run dig google.com on your Rpi to see if DNS works properly, and if its no problem run nano /etc/resolv.conf (Don't edit anything) also tell me what is in it!

@trilleplay it can be an option, but I don't think that is the problem!! Because the client can't even reach the Server ... so at this point doesn't matter if the server can resolve DNS or Not! =/ ... but that dns info is always good to have. will try to have some time to deep dive into this today ...

dig google.com
; <<>> DiG 9.9.5-9+deb8u13-Raspbian <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20368
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             133     IN      A       <IP_ADDRESS>

;; AUTHORITY SECTION:
google.com.             158881  IN      NS      ns1.google.com.
google.com.             158881  IN      NS      ns3.google.com.
google.com.             158881  IN      NS      ns4.google.com.
google.com.             158881  IN      NS      ns2.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         153468  IN      A       <IP_ADDRESS>
ns2.google.com.         160255  IN      A       <IP_ADDRESS>
ns3.google.com.         160255  IN      A       <IP_ADDRESS>
ns4.google.com.         160255  IN      A       <IP_ADDRESS>

;; Query time: 9 msec
;; SERVER: 192.168.X.X#53(192.168.X.X)
;; WHEN: Sat Oct 21 11:11:00 BST 2017
;; MSG SIZE  rcvd: 191

nano /etc/resolv.conf
Generated by resolvconf
nameserver 192.168.X.X

@raspberrypivpn confirm me that that nameserver is your router IP address right??

Yes

@raspberrypivpn  ... provide me please your /etc/openvpn/server.con ... and the content of one of the clients*.ovpn  Hide sensitive information please ... and double check if all IP Addresses match!

Can you please post the output of ip addr

Output of ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul                                                                                t qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOW                                                                                N group default qlen 1000
    link/ether RASPBERRY PI MAC ADDRESS brd ff:ff:ff:ff:ff:ff
    inet6 fe80::e6a3:5cee:de95:e3b5/64 scope link tentative
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP g                                                                                roup default qlen 1000
    link/ether RASPBERRY PI MAC ADDRESS brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::997a:c15a:a24:5cad/64 scope link tentative dadfailed
       valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast sta                                                                                te UNKNOWN group default qlen 100
    link/none
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::710f:4ca6:3392:55ac/64 scope link flags 800
       valid_lft forever preferred_lft forever

/etc/openvpn/server.conf
dev tun
proto udp
port PORT NUMBER
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_RANDOM CHARACTERS.crt
key /etc/openvpn/easy-rsa/pki/private/server_RANDOM CHARACTERS.key
dh /etc/openvpn/easy-rsa/pki/dh1024.pem
topology subnet
server <IP_ADDRESS> SUBNET MASK
# server and remote endpoints
ifconfig <IP_ADDRESS> <IP_ADDRESS>
# Add route to Client routing table for the OpenVPN Server
push "route <IP_ADDRESS> <IP_ADDRESS>"
# Add route to Client routing table for the OPenVPN Subnet
push "route <IP_ADDRESS> <IP_ADDRESS>"
# your local subnet
push "route <IP_ADDRESS> <IP_ADDRESS>"
# Set your primary domain name server address for clients
push "dhcp-option DNS <IP_ADDRESS>"
push "dhcp-option DNS <IP_ADDRESS>"
# Override the Client default gateway by using <IP_ADDRESS>/1 and
# <IP_ADDRESS>/1 rather than <IP_ADDRESS>/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 10 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
log /var/log/openvpn.log
verb 1
# Generated for use by PiVPN.io

.ovpn file
client
dev tun
proto udp
remote IP ADDRESS PORT NUMBER
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_ijDcNTMHUTWocfBt name
cipher AES-256-CBC
auth SHA256
comp-lzo
verb 1
<ca>
-----BEGIN CERTIFICATE-----
MIICJjCCAY+gAwIBAgIJAN9TfczNizbUMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
BAMMCENoYW5nZU1lMB4XDTE3MTExMTIxMjkyMFoXDTI3MTEwOTIxMjkyMFowEzER
MA8GA1UEAwwIQ2hhbmdlTWUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALmi
EXKc5e1ZP/5dCf0CNKzj1i0/fDMdtTPRrNcflbzm6MteXdanPAQSlJYAWp1Io1C/
+BSXpGb38sy4pZD5oJFzdkugglASOvZgF2qiAADLuGJRQmFxab+9eCUcE4B4HzAr
rtpQr92EaG412eY9pnmhi5IIpJKzSft2pUTrfRhVAgMBAAGjgYEwfzAdBgNVHQ4E
FgQUKoW8Aq7Opz84PDdMZthPHYTjXdQwQwYDVR0jBDwwOoAUKoW8Aq7Opz84PDdM
ZthPHYTjXdShF6QVMBMxETAPBgNVBAMMCENoYW5nZU1lggkA31N9zM2LNtQwDAYD
VR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADgYEANDoIrqku
tLHXLJ5N1meNJ0eyBjX02oXO7U6KOm069Zw6dZY6dN4skZqJ7lNvWnxDT1MfWubf
1IvJs92UcUqkTk6E1TycTsqtTD7RYNSrZIXq38YWTpUbYP9rXkg3r+Z2F/cUtNZW
wlr83Zacvn/i7UA0SSQYqp89SCAQCtu/ymw=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIICPjCCAaegAwIBAgIRALYNaVt0SiroWmengqbUg48wDQYJKoZIhvcNAQELBQAw
EzERMA8GA1UEAwwIQ2hhbmdlTWUwHhcNMTcxMTExMjEzNTA0WhcNMjcxMTA5MjEz
NTA0WjAQMQ4wDAYDVQQDDAVVc2VyMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEAsqiLU6Ec+h/8nk/aNewpamw6T4V9LA3tM6U93npLcumBWhXlJoHZLOQs17iV
ZDy1qrJSLEyobR+JtriKEezzyLRLqgxU+aDsSS4UmGgkM2JZxIapHtwI2wt6SikN
u9e2idmcIsw4emP8C2qDDCogS+4jKhb2nVoJiQmd7CsiJv8CAwEAAaOBlDCBkTAJ
BgNVHRMEAjAAMB0GA1UdDgQWBBTvzGYeC7JPtP2uleQCwATOix/8nDBDBgNVHSME
PDA6gBQqhbwCrs6nPzg8N0xm2E8dhONd1KEXpBUwEzERMA8GA1UEAwwIQ2hhbmdl
TWWCCQDfU33MzYs21DATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4Aw
DQYJKoZIhvcNAQELBQADgYEANqevYy+Ncv73fhDjsCT/4e7u0pLSge89tSY38h8U
7ScwML6LfBQxEpT/X46u/UFzR5FAN2av0B2Ufbn7sLO944A0F8eN3VGCV9R+fUCo
S1dkB+iXLWVMQWFWkONiDREpT+Q/8CEkDIINp0DWZoAop8TmLNHS9WZswo067KI9
LoI=
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIpuVXanE7SOACAggA
MBQGCCqGSIb3DQMHBAiEWd9RUm5lLwSCAoB08aYESkYVe2uQRfCl7hc0HyQp/JqI
LrtZibG5PZ0nm5+Uvi/ynDknjvpqXt/O6tjMXD4R2THi9ccFZPaQbk0T8ZEUHahj
iYen7vXuRpqeGUvS+H6McJnBx00CAPIdoklKXvo1Cg49j0G5ave+bcXU7MFfsd0q
5FS8JvvC+T8ynEePz0evuFTlutdfpCcCEJNGHxgE8UD5ryRJzpolpIkiuBkWF/fm
tSYnUbxJwVcDy9Ne9Jugf3OLMWJMhcM7GA1Tec9B4uj/y5+CTKKFbgicDiZTQyXS
T9LpzF2P2ML3tfr8UPaeg4ibwLIdymDFpowwGlRv7Zmct+9ZSUB+ofgzwTG3jWDo
xovO66Be7V100VEpTyXNDA2jFeKwZBERJW3tvk3zEZwTQonwigTrhryoPYzuB3Vz
PFVNIkOT9QD/kQwrLmwxORGJ5HDTaqQ0ESLi3KKi20K2OAxxSqkL2I7BY0B5+U6k
TWpGb6HiBNCc6jEg+SZ8wCBmD/EdcgAVLuyOTpA59PZ27pr+shG2dCmk5Bq7RTtt
auE3FFnGcBMVvn6dT6xTHOqk4+lmLcITTNao1UM/kgk5o2HIJu9osF9s+81OZTGF
s56yzuYv69Zqea34+GCvkSpkj5togTo+6P6VGBlkfCg9jcV++niEiH3Tp6hcHYbV
NY2Vc58ukgpXW8k5UiKrB3G4yQ+JfQKuZXvZEZ1dKZON2G4a1Qp0lvIJzpqUkYEh
Ip4FELfWs5IEet20g1xqB+Oy+CqX8xdvZkqT2XkE8u+PCwicSvCLaSHPHYrYXCAI
8FLu8crH56hKk9Nr6gfc11wMeex6y7HyHUN0U0q3HeXw50y8pQlMXAow
-----END ENCRYPTED PRIVATE KEY-----
</key>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
d4c9f88c8e1e89f71e632f5d6d4c68fc
3c68c86d21938297cae999a5fd3f90c7
455c18a6e8f3809bf86a05e525b28d09
9abb3f8e9958859a7249c6cf81bd9c37
c4ffcb2314f5b94372f3b0e520abe877
a7e437418e50c6159000c277b78aca66
be526133bbad8ea9ced218096536500f
b46f22309d84ee012f62320a34d1b9c8
a7ae03ef2bcdf63ef4ea69800c7d73bf
3c814a2b26da47663486aa55d8b28561
260a9199fd6868585403a4e815517c57
ef2b70b46bc384cc7ec017d9a4481e3b
f071fddcd5e5f214dfe07b5cbebb44be
00dbccc9668545fe0fdfb8b20f53cbc2
7f6348f5674b115b1f7ba0b196a1f310
dfee23d690d8d5a71f9074e669c40062
-----END OpenVPN Static key V1-----
</tls-auth>

I'm having this issue as well, my config and outputs are almost identical to @raspberrypivpn except I'm using eth0.

Same issue, same clients, the pivpn used to work then would stop (assuming a dynamic IP change) but now I can't even connect on my local network.
Only difference is I'm using en0 instead of wlan0 (it has worked on both interfaces before for me though) and my /etc/resolv.conf reports
# Generated by resolvconf nameserver <IP_ADDRESS>
instead of my router address. When I set it to my router it just switches back on reboot.

@cfcolaco i have been going over a lot of issues regarding pivpn on Github and i frequently saw your name. I hope you can help me with my problem. I've been trying to instal pivpn for over a week now.
I have a RevPi Core with jessie on it.
It is connected with a static IP address to a router. I port forwarded 1194 as well as 443. I first did this in port forwarding and i also tried de virtual server.
I tried TCP and UDP with the default ports.
listed below are a few logs (this is TCP , if you want , i can also reïnstall and give you the logfiles with UDP)
when i try to connect to server:
Mon Apr 16 15:57:35 2018 OpenVPN 2.4.5 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Mar  1 2018
Mon Apr 16 15:57:35 2018 Windows version 6.1 (Windows 7) 64bit
Mon Apr 16 15:57:35 2018 library versions: OpenSSL 1.1.0f  25 May 2017, LZO 2.10
Mon Apr 16 15:57:35 2018 MANAGEMENT: TCP Socket listening on [AF_INET]<IP_ADDRESS>:25351
Mon Apr 16 15:57:35 2018 Need hold release from management interface, waiting...
Mon Apr 16 15:57:35 2018 MANAGEMENT: Client connected from [AF_INET]<IP_ADDRESS>:25351
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'state on'
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'log all on'
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'echo all on'
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'bytecount 5'
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'hold off'
Mon Apr 16 15:57:35 2018 MANAGEMENT: CMD 'hold release'
Mon Apr 16 15:57:45 2018 MANAGEMENT: CMD 'password [...]'
Mon Apr 16 15:57:45 2018 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Mon Apr 16 15:57:45 2018 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Apr 16 15:57:45 2018 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Apr 16 15:57:45 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:45 2018 Socket Buffers: R=[8192->8192] S=[8192->8192]
Mon Apr 16 15:57:45 2018 Attempting to establish TCP connection with [AF_INET]<IP_ADDRESS>:443 [nonblock]
Mon Apr 16 15:57:45 2018 MANAGEMENT: >STATE:1523887065,TCP_CONNECT,,,,,,
Mon Apr 16 15:57:46 2018 TCP connection established with [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:46 2018 TCP_CLIENT link local: (not bound)
Mon Apr 16 15:57:46 2018 TCP_CLIENT link remote: [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:46 2018 MANAGEMENT: >STATE:1523887066,WAIT,,,,,,
Mon Apr 16 15:57:46 2018 Connection reset, restarting [0]
Mon Apr 16 15:57:46 2018 SIGUSR1[soft,connection-reset] received, process restarting
Mon Apr 16 15:57:46 2018 MANAGEMENT: >STATE:1523887066,RECONNECTING,connection-reset,,,,,
Mon Apr 16 15:57:46 2018 Restart pause, 5 second(s)
Mon Apr 16 15:57:51 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:51 2018 Socket Buffers: R=[8192->8192] S=[8192->8192]
Mon Apr 16 15:57:51 2018 Attempting to establish TCP connection with [AF_INET]<IP_ADDRESS>:443 [nonblock]
Mon Apr 16 15:57:51 2018 MANAGEMENT: >STATE:1523887071,TCP_CONNECT,,,,,,
Mon Apr 16 15:57:52 2018 TCP connection established with [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:52 2018 TCP_CLIENT link local: (not bound)
Mon Apr 16 15:57:52 2018 TCP_CLIENT link remote: [AF_INET]<IP_ADDRESS>:443
Mon Apr 16 15:57:52 2018 MANAGEMENT: >STATE:1523887072,WAIT,,,,,,
the commands systemctl status openvpn and @server
pi@RevPi1962:~ $ systemctl status openvpn
● openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled)
Active: active (exited) since ma 2018-04-16 15:55:15 CEST; 25min ago
Process: 526 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 526 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/openvpn.service
pi@RevPi1962:~ $ systemctl status openvpn@server
●<EMAIL_ADDRESS>- OpenVPN connection to server
Loaded: loaded<EMAIL_ADDRESS>disabled)
Active: active (running) since ma 2018-04-16 15:55:14 CEST; 25min ago
Process: 468 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf (code=exited, status=0/SUCCESS)
Main PID: 487 (openvpn)
CGroup<EMAIL_ADDRESS>└─487 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn...
pivpn debug
pi@RevPi1962:~ $ pivpn debug
::: Generating Debug Output
:::                                     :::
::              PiVPN Debug              ::
:::                                     :::
::      Latest Commit                    ::
:::                                     :::
commit 33ed7e7012d5278162d72c3477a0d9b4345520ab
Merge: 1375fa1 30397f2
Author: redfast00<EMAIL_ADDRESS>Date:   Sat Mar 24 13:39:55 2018 +0100
Merge pull request #502 from stan3/nonexecutable

Changed permission bits on text files.

::: Copy saved to /tmp/debug.txt
iptables
pi@RevPi1962:~ $ sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s <IP_ADDRESS>/24 -o eth0 -j MASQUERADE
pi@RevPi1962:~ $ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
server.conf and client.conf
dev tun
proto tcp
port 443
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_ZHRTN1a0WFHpJs3h.crt
key /etc/openvpn/easy-rsa/pki/private/server_ZHRTN1a0WFHpJs3h.key
dh /etc/openvpn/easy-rsa/pki/dh1024.pem
topology subnet
server <IP_ADDRESS> <IP_ADDRESS>
Set your primary domain name server address for clients
push "dhcp-option DNS <IP_ADDRESS>"
push "dhcp-option DNS <IP_ADDRESS>"
Prevent DNS leaks on Windows
push "block-outside-dns"
Override the Client default gateway by using <IP_ADDRESS>/1 and
<IP_ADDRESS>/1 rather than <IP_ADDRESS>/0. This has the benefit of
overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 10 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
Generated for use by PiVPN.io
client
dev tun
proto tcp
remote <IP_ADDRESS> 443
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_ZHRTN1a0WFHpJs3h name
cipher AES-256-CBC
auth SHA256
comp-lzo
verb 5

-----BEGIN CERTIFICATE-----
MIICJjCCAY+gAwIBAgIJAM1NFrxDbw6SMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
BAMMCENoYW5nZU1lMB4XDTE4MDQxNjEzMjY1NFoXDTI4MDQxMzEzMjY1NFowEzER
MA8GA1UEAwwIQ2hhbmdlTWUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANln
UQ/vRII3rqLKVC/n0Z48C3v6n/Xw/9lt6XF2fUUuq3IJ2cFXQJYjefD3wgpD0fHi
q/YQjgXbDyMBOIoIV1IXbasPaBc6vVBUZA62r6qb8UhTP/mu5Feu8aBnP9GvDRXM
5gOi+cIvtqjbJSSJNjFgNfZYPB6L7vUNz45QqwJpAgMBAAGjgYEwfzAdBgNVHQ4E
FgQUJkY3qGOnY/WDVEg+kiI6MqkNpZAwQwYDVR0jBDwwOoAUJkY3qGOnY/WDVEg+
kiI6MqkNpZChF6QVMBMxETAPBgNVBAMMCENoYW5nZU1lggkAzU0WvENvDpIwDAYD
VR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADgYEAIgHj/JO5
ddcNqVyoTZ/PH2ItNo2nagS41T/zYT+CbvAme2TBxV2Jmm33gVCtHrcrfhH53Dqn
abPVHE3sDgU6BB2dtbQ4cXrFh3oP6Ah/RT+FXBjXYsvJ/DHNU5x7hzMN4Dky/si8
9L3cYfXE7PsDhCdiDuQN+62MtygcxU6SSP8=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIICPTCCAaagAwIBAgIQSSngK6FVo1rluBIbb/FHWTANBgkqhkiG9w0BAQsFADAT
MREwDwYDVQQDDAhDaGFuZ2VNZTAeFw0xODA0MTYxMzQxMTlaFw0yODA0MTMxMzQx
MTlaMBAxDjAMBgNVBAMMBXBpMDAwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQC7nZESgxHDQYqDs4Pvc+gv6QqeMbo5/JuDIetPYXkLehcQ96EO9QEr9DGC1KoY
tQy3mVEOLuY+Vtm8wgl7qUlM6jSzLMWiOZvA18BOexoTf3tvmkUh4QRglLQtwjJ6
Ei7J6vGS0SJxZKXHD0BKUy1bAfAskRdzWYlJvUnrzoEuQQIDAQABo4GUMIGRMAkG
A1UdEwQCMAAwHQYDVR0OBBYEFOOklByuV5V4jK+Q+DxoVWuksg9lMEMGA1UdIwQ8
MDqAFCZGN6hjp2P1g1RIPpIiOjKpDaWQoRekFTATMREwDwYDVQQDDAhDaGFuZ2VN
ZYIJAM1NFrxDbw6SMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDAN
BgkqhkiG9w0BAQsFAAOBgQB1mpK3NesVsUsjiPL/jAuSDZfBeICbURenKuywqOkq
oeF75tVlOan8n/irhYlAVpC+nyw961a6GLt7hoxeitl4ELrTrSPdywNmjX/rs89E
Gs+jsnRemvgo7Tgjup4VvQRVCzJk8t4qfsqHEk1ttJxSjVFV0aVV+KAWQtf7uC60
fQ==
-----END CERTIFICATE-----

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C05B565CE23726E9
WhU8Cq36qe6apVnqlnAj5OSPcCBugZyYcYU+OkZhxGdEGpEMLr2WFjbT/X8CLcMZ
tmq+yEWjiQL+zZNAty+AGmKaG8qlQsWvsIKSDwcQXrzTGJ4ZPXQWy+qhflMtGh/B
q5D/CxVTl8XAUaHNKPGMxpibQhxu5TuULtnYFW56cPu22H47nSZzui3ClJIKbAZt
3cz8ZncB8xNcx0MVJ8dkGj3c51ABkW44XnAsbIys9shoBIYadvkc8YNmt8e5TWU4
PaK+kGc0o7rMFAP/3rSN2IaOBJ0/ym6aGnJF3GnPWsXkSerIC3wvRqT8lKcp1eo1
yfO0/bdvjFGc+dWDA1sV0NGEIS5cfYO4xiH/TmQ4NAQ/Ci8lleEz8GyHr2u5TRTU
PeW/ovliyWHBFTZD+O3o11P26sJ598bX5WKtNHKSCRaWSwMtaj8a25fzdaDAdg2f
S9Z1oDUVncYuZJkn+A/8kd5kJhXCG3Iw1n9dv5fk81IjDCns4OxwJ4UYHNhAzTY4
vxrsJ4pqCKi7u+4BUxgnxFMAWwi3bOpU4D5JngkbMxhPef0C8uvX4u+dNX3jfSZX
QuF2FJBumzG9GiOj3jN9W9PwHiVOB0jD/eITY/fjW/No+5pbvatSKUl3UFYkftM5
CfYh/CRnOB9FS15lMmiwo+X2rQaWSRPho2B7RQt42VuXOEweQIRvE+dDleIgsiLc
hFsfWUDjYHwFEDkHd82l07t6PGBXYUT0NV4Hf/CwZiejrIshFSY1xSYZAgHAhERb
gtxGTf69ay++4ctxWCo6UGOExIOu18E124HNqCWALGpeRHb2wGtwpA==
-----END RSA PRIVATE KEY-----

2048 bit OpenVPN static key

-----BEGIN OpenVPN Static key V1-----
b1831878839da6683cbb9e62326e628a
795cc6b3bd03f13d7595df5d5d4cef49
dd20a1370bde8f0d9de644abbbcbdffb
8a968bd26ebc8da6671f098bf1d664b5
8cab311f8a6be400eb62ffb43cbce4b9
4bd92032740fba513434830bfb193ddf
27dc335e60f880d42de26d406dfec336
2903bc7123276d5f74561491ff25de95
01b0ae6bb12b7682639e9810b541ef3c
b04a2aac2a15d579c53759f729b12646
6bfc75113104fc46a0fe9564497c2463
bc334f876d21dc79162d0ef599dfd8cf
1d5882aeb87c617f36e47c347cd2031e
d84760bd20e67feae0c7c37402b9163f
cd415bd6c2107ab0fce6db9669f93866
94bd0ae593de657d05b88f2f43a10715
-----END OpenVPN Static key V1-----

I hope this is enough information to help me fix my connection problem. I'm really desperate here.
if you want, i can also give you the message when i tried to connect with UDP:
Mon Apr 16 16:10:09 2018 SIGUSR1[soft,tls-error] received, process restarting
Mon Apr 16 16:10:09 2018 MANAGEMENT: >STATE:1523887809,RECONNECTING,tls-error,,,,,
Mon Apr 16 16:10:09 2018 Restart pause, 300 second(s)
Mon Apr 16 16:15:09 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]<IP_ADDRESS>:1194
Mon Apr 16 16:15:09 2018 Socket Buffers: R=[8192->8192] S=[8192->8192]
Mon Apr 16 16:15:09 2018 UDP link local: (not bound)
Mon Apr 16 16:15:09 2018 UDP link remote: [AF_INET]<IP_ADDRESS>:1194
Mon Apr 16 16:15:09 2018 MANAGEMENT: >STATE:1523888109,WAIT,,,,,,
Mon Apr 16 16:15:09 2018 read UDP: Unknown error (code=10054)
Mon Apr 16 16:15:11 2018 read UDP: Unknown error (code=10054)
Mon Apr 16 16:15:15 2018 read UDP: Unknown error (code=10054)
Mon Apr 16 16:15:23 2018 read UDP: Unknown error (code=10054)
Mon Apr 16 16:15:39 2018 read UDP: Unknown error (code=10054)
Mon Apr 16 16:16:09 2018 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Apr 16 16:16:09 2018 TLS Error: TLS handshake failed
Mon Apr 16 16:16:09 2018 SIGUSR1[soft,tls-error] received, process restarting
Mon Apr 16 16:16:09 2018 MANAGEMENT: >STATE:1523888169,RECONNECTING,tls-error,,,,,
Mon Apr 16 16:16:09 2018 Restart pause, 300 second(s)

@NienkeB

Restart the server: sudo systemctl restart openvpn
Attempt a connection from a client (outside of your local network)
Post the log from the server: cat /var/log/openvpn.log
IMMEDIATELY revoke that certificate since you have just leaked it on github

@orazioedoardo I'm having the same issue and my cat /var/log/openvpn.log has just the following lines:
Apr 24 01:07:41 ezekiel-pi-vpn ovpn-server[366]: Options error: Unrecognized option or missing parameter(s) in /etc/openvpn/server.conf:23: tls-crypt (2.3.4)
Apr 24 01:07:41 ezekiel-pi-vpn ovpn-server[366]: Use --help for more information.
Apr 24 01:14:28 ezekiel-pi-vpn ovpn-server[4327]: Options error: Unrecognized option or missing parameter(s) in /etc/openvpn/server.conf:23: tls-crypt (2.3.4)
Apr 24 01:14:28 ezekiel-pi-vpn ovpn-server[4327]: Use --help for more information.

try this guide after uninstalling pivpn, then reinstall. Apparently the config file that pivpn had to read was outdated & directories were not correct, which I noticed after reinstalling a bunch of times. Anyways, it seemed to work for me, at least!

I had a similar problem, where after setting up PiVPN and using OpenVPN, i was able to connect and hit the PiHole admin console, but no web sites would work. Kept getting the error "this site can't be reached"
If you're running PiVPN together with Pi Hole, try the following from the Pi Hole Web Admin console:
Settings --> System -->DNS tab. Under "Interface Listening Behavior", select # "Listen on all interfaces"


Slow download Youtube-dl. WHY ?

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.01.21. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.01.21

Before submitting an issue make sure you have:

[ ] At least skimmed through the README, most notably the FAQ and BUGS sections
[ ] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2018.01.21
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.

@trname
Can I do this somehow by using Ubuntu (Store app version) on Windows?
I usually have a .bat file which I open and input the URL to download videos, but can I somehow link the .bat script to Ubuntu subsystem?

2018.02.03 introduces a new experimental option --http-chunk-size for chunk-based downloading. In particular it allows to speed up downloading of DASH formats on Youtube. According to my observations optimal chunk size for Youtube is <=10MiB (apparently that's where throttling starts): --http-chunk-size 10M.

Sorry for pooping this up again, is there a way to use this --http-chunk-size with python, meaning the options available when you create a new object youtube_dl.YoutubeDL(options).
The list of options is describe in the following like, but I could not find the aforementioned setting there:
https://github.com/rg3/youtube-dl/blob/3e4cedf9e8cd3157df2457df7274d0c842421945/youtube_dl/YoutubeDL.py#L137-L312

It's described in downloader since it's a downloader option.

Thanks for replying, not sure I understand, though.
Just saw this:
https://github.com/rg3/youtube-dl/commit/ba515388b8dc608a07b4390b601e227c1fce6fa9#diff-28d2a60e59d5c0e2b113f2863e935e16R354
so I guess I need to use it like so http_chunk_size, am I right?
I am using the following options, and still getting very slow speeds after about 10 seconds:
    options = {
        'writethumbnail': True,
        'outtmpl': yt_song_structure['playlist_path'] + '/' + yt_song_structure['title'] + '.%(ext)s',
        #'force-ipv4': True,
        'extractaudio': True,
        'noplaylist': True,
        'http_chunk_size': 2097152,
        #'max_downloads': 1,
        'progress_hooks': [youtubeDlHook],
        'format': 'bestaudio/best',
        'format': 'webm',
        #'ignoreerrors': True,
        'postprocessors': [
          {
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            #'preferredquality': '192',
          },
          {'key': 'FFmpegMetadata'},
          {'key': 'EmbedThumbnail'},
        ]
    }

Simply don't touch it. It's enabled by default. Most likely your version is outdated.

Well, I'm not a telepathist. If you believe there is a bug open a new issue with properly filled issue template.


feat(SelectDropdown): Add search icon to SelectDropdown based on isSearchable

Overview

This PR update SelectDropdown component to look like a search component when the prop isSearchable is passed by updating the icon to a search icon.

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: EN-2089
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

Screenshot of the update

PR for alpha change on monolith: https://github.com/codecademy-engineering/Codecademy/pull/33191

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.218-alpha.613778.0@codecademy/gamut-labs@33.6.9-alpha.613778.0@codecademy/gamut@51.0.1-alpha.613778.0@codecademy/monaco@0.6.96-alpha.613778.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6356d6c27886da069d8f6ac7--gamut-preview.netlify.appDeploy Logs

@jenesh can you add the alpha packages to the monolith + monorepo so i can test this change there? thank you!

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.219-alpha.658ef9.0@codecademy/gamut-labs@33.6.10-alpha.658ef9.0@codecademy/gamut@51.0.2-alpha.658ef9.0@codecademy/monaco@0.6.97-alpha.658ef9.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://63594525fff808092de757c5--gamut-preview.netlify.appDeploy Logs


Error in Setup_Script.sql when run SQL Query

Query :-
alter application package cortex_app_pkg add version v1 using @cortex_app.napp.app_stage ;
Error:-
Error in file<EMAIL_ADDRESS>syntax error on line 11 at position 6 unexpected 'ALL'.
Request from Snowflake community :-
please figure out error asap so I can go forward application "Build an AI App with the Snowflake Native App Framework and Snowflake Cortex" ?

Double-check that the content of setup_script.sql is the same as in the repository (maybe except for changes from #1 ). Line 11 should not have ALL in it.
If the setup_script.sql was changed on the stage, you can remove it and upload a new copy using the UI.

recently aI have double checked again from clone repo code then upload same file then same error occurred after run query.


Create Usage Plugin API doc

A usage plugin API doc needs to be created similar to the entitlement plugin doc.  This should cover the use cases for usage plugin API.

Outline of the doc should be similar to the other ones we have:
Overview
Provide pointer to usage api and a description of how it works
Use Case
This is used to fetch usage data from a third party metering system.


Improvements to images/videos

I've made two improvements to the code for adding images and videos:

Support for pathlib.Path (previously a crash would occur if you provide a pathlib.Path to a video on disk)
Support for arbitrary arguments to imageio functions (in some cases I've had to use custom values for macro_block_size; with this version you can input arbitrary such imageio arguments into add_image and add_video).

Thanks for the PR, Brendon. I don't want to support imageio kwargs through the public API to keep the option option to save images with a different backend in the future. Users can already do this to include images with custom formats and settings:
filename = str(uuid.uuid4()) + '.png'
imageio.imsave(array, str(outdir / filename))
doc.add_image(filename)

Does this seem like a reasonable solution? If you have another suggestion, please let me know.


Change authorship order

Codecov Report

Merging #347 into master will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #347      +/-   ##
==========================================
+ Coverage   73.32%   73.35%   +0.02%
==========================================
  Files          14       14
  Lines        3622     3626       +4
==========================================
+ Hits         2656     2660       +4
  Misses        966      966

Impacted Files
Coverage Δ

ross/utils.py
71.03% <0%> (ø)
:arrow_up:

ross/shaft_element.py
88.75% <0%> (+0.11%)
: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 1931ca2...29dcc71. Read the comment docs.


Link to download studio-pro

Please use the form below, leaving the prefilled data to help us. Thank you.
Page link: studio-pro
Document link: _index.md
My Issue/Suggestion
An easy button to go to the download section

Hi @johanflikweert thanks for the suggestion, I added the button to this RN page: https://github.com/mendix/docs/commit/2677f585d7533cebedc9c7fb1fe7e70943e865b0


Support for macOS

Since the main library is cross compiled, support should be added for macOS since Xamarin Forms has macOS support start with 2.3.5.

Very much agree

Me three.

@dansiegel This is a good suggestion, but we have no plans to support Xamarin macOS for Azure Mobile Apps.

Definitely, this should go right to the top of the list in my opinion. It would be silly for everyone out there to have to code their own custom sync engine (a Mobile Services substitute) just for your MacOS app. Please don't close this issue!

@elamalani I very much agree with @ltaljaard. With Xamarin Forms supporting Mac OS development, I believe we are going to see a boom of development for Mac as it greatly reduces the difficulty in making out existing applications work as native Mac apps. I understand that other features may be higher priority to the team, but supporting Mac should be considered a must add...

@dansiegel Thanks for using Azure Mobile Apps and your interest in adding this feature in the SDK. Please look at this section of the ReadMe that highlights the future of Azure Mobile Apps. At this time, we are not adding any new features in the SDK but your interest will help us to prioritize this work in the future.
Hope this helps. I'll close this issue but feel free to reach out if you have any other questions.


Can you add a option that make the variable name the same as its ID?

I like Zelezny very much,however, I usually name  id  like 'hello_world_btn' , and I'd like to name the variable 'hello_world_btn' ,too.Of course , I can change  the variable name in checkbox, but if there are too many views,  it's too horrible! Can you give a option to make it better ?

Naming variables with underscores is agains Java/Android guidelines, I don't think we will support that.

make same as id name?


Add operator to normalize data

Signed-off-by: shiyu22<EMAIL_ADDRESS>

Maybe the milvus server version mismatch with client version. Can you provide your milvus version and client sdk version?

/approve
/lgtm


Set window name to be the same as the selected tab name

What's the Problem?
I can't work fine if I don't want the tabs feature.. because every window name have the same name "Files"
Solution/Idea
Hello, I am using this program with a combination of the feature Anchors in WindowTop (A new concept that I think is better than window tabs)
I don't like tabs. I prefer to have multiple windows.
The issue is that every window has the same name so this is what I am getting

We can see the same issue in the taskbar

So the problem is very simple.. the window names are always the same.
This is how it should be

I really want that every window will have the name of the folder.
Otherwise, the program can't be used nice without tabs.
Please fix the issue.
Thanks
Alternatives
Using the default file explorer :(
Priorities
No response
Files Version
2.0
Windows Version
Windows 11 22000.194
Additional comment
No response

This issue should be resolved with #6762.


Add old courses to homepage

Closes #25
Went for a simple system, when a course is over, we just move it from Upcoming courses to Previous courses and remove the location (making the card smaller).

Just had a thought, do we have / need dev docs for these (i.e. to explain what to do when adding / removing courses?)

@JoeZiminski I added some brief instructions to the readme.


Typescript, theme can't override StepPositionIcon

In next.

StepPositionIcon is a private module.
https://github.com/mui-org/material-ui/blob/8aa2ff2a8b41c1681a896734f7482ddd7ea4f7ca/src/Stepper/StepPositionIcon.js#L19
We need to remove two private components from the overrides key list:

https://github.com/mui-org/material-ui/blob/8aa2ff2a8b41c1681a896734f7482ddd7ea4f7ca/src/styles/overrides.d.ts#L169
https://github.com/mui-org/material-ui/blob/8aa2ff2a8b41c1681a896734f7482ddd7ea4f7ca/src/styles/overrides.d.ts#L176

Thanks, I Just wanted to change the icon style but keep the standard position behaviour.

Oh so I can't use this comp or customise it in the theme?
I'm confused how to customise the step position icon colour and font.

@dcworldwide You can't use the overrides key of the theme. You need to apply a custom classname.

Apply a custom className to what? Stepper, Step or StepLabel?


Perhaps add JSDocs to the main autoComplete function?

I'm not sure if this is useful for anyone else. I do not wish to have it added just for me.
I think maybe the whole API should change instead, but for the time being maybe this is helpful?
Below I just added a few of the config options for testing. You can see how it works.

=xxx is a default value.
[] means it's optional.

/**
 * @desc This is autoComplete.js
 * @version 10.0.0
 * @example const autoCompleteJS = new autoComplete({config});
 *
 * @param {Object} config - Configuration options
 * @param {string} [config.name=autoComplete] - Prepended to all created DOM element class names.
 * @param {(string|Function)} [config.selector=#autoComplete] - Must point to or return the relevant input field or element that autoComplete.js should act upon.
 * @param {Object} config.data - Data source.
 * @param {(Array|Function} config.data.src - An array of values to search or a async or immediate function that returns an array of values to search.
 * @param {string[]} [config.data.keys] - Only used if config.data.src is an array of objects. Specifies which keys in the objects autoComplete.js should search.
 * @param {boolean} [config.data.cache=false] - Whether or not autoComplete.js should cache results from config.data.src or not.
 * @param {Function} [config.data.filter] - A function used to filter the returns from config.data.src before showing them to the user. Function signature: (Array), is given the results from config.data.src.
 */
export default function autoComplete(config) {
...
}

If you want, I can write it all.
Do you think it would be useful to anyone, or is it a waste of time?

https://jsdoc.app/tags-param.html

I believe that would be very helpful to many, and please feel free to pull a PR with the finalized version of it.

I think maybe the whole API should change instead

What do you propose to be changed with the API?

Cool, I will write up a proposal for the JSDoc. I've not used autoComplete.js for that long, so I will probably make some mistakes in the docs. Feel free to edit as much as you want.
I will not make a PR, I'll just dump it here.
Regarding the API, it's a bit confusing right now. I believe autoComplete.js is an older project so I think it would be good to first take a look at what is necessary, and what is good to have, and what is just not needed.
For example, with my limited knowledge of the code, of what users use in the library, and with no knowledge of your projects history, I think these things can just simply be removed completely:

config.name - This can be removed and this code can be changed to just remove "#" and other symbols from the .selector and use that instead

  ctx.selector = ctx.selector || "#" + name;
  resultsList.destination = resultsList.destination || ctx.selector;
  resultsList.id = resultsList.id || name + "_list_" + id;
  resultItem.id = resultItem.id || name + "_result";

config.data.cache
config.data.filter - people can just filter in config.data.src before returning
config.placeHolder
config.observe and the whole preInit concept
the DOMContentLoaded / readyState check in init
config.resultItem.highlight can just be a boolean, people can write their CSS to match it easily
config.selector can just be a string, I don't understand why the option for a function is there
config.resultItem.selected can be removed and just preconfigured to config.selector + "_selected"

But I am very ignorant and have a completely outside perspective. And there's probably other things that can be removed or simplified without hurting users that I've not seen yet.
Please don't think I'm attacking you or the code here, I am just trying to see how it can be made simpler and easier to use.

Here we go :-D Probably lots of mistakes in it, feel free to edit :+1:
/**
 * @description Creates a new instance of autoComplete.js with the given configuration.
 * @version 10.0.0
 * @see {@link https://tarekraafat.github.io/autoComplete.js/#/configuration}
 * @example
 * const autoCompleteJS = new autoComplete({config});
 * @param {Object} config - Configuration options.
 * @param {string} [config.name=autoComplete] - Prepended to all created DOM element class names.
 * @param {(string|Function)} [config.selector=#autoComplete] - Must point to or return the relevant input field or element that autoComplete.js should act upon.
 * @param {Object} config.data - Data source.
 * @param {(Array|Function} config.data.src - Values to search or an async or immediate function that returns an array of values to search.
 * @param {string[]} [config.data.keys] - Only used if config.data.src is an array of objects. Specifies which keys in the objects autoComplete.js should search.
 * @param {boolean} [config.data.cache=false] - If true, autoComplete.js fetches all config.data.src when initialized and never again.
 * @param {Function} [config.data.filter] - Used to filter returns from config.data.src before showing them to the user. Signature: (Array), is given the results from config.data.src.
 * @param {Function} [config.trigger] - Return true if you want autoComplete.js to start. Signature: (event, query). Default trigger function returns true if input field is *NOT* empty *and* greater than or equal to config.threshold.
 * @param {Function} [config.query] - For manipulating the input value before running the search, for example if you want to remove spaces or anything else. Signature: (string), must return string, is given the raw input value.
 * @param {string} [config.placeHolder] - Placeholder to set on the input element. For example "Search...".
 * @param {boolean} [config.observe=false] - ???
 * @param {Number} [config.threshold=1] - Minimum number of characters required in the input before triggering autocompletion.
 * @param {Number} [config.debounce=0] - Delay in milliseconds after input for autocompletion to start.
 * @param {(string|Function)} [config.searchEngine=strict] - "strict" checks if the given query is contained within the data, "loose" returns every result where every character in the query is present in the data in any order and location. Signature: (query: string, record: any), given the manipulated query input and each data.src array entry or for each entry[config.data.keys].
 * @param {boolean} [config.diacritics=false] - Enable to normalize query and data values using String.normalize and by removing u0300 through u036f. See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize}.
 * @param {(Object|boolean)} [config.resultsList] - false to disable result list rendering.
 * @param {string} [config.resultsList.tag=ul] - HTML tag to use for rendering the result container.
 * @param {string} [config.resultsList.id=autoComplete_list] - ID given to the result container.
 * @param {string} [config.resultsList.class] - Class names to give to the result container.
 * @param {(string|Function)} [config.resultsList.destination] - Selector that points to where you want to insert the result elements. Defaults to config.selector. Signature: ().
 * @param {string} [config.resultsList.position=afterend] - Position relative to config.selector where to insert the results list. See {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement#parameters}.
 * @param {Function} [config.resultsList.element] - Invoked before showing the results list. Allows manipulation of the DOM before it is added to the document. Signature: (list: HTMLElement, data: { query, matches, results }), where list is the container element.
 * @param {Number} [config.resultsList.maxResults=5] - Maximum number of results to render.
 * @param {boolean} [config.resultsList.tabSelect=false] - Allows the user to navigate the results list using Tab key. If disabled (as default), Tab key will close the list.
 * @param {boolean} [config.resultsList.noResults=false] - If enabled the results list will render when there are zero matches. For example if you want to show a custom message or help to the user in config.resultsList.element.
 * @param {Object} [config.resultItem] - Customize each rendered autocompletion result.
 * @param {string} [config.resultItem.tag=li] - HTML tag to use for rendering each result.
 * @param {string} [config.resultItem.id=autoComplete_result_index] - Prefix to use for the ID of each result element. _ and a number from 0 to maxResults is appended, so the final ID is for example "autoComplete_result_0" to "autoComplete_result_10".
 * @param {string} [config.resultItem.class] - Class names to give to each result element.
 * @param {Function} [config.resultItem.element] - Invoked before showing the results list. Allows manipulation of the DOM before it is added to the document. Signature: (item: HTMLElement, data: { match, value, [key] }).
 * @param {(boolean|string} [config.resultItem.highlight=false] - Enable to highlight matching characters using HTMLMarkElement, or a string of CSS classes to add to any generated mark elements.
 * @param {string} [config.resultItem.selected] - CSS classes to add and remove from result items the user navigates to using the keyboard.
 * @param {Object} [config.events] - Allows adding custom or overriding internal event handling.
 * @param {Object} [config.events.input] - Maps event names to event handlers for the input element. Each key must be a valid event name, see {@link https://developer.mozilla.org/en-US/docs/Web/Events}, and each value must be an event handler function. Default handlers are keydown and blur.
 * @param {Object} [config.events.list] - Same as config.events.input, but for the result list container element. Default handlers are mousedown and click.
 */

Thanks a lot for your great efforts!
I highly appreciate constructive feedback like yours. It's essential for the library's healthy development.
I see you got good points, and I'll make sure to consider them, noting that I rely on this library for my personal projects, and I believe other people also do, which makes me kind of responsible for their experience as well.
Yet, please never stop sharing your kind feedback. It will always be more than welcome as long as it's constructive, and I'll make sure to accommodate them as much as possible.
Thanks again! :)

Thank you for listening.
I've updated my comment above now, I found some places where I forgot closing parantheses ) and I added text to config.observe, which previously said ??? :-D
Like I said, I think step one is to simplify - and there are a few good reasons for this; one is that it makes the library easier to use/understand for the first time, second is that there's less code to maintain, but more importantly for my thoughts it makes it easier to get a top down overview and the process of evaluating how the API surface might be improved in the future.
When I say "improve" API, I also mean so that it makes it easier for people to use. Not technically improving it. I don't care if it's a function, class, ES7, blah blah - the way it is set up currently I would describe it as a "magic object". It's just a tree of data, functions, and events that is hard to get a grip on when you first start using the library.
Modern editors provide so much help if the API is structured in such a way that they can help. With a "magic object", they don't help as effectively.
I hope that makes sense.

Updated with config.wrapper.

Many thanks! :)


What are the available indexes for Hollow

I am a rookie in Hollow. In my project, I try to use the Hollow PrimaryKeyIndex, UniqueKeyIndex, HashIndex and some MatchQuery method. But Its results do not match my expectations very well.
I want to use indexes to retrieve certain objects whose property 1 is greater or less than a certain value. Furthermore, I would like to know if Hollow has any methods for using Boolean expressions for retrieval. And is there a relevant operation method for 'column IN (value1, value2,...)' in SQL?

@wswbxwswbx As far as I know, you have to create that programmatically.


There seems to be a much easier way to add the SharePoint Documents subgrid to a Main Form

Hello, I am currently working on adding SharePoint integration for our Power Apps Environments, and I came across this document which provides a way to add a SharePoint Documents subgrid to a Main Form using FetchXML.
I don't understand why this method is provided because there seems to be a much simpler method (which has been available for close to 2 years)...
Using the Make portal, I am able to simply add a standard SubGrid (related records) to a Tab in my model-driven app, and select the "Documents (Regarding)" table.
I have attached a pic for reference.  If there is something I am missing, I would love to know.
Thank you
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 772dad73-84e3-4afb-ed0f-7937aa0771e2
Version Independent ID: 5136382e-ef93-f0bf-5e9c-595b935909b7
Content: Add the Documents tab to the main form for a table - Power Apps
Content Source: powerapps-docs/maker/model-driven-apps/add-documents-tab-entity-main-form.md
Service: powerapps
Sub-service: mda-maker
GitHub Login: @Mattp123
Microsoft Alias: *matp

Thanks for your comment, @StillLearning1. This issue has been assigned to the doc author for review.

I believe the remaining issue is that you need to change the view to something that is hidden in the form editor. Here's a blog post that I have been using as the reference for getting this thing to work, since using the method in the Docs page didn't give me the desired end result for some reason: https://mscrmonline.wordpress.com/2021/03/05/how-to-add-sharepoint-document-files-tab-to-a-dynamics-365-custom-table-entity-main-form/


Add a test covering a missing binding behaviour on BindableNumber

Covers binding a BindableNumber with defined properties to a normal Bindable with a value that doesn't respect the BindableNumber properties. (precision / min-value / max-value)

Found this edge-case while fixing the bindable properties transferring behaviour and realized it didn't have a test, went ahead and wrote one.

Is this supposed to pass?

Is this supposed to pass?

Sorry, I wasn't able to work on this, should be good now. (long story short my laptop can't handle the amount of work I'm putting it in due to how slow it is.., will upgrade it soon)

Upon coming back to this (in attempt to get rid of my old PRs), I've got confused for a bit on what this PR is about, but I understand it now and I think it's not quite correct/clear in its current form.
Initially, the PR was supposed to add a test case covering a potential edge case when binding a BindableNumber to a regular Bindable with incompatible values (e08561b (#3366)), but turns out that BindableNumber actually fails to handle this edge case.
Need to know whether binding BindableNumber to a regular Bindable should be valid to begin with, so I can proceed to either attempting to fix the above edge case or just throw an exception when binding to a Bindable and call it a day.

Have you checked for existing usages in osu/framework where we are binding a Bindable to BindableNumber? That'd be a good starting point in making a decision on how we handle this going forward.

In the BindableNumber.BindTo(Bindable) case, found only 1 existing usage osu!-side (SkinnableComboCounter#L26), and it's a valid argument that one could mix up between binding with BindableNumber<T> or Bindable<T> (which has been done a lot in the opposite case Bindable.BindTo(BindableNumber), therefore I would say this shouldn't really throw an exception out there.
After thinking about the issue for a bit, this entire "BindableNumber not handling binding to incompatible value" edge-case is directly coming from Bindable not handling value rejection on BindTo() properly, causing desynchronisation between it and the other bindable.
Here's a test I wrote that shows the underlying issue that I'm talking about:

"Bind with upstream rejection" test
        [Test]
        public void TestBindWithUpstreamRejection()
        {
            Bindable<string> bindable1 = new Bindable<string>("rejected value");
            Bindable<string> bindable2 = new Bindable<string>();

            int changed1 = 0, changed2 = 0;

            bindable1.ValueChanged += v => changed1++;
            bindable2.ValueChanged += v =>
            {
                bindable2.Value = "accepted value";
                changed2++;
            };

            bindable2.BindTo(bindable1);

            Assert.AreEqual("accepted value", bindable1.Value);
            Assert.AreEqual(bindable1.Value, bindable2.Value);

            // bindable1 should only receive the final value changed, skipping the intermediary (overidden) one.
            Assert.AreEqual(1, changed1);
            Assert.AreEqual(2, changed2);
        }

The problem is, handling the above case properly means allowing the other bindable value to be changed just by a BindTo() call, therefore this could be abused to change IBindable<T> instances without casting or anything explicit:
IBindable<double> abuser = new BindableDouble { MinValue = 50, MaxValue = 50 }
abuser.BindTo(readOnlyBindable);
// readOnlyBindable.Value will change to 50.

But I believe we don't care that much about IBindable<T> instances getting modified, so I would assume it's fine fixing this issue, what do you think?

What is the result of that test method in your comment? does that fail right now? do you have a fix in mind for that?
Really having trouble parsing this issue and your train of thought. Maybe just do things the way you expect them to be and allow me to review the final changes.

Check #4069


Option to add an image to the background

Users should be able to select an image from their computer and have it displayed as the background of the banner.
Another option would be to integrate something like Unsplash in order to retrieve free images directly through the app.
A few questions are important:

How should the positioning of the image work?
Should the user be able to move it around?
Should it fit the size of the banner (1000x420) automatically or be centred?

There is a problem with html2canvas not being able to generate a canvas based on an image though, so that would mean either changing the way we generate the canvas or dropping the idea.

Yeah please :+1:

@christopherkade I could take a look at this one as well. Im not sure how easy it is to do, especially to create something moveable, but I could try and do the initial work.

Hey @diveresque, of course, go ahead and have fun.
I'm afraid html2canvas can't render images, which poses a big problem, but we could find work arounds & solutions together. If you have any questions please let me know.

Great :) will see how I go. A few questions:

html2canvas - i tried hardcoding in an image just using background-image in the div, and downloading the banner and it seemed to work - unless im missing something?
uploading images in React is new to me, just after a bit of research one option for uploading the image could be react-dropzone - did you have anything else in mind?
Thanks!

As you can see here, background-image is unsupported. So I'd be curious to see if you could make it work.
I don't have any experience with image uploading with React sadly, react-dropzone does seem very popular. It seems like a good choice 😄

Hi @christopherkade sorry it took me a while to get to this.. I started and have a basic dropzone set up, but just want to check im on the right track for the next part - thinking to use FileReader (Im not that familiar with it for this kind of usage) for the uploaded image and then try to display it in the Output, using something similar to what you have for the other inputs (color, title). Thoughts?


sink: add flag to send custom metadata with stream request

Current dependencies on/for this PR:

main

PR #132   👈

This comment was auto-generated by Graphite.


Adjust the way pings are done in ip-scan

Instead of doing 1 ping waiting X seconds, then repeating up to the count, change to use goroutines: send 5 packets silmultaniously and waiting for X seconds or the first "ping" to respond. Maybe graduate to cobra and add flags and parameters?

ping is being done differently and is troublesome. may come back but for now closing as WONTFIX


fix(NODE-5027): revert "ensure that MessageStream is destroyed when connections are destroyed"

This reverts commit 8338bae933c777dee4e7e49dbcf52c4fd7047528.
Description
What is changing?
Is there new documentation needed for these changes?
What is the motivation for this change?

Double check the following

[ ] Ran npm run check:lint script
[ ] Self-review completed using the steps outlined here
[ ] PR title follows the correct format: type(NODE-xxxx)[!]: description

Example: feat(NODE-1234)!: rewriting everything in coffeescript

[ ] Changes are covered by tests
[ ] New TODOs have a related JIRA ticket

KMS TLS failures in NODE-5033


refactor: update @stdlib/blas/ext/ssort2ins  to follow current project conventions

Description

What is the purpose of this pull request?

This pull request refactors the @stdlib/blas/ext/ssort@ins to follow current project conventions

Checklist

[x]  update readme.md
[x]  docs
[x]  src
[x]  include.gypi
[x]  manifest.json
[x]  package.json
[x]  lib
[x]  examples
[x]  benchmark
[x]  test

Related Issues

Does this pull request have any related issues?

This pull request:

resolves #1535

Questions

Any questions for reviewers of this pull request?

No.
Other
No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

@Pranavchiku I was not able to find any refactoring in benchmark, if there is any please let me know

Resolving package path...
Package path: /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/blas/ext/base/ssort2ins
Resolving package manifest...
Successfully resolved package manifest.
Resolving include directories...
Resolving source files...
Resolving libraries...
Resolving library paths...
Compiling example...
make[1]: Entering directory '/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/blas/ext/base/ssort2ins/examples/c'
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv/include/stdlib/napi/argv.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-float/include/stdlib/napi/argv_float.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-float/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/status-ok/include/stdlib/assert/napi/status_ok.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/is-type/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/is-type/include/stdlib/assert/napi/is_type.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/equal-types/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/equal-types/include/stdlib/assert/napi/equal_types.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv/include/stdlib/napi/argv.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-int64/include/stdlib/napi/argv_int64.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-int64/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/status-ok/include/stdlib/assert/napi/status_ok.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv/include/stdlib/napi/argv.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-strided-float64array/include/stdlib/napi/argv_strided_float64array.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-strided-float64array/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/status-ok/include/stdlib/assert/napi/status_ok.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv/include/stdlib/napi/argv.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-float64array/include/stdlib/napi/argv_float64array.h:22,
from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/napi/argv-float64array/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/status-ok/include/stdlib/assert/napi/status_ok.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/equal-typedarray-types/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/equal-typedarray-types/include/stdlib/assert/napi/equal_typedarray_types.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/is-typedarray/src/main.c:19:
/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/assert/napi/is-typedarray/include/stdlib/assert/napi/is_typedarray.h:22:10: fatal error: node_api.h: No such file or directory
22 | #include <node_api.h>
|          ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:124: example.out] Error 1
make[1]: Leaving directory '/home/varad/Desktop/stdlib/lib/node_modules/@stdlib/blas/ext/base/ssort2ins/examples/c'
Error when attempting to compile example.
ERROR: An error was encountered during execution.
make: *** [/home/varad/Desktop/stdlib/tools/make/lib/examples/c.mk:84: examples-c-files] Error 1
Encountered an error when running C examples

how could i resolve this error I think this is an error coming from addon.c @kgryte @Planeshifter

@vr-varad See https://github.com/stdlib-js/stdlib/commit/07514b1f40412bc50348fe6a5c9a85c26f3c3675. You need to update your manifest.json configurations accordingly.

@vr-varad As mentioned above, this PR is still missing changes to test files and documentation.

@kgryte I tried to rectify everything as told but I am unable to find any changes to be made in test. And according to me the in ndarray.native.js both implementations achieve the same functionality of sorting two single-precision floating-point arrays based on the sort order of the first array using insertion sort. However, they differ slightly in how they handle input parameters and perform offset adjustments.

You're right regarding tests. Just had a look through and those files seem fine, as is.

repl.txt needs to be updated to remove the use of floor.

@kgryte in the repl.txt file, the floor function isn't being used. I removed it earlier. Could you please review it,

@kgryte are there any more changes to be made that can be resolved?
could I work on another issue?

@Planeshifter @kgryte I'm encountering an error that's causing a bit of a roadblock for me. Would you be able to lend me a hand in troubleshooting it?

@Planeshifter @kgryte I made the necessary changes and the issue is finally resolved Thank you @kgryte .
You can review it.

@Planeshifter @kgryte I made the necessary changes and the issue is finally resolved Thank you @kgryte .
You can review it.


Disable linters temp

Try this again.

Coverage decreased (-0.04%) to 97.337% when pulling 646a7bf749ccbec3887ed025955e7d23d5db2c09 on macdonaldr93:disable-linters-temp into a4db3f85bd3cb38bfe329c168ca006198055175c on sasstools:develop.

So sorry, was trying to do something else.


Set modulePath correctly

fixes #31

Thanks @callumlocke!  I'm going to look at this closer later today.  Can you add a test case for this?  Hopefully one that would pass in 1x but fail in 2x without your additions.

I was actually wrong that this was a bug introduced in v2. I just reverted to v1 and had the same problem. Nothing else changed in my project so I'm not sure what caused my code to stop working... Could be something to do with me upgrading Node. I don't know.
However... I think my change is probably what you meant to write anyway :) It fixes an edge case where you are testing a module that uses Liftoff, and it loads 'itself', but you're testing from a CWD that is not the root of your project, but something deeper (eg. ./test/). Your code already checked for this edge case when requiring the module's package.json, but it didn't do the same check when constructing the module path, so the two were not in sync.
When you have a closer look at this PR's diff, let me know if you still think it needs a test... personally I would say it's not the kind of bug that needs a regression test.

Nice catch.  This definitely needs a test! If you can add one I'll merge and cut a release.

Currently your tests don't cover the "developing against ourselves" situation at all. In fact you can comment out the entire block at L95-L107, and all your tests still pass. My PR just changes a couple of lines within that already-untested block of code.
If you think the whole block needs a test, I think that's a separate issue, and I don't know a good way to go about testing it.

Fair enough!

Published as 2.0.1, would really appreciate a PR against https://github.com/tkellen/node-liftoff/issues/34 if you find the time.


Cannot integrate Postmark API with Supabase

Improve documentation
I want to integrate Postmark(an email service) api with that of Supabase such that any email action from Supabase should trigger the PostMark endpoint and that should finally send the mail to the respective email ids.
I see some discussion has been done on that regard(#109 and #133)  but the whole discussion is very vague and I cannot find anything in the docs referencing this. What is the way to add that endpoint in Supabase dashboard? any link to documentation is also greatly appreciated.

hi @shivam-51, you can use the /generate_link endpoint in gotrue or the method generateLink in supabase-js to generate a confirmation, invite, recovery, magic link and send it your users using the postmark api.

hi @shivam-51, let me know if this worked for you, else imma close the issue for now

@kangmingtay Unless I am missing something, I think this issue should be re-opened because it does NOT address the scenario of the initial sign-up confirmation.
The problem is that, currently, if we want e-mail confirmations BEFORE the user can sign-in, Supabase will always send a confirmation e-mail using the template from the Dashboard and NOT a template defined in the custom SMPT service (many such services provide their own templates with rich editors).
I think there should be a way to enable e-mail confirmations WITHOUT having Supabase send an actual email (this can be done in a trigger). That way, we can still take advantage of GoTrue's logic for generating confirmation tokens and disallowing sign-ins before confirmation, but we can leverage custom templates.

@kangmingtay ping - can we re-open this issue or do you think I need to open a new one?

Hi @chipilov,
I just joined the team and will be working on GoTrue with @kangmingtay
It's a nit but I think it would be better if you opened a fresh issue. Though the scenarios seems similar, the original request seems to be centered around the documentation while the issue above described seems to be a feature request.
Happy to re-open if you feel strongly for it though. Lmk!
Joel

Hey @chipilov, just to clarify - what is your use case here? It would be great if you could clarify on what you mean by the following statements:

..does NOT address the scenario of the initial sign-up confirmation.

what do you mean by the initial sign-up confirmation?

..enable e-mail confirmations WITHOUT having Supabase send an actual email

Personally, I feel that this isn't great from the DX perspective because it seems to account for a very specific edge case and would cause more confusion.

That way, we can still take advantage of GoTrue's logic for generating confirmation tokens and disallowing sign-ins before confirmation

I'm probably missing something here but doesn't the /generate_link template handle this for you? It generates a confirmation token, doesn't send an actual email and it disallows sign-ins before confirmation. You can still use your custom template and include the link generated inside the template.
Would be great to hear back from you!

Hey @kangmingtay, I think there are 2 specific use cases that I am trying to address:

Re-sending sign-up e-mail confirmation

For whatever reason, e-mail delivery is not the most reliable process, so most apps show a button like "Resend e-mail confirmation" to allow the user to trigger another e-mail if they never received the first e-mail in a reasonable time (e.g. a couple of minutes).
The problem with this scenario is that while Supabase automatically sends the first e-mail when the user signs-up, any subsequent confirmation e-mails MUST be sent by custom server-side code (via the usage of generate_link). Aside for the fact that the same action (sending e-mail confirmation) is basically handled in 2 different ways, there is also the issue of how to ensure that the e-mail sent by Supabase looks exactly the same as the e-mail sent by the custom server-side code. Unless I am missing something, your best bet is to basically copy-paste the template you have in Supabase to whatever templating engine you use by the custom e-mail provider (or vice-versa).
This problem would be solved or at least alleviated by any of these:
(a) Supabase allows calling parameterized HTTP hooks on signup/password reset/etc instead of forcing you to use templates from the dashboard. That way, one can simply provide the HTTP hooks from their e-mail provider and use a single set of templates defined in the provider (you'd still need custom server-side code for re-sending of the e-mails, but at least you would NOT need to handle 2  sets of templates for the same thing);
(b) Supabase introduces a dedicated API for actually sending emails, NOT just generating links - this would improve this particular scenario since you would just use the templates in the Supabase dashboard. However, this would NOT solve the second scenario described below and it would also prevent you from using the templating engine from your custom e-mail provider (which, with all due respect, usually has better authoring experience than the Supabase dashboard);
(c) Supabase introduces the option to enforce e-mail confirmations but does NOT send e-mails automatically and instead leaves all that to the developer. I agree with you that this is NOT very good DX, especially given that you run into transactional problems where the trigger and the generate_link code see different data (because the trigger sees data from within the current transaction while the generate_link code does NOT see the data from the transaction);

Maintaining a single set of templates for all of the app's needs

Currently, Supabase allows you define e-mail templates ONLY for auth use cases (e.g. sign-up, invite, etc). However, many apps (especially online marketplaces) need other kinds of templates, e.g. payment reminders, order confirmations, etc. With the current Supabase flow, this means that a developer needs to maintain 2 sets of templates (with 2 different authoring experiences) - the Supabase auth templates in the Supabase dashboard and all other templates.
This problem would be solved or at least alleviated either by solution (a) above (not sure if there is another approach).
IMHO, the first scenario is relatively common for any app while the second scenario is dependent on the type of app, but still pretty common for marketplace-type apps.
I hope this makes things clearer:

if so, I would be happy to open a separate ticket (or two) for these scenarios;
If not, I would be happy to clarify even further (maybe it would be better to hash it out over Discord, but I don't mind continuing here)

Hey @chipilov, thanks for taking the time to explain the cases in detail, i really appreciate it! Yeah, I get what you mean, for (1), i like the option (a) you suggested which is to use webhooks to to send the emails from their email provider.
As for (2), i agree that our email templating flow is quite restrictive currently. If we were to go with the webhook approach for (1), we can change the email templating page to allow users to dynamically create their custom email template for specific cases and attach it to a webhook endpoint. When the webhook is triggered on an auth event, the respective template will be sent out depending on which email action is triggered.
Let's keep this thread open - this is really good feedback for improving the auth email templating experience.

I agree with the points @chipilov raises above! Also, if there are cases where the built-in templates are unsuitable (no support for i18n, no way to extend with additional dynamic variables, etc.) there appears to be no straightforward way to replace them with a more robust custom solution.

Hey @chipilov, just to clarify - what is your use case here? It would be great if you could clarify on what you mean by the following statements:

..does NOT address the scenario of the initial sign-up confirmation.

what do you mean by the initial sign-up confirmation?

..enable e-mail confirmations WITHOUT having Supabase send an actual email

Personally, I feel that this isn't great from the DX perspective because it seems to account for a very specific edge case and would cause more confusion.

That way, we can still take advantage of GoTrue's logic for generating confirmation tokens and disallowing sign-ins before confirmation

I'm probably missing something here but doesn't the /generate_link template handle this for you? It generates a confirmation token, doesn't send an actual email and it disallows sign-ins before confirmation. You can still use your custom template and include the link generated inside the template.
The only scenario I can think of is if the user wants to leverage the email sending functionality of gotrue but at the same time, they want to use their custom smtp provider and make use of rich templates. Using the /generate_link wouldn't work for them since they prefer not to handle the email sending logic themselves.
Would be great to hear back from you!

@kangmingtay I misunderstood you about the usage of the /generate_link API, but now I understand that you can actually sign-up users (i.e. add them to the auth.users) table with this API and NOT just generate links for existing users. Indeed, this will help my scenarios because Supabase will NOT automatically send sign-up e-mails in this case and I will have complete control over sending of the emails.
For anyone interested in using this approach, there are a few important things to keep in mind:

unlike the signup() JS API, the /generate_link API ONLY works with the service_role, so one would need to create a custom signup API in the app backend and call the API from there;
unlike the signup() JS API, the /generate_link API returns a 422 HTTP error when trying to signup a user which already exists (the JS API returns fake data);
unlike the signup() JS API, it seems like there is no rate limiting for the /generate_link API (@kangmingtay please, correct me if I am wrong about this one);

@chipilov Thanks for mentioning the service role bit. It's documented that way for admin functions but I completely forgot and was wondering why all my returns were coming back null :)

Hey all,
Re-read the thread and it seems like the issue has been resolved (CMIIAW). As for next steps, we will be looking into parameterized HTTP hooks so feel free to follow along on our changelog/newsletter.
Thanks!


Npm install fails during finalize with VS Code Open.

VSCode Version: 1.13.0-insider
OS Version: Windows 8.1

Steps to Reproduce:

Open VS Code
Run npm install in a directory currently open in VS Code

Npm install will run through to the finalize stage at which point:
Error: EPERM: operation not permitted, rename for some library is thrown. The library installing when this error occurs varies with each install.
Closing VS code and running npm install again will work correctly.

@mikerhyssmith what kind of proect is contained the current directory when this happens? Is this a JS, TS project, is it large?
@mattbierner I suspect that automatic type acquisition or the TS language server is keeping some files open.

It is a relatively large typescript project yes !

@mattbierner This reminds of https://github.com/Microsoft/TypeScript/issues/7762, but this issue has been closed.

I'm using version 2.3.2 of Typescript if that's any help !

@mikerhyssmith Can you please try setting: "typescript.disableAutomaticTypeAcquisition": true and then seeing if the issue still reproduces? Also, can please make sure an extension is not the root cause by starting code with --disable-extensions

"typescript.disableAutomaticTypeAcquisition": true this seems to have fixed the issue. Noticeably a different typescript project maybe a little smaller doesn't seem to have the same issue.

I have a very small ts project and I´m facing this issue too.
This also seemes to be fixed when closing the editor onces.
After that I can run npm install without any issues and vs code open.

Thanks @mikerhyssmith. I've opened https://github.com/Microsoft/TypeScript/issues/15961 to continue the investigation of this issue on the TypeScript side


Any information on regenerating Antlr4 grammar?

Using visual studio 2022 I can't seem to get it to regen,  when using the dev tools in vs code I get syntax errors in the grammar.
What tooling/steps do you normally take to regen this?

figured it out, vs just regnerates the files on save but they're not in git like i though they'd be they're in the bin directory.


jsx-no-bind route render

jsx-no-bind throws an error on the render property in:
          <Route
            exact
            path="/dummy-route"
            render={(props) => <DummyComponent {...props} />)}
          />

It's the recommended way of react-router: https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Route.md#render-func

Indeed it is; but it's still a bad idea to create an arrow function inline. Make it a constructor-bound instance method and you'll avoid this error.

I'm not sure for this case, I cannot find any example doing that with a constructor-bound instance method.
Even this post hasn't got any response: https://stackoverflow.com/questions/45042687/react-router-and-jsx-no-bind

foo(props) { return <DummyComponent {...props} />); }, this.foo = this.foo.bind(this) in the constructor, and render={this.foo} on the Route.


$(MSBuildThisFileDirectory) not properly evaluated

MSBuildThisFileDirectory should be evaluated for each props file separately. The problem is, that our props file are located in different folder than the project file, consequently clang power tools do not properly forward "AdditionalIncludeDirectories".

Hello @tpzworks
We have reproduced the issue and a fix has been pushed to our Github code.  A bugfix Clang Power Tools release will soon be made available.
Thank you for reporting this issue.
Regards,
Gabriel

Hi again,
Clang Power Tools 7.4 has just been released and it includes the fix for this issue.
Kind regards,
Gabriel.


Exporting gRPC results to InfluxDB

Hello,
Thanks for the development of the gRPC plugin, we have been using it successfully for a while.
We would like to export gRPC results to InfluxDB and visualise them in Grafana as we already do for our HTTP uServices with the help of JMeter Backend Listener.
Is it possible somehow to achieve the same for gRPC requests using your plugin?

Sorry, it was my mistake, JMeter Backend Listener works with GRPC calls.
In my case it was a misconfiguration which caused HTTP redirects.
K6 was able to work with redirects and send data to InfluxDB but not the JMeter listener.


Gallery links should be HTTPS

I'm getting this error when accessing echarts docs on github:

This happens as https://ecomfe.github.io is automatically switched to HTTPS
One thing that would be great is to put the gallery into github as well so it can all be loaded from github CDN. There are some issues with accessing content from http://echarts.baidu.com as it can be very slow or inaccessible at times during day here in Europe.
Anyway thanks so much for translating docs into English!

Thanks for report. What is the URL of this error?

Hi Olivia, one example is:
https://ecomfe.github.io/echarts-doc/public/api-en.html#echartsInstance.setOption
Another one: https://ecomfe.github.io/echarts-doc/public/option-en.html#title
Although the second url hasn't been reviewed yet:)
Also, would be generally very helpful if your gallery is an open source repository:)
Thanks for looking at this!

Already fixed.


IntelliJ plugin support for -sources.jar from scala_import

Propagating the source jars through to source_jars seems to get the job done; works with bazel-deps, raw jars and jars via filegroup. A cursory glance at the intellij plugin indicates that source_jars has precedence over source_jar, so the latter can be left unpopulated.
This is a bit of "build tool+IDE" polish that will be nice to have back :)

@johnynek updated, passes linter now.


Run target analytics

Fixes https://github.com/flutter/flutter/issues/10751

I think we'll need to extend package:usage before we can land this (also, looks like there's an analysis issue: https://travis-ci.org/flutter/flutter/jobs/245624909#L314).

@devoncarew thanks for taking a look. Would love your help landing a version of https://github.com/dart-lang/usage/pull/110 and then I'll update this PR.

@sethladd, version 3.2.0 of package:usage w/ your changes published :)

@devoncarew PTAL when you have a chance. thanks!
cc @xster

lgtm w/ the dependency version change

fyi @tvolkert


What is siteMetadata.image currently used for in the application?

siteMetadata has a property image seen here:
https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/master/data/siteMetadata.js#L11
Looking through the rest of the application, this property doesn't seem to have a use and is perhaps deprecated with the author avatars: https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/master/data/authors/default.md?plain=1#L3
Interested in what this property is used for!

Yes, you are right, it's no longer being used! Will remove this property, thanks.


Shapefile_to_annotations from example not working as 'box_points' and 'buffer_size' args. aren't defined in repo.

Describe the bug
shapefile_to_annotations shown on bird_detector example does not have the shown arguments: 'box_points' and 'buffer_size'
Does the method just need to updated on the Git repo?
To Reproduce
df = shapefile_to_annotations(
shapefile="annotations.shp",
rgb="image_path", box_points=True, buffer_size=0.15
)
The call fails because deepforest.utilities.shapefile_to_annotations does not have the 'box_points' and 'buffer_size' args. defined.
Environment (please complete the following information):

OS: Mac Osx
Python version and environment : 3.9

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

pip install --update deepforest

I'm 99% sure that you are just a version behind.

update here?

@bw4sz I ran pip install --upgrade deepforest and do not see any changes in utilities.shapefile_to_annotations
Something else I should try or look elsewhere?
Thanks!

@j-la-haye - I think the docs are just wrong. Assuming you have a shapefile of bounding boxes can you remove the box_points=True, buffer_size=0.15 arguments and see if everything works.

I completely misunderstood this issue. Yes, the docs are wrong.

I have figured out what happened, this doc was pointing at the bird_detector preprocessing function with the same name that lived outside deepforest here: https://github.com/weecology/BirdDetector/blob/616bfa18775317288d7155e54243a302ce9a5fd4/utils/preprocess.py#L36
I actually think is a super useful function and i'm writing a test and will add in into the deepforest.shapefile_to_annotations function.

@bw4sz thanks very much for your prompt response!


Documentation for the Python Client

🙋 feature request
Documentation for the Python client: intro, references, examples
🤔 Expected Behavior
Python client needs to be documented, and this documentation needs to be automated, and included a a link from the readme.io page, together with other docs.
😯 Current Behavior
unknown to me
💁 Possible Solution
Meet with Julia and talk this through please :)
🔦 Context
We have swagger doc that is separate from public docs. I need to understand where python client is in this picture, and how to make it part of our docs.
💻 Examples
https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/python/example_code/s3
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/examples.html

There's a link to the client documentation in readme.io: https://docs.tamr.com/docs/tamr-unify-python-client

@JuliaMalkin and I caught up offline. I walked her through the Python Client docs and we discussed different approaches towards centralizing/linking to all Tamr docs.