certbot.errors.AuthorizationError: Some challenges have failed for review.

Hello,
Thank you for the detailed tutorial, but I'm having a weird issue.
After a lot of tries, I managed to get this verbose log:
Existing data found for xxx.lorem.com. Continue and replace existing certificate? (y/N) y
### Creating dummy certificate for xxx.lorem.com ...
Generating a RSA private key
..........................................+++++
...............+++++
writing new private key to '/etc/letsencrypt/live/xxx.lorem.com/privkey.pem'
-----

### Starting nginx ...
Recreating xxx-nginx ...
Recreating xxx-nginx ... done

### Deleting dummy certificate for xxx.lorem.com ...

### Requesting Let's Encrypt certificate for xxx.lorem.com ...
Root logging level set at 10
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requested authenticator webroot and installer None
Single candidate plugin: * webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
Initialized: <certbot.plugins.webroot.Authenticator object at 0x7f4e79936e10>
Prep: True
Selected authenticator <certbot.plugins.webroot.Authenticator object at 0x7f4e79936e10> and installer None
Plugins selected: Authenticator webroot, Installer None
Picked account: <Account(RegistrationResource(body=Registration(key=None, contact=(), agreement=None, status=None, terms_of_service_agreed=None, only_return_existing=None, external_account_binding=None), uri='https://acme-staging-v02.api.letsencrypt.org/acme/acct/11519950', new_authzr_uri=None, terms_of_service=None), 803e21903d9d8cfa20499d0bb2bd2586, Meta(creation_dt=datetime.datetime(2019, 11, 8, 15, 32, 18, tzinfo=<UTC>), creation_host='13b6b54e68c0'))>
Sending GET request to https://acme-staging-v02.api.letsencrypt.org/directory.
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org:443
https://acme-staging-v02.api.letsencrypt.org:443 "GET /directory HTTP/1.1" 200 724
Received response:
HTTP 200
Server: nginx
Date: Fri, 08 Nov 2019 16:33:48 GMT
Content-Type: application/json
Content-Length: 724
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800

{
  "21IRDSaUJLI": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417",
  "keyChange": "https://acme-staging-v02.api.letsencrypt.org/acme/key-change",
  "meta": {
    "caaIdentities": [
      "letsencrypt.org"
    ],
    "termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf",
    "website": "https://letsencrypt.org/docs/staging-environment/"
  },
  "newAccount": "https://acme-staging-v02.api.letsencrypt.org/acme/new-acct",
  "newNonce": "https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce",
  "newOrder": "https://acme-staging-v02.api.letsencrypt.org/acme/new-order",
  "revokeCert": "https://acme-staging-v02.api.letsencrypt.org/acme/revoke-cert"
}
Obtaining a new certificate
Generating key (4096 bits): /etc/letsencrypt/keys/0015_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0015_csr-certbot.pem
Requesting fresh nonce
Sending HEAD request to https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce.
https://acme-staging-v02.api.letsencrypt.org:443 "HEAD /acme/new-nonce HTTP/1.1" 200 0
Received response:
HTTP 200
Server: nginx
Date: Fri, 08 Nov 2019 16:33:49 GMT
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-staging-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: 0002tUBK5GOg9sYqNGtZVk8sAu5CvI2kCg6CZ2ubFK7OzKU
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800

Storing nonce: 0002tUBK5GOg9sYqNGtZVk8sAu5CvI2kCg6CZ2ubFK7OzKU
JWS payload:
b'{\n  "identifiers": [\n    {\n      "type": "dns",\n      "value": "xxx.lorem.com"\n    }\n  ]\n}'
Sending POST request to https://acme-staging-v02.api.letsencrypt.org/acme/new-order:
{
  "protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS1zdGFnaW5nLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYWNjdC8xMTUxOTk1MCIsICJub25jZSI6ICIwMDAydFVCSzVHT2c5c1lxTkd0WlZrOHNBdTVDdkkya0NnNkNaMnViRks3T3pLVSIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXN0YWdpbmctdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9uZXctb3JkZXIifQ",
  "signature": "eUu7ijFJznEuhHIbsGZXEIFMVnVGQ7q3B_afLKLkdEeHreuggZq9GgBycDZrsbMHxojVkwwRdFV59tSL6uJ_PLYnsat9nsRgU9EDnFpCgUlXwvPiek43_yXVczB2VHtgYdx8bL1jxnAWUCwlJVmfMy-Y1Jptjn10-Jvolsemr5-jQrn5P7Be1-ibVqi7iqA8rYY8ZeWw7YJdpaF3lR_i1VBQsaLcnE4-fGIn7CTDMdOKqZGlTY4ac-41dDpHtzZ7yQV3yU6nBaXakenBoubInvctfc5T6jQ_HVchKW1R2Qoysy1Hki-j24t2cJaet7BZwyNV-mF3lN6-BGWfbz7qQzfPdoFFzDaPNmPBsnu1y1sBmtTBgHCJ1YjQQTbYmACwIvcTRzGTUbqLFS0avjCXvZOsK08j6yaDP3uSvpPCB9qaV2v_7_Lqlcir66i0--EiVHEKvXiFVe345EudGg6Q9_sjw93FqpMo3TAKpOuLYRZQIZJxfnpeCCTt8jCREcNUUFp05Q17pCf03pv25F2EK_g61HLdrDUQNva8IvtNMEzm6HQUE23HfNRyFHogYODUlAGMB2ygAdFUhje9SA4YgWXwCvDKSrct-EN4bODp8hfLjfhHbx1Gp5__-8IkKPNNyKAnxvggI9iJYSnazOwsog0gquCrljmjNzDwctZNsPI",
  "payload": "ewogICJpZGVudGlmaWVycyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAiZG5zIiwKICAgICAgInZhbHVlIjogInByb2pvLm9jdXMuY29tIgogICAgfQogIF0KfQ"
}
https://acme-staging-v02.api.letsencrypt.org:443 "POST /acme/new-order HTTP/1.1" 201 355
Received response:
HTTP 201
Server: nginx
Date: Fri, 08 Nov 2019 16:33:49 GMT
Content-Type: application/json
Content-Length: 355
Connection: keep-alive
Boulder-Requester: 11519950
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-staging-v02.api.letsencrypt.org/directory>;rel="index"
Location: https://acme-staging-v02.api.letsencrypt.org/acme/order/11519950/60509153
Replay-Nonce: 0002d_thn50OPYUbaGIfCqJFbisnxyD1Hy19kLbjXooClNg
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800

{
  "status": "pending",
  "expires": "2019-11-15T16:33:49.73815071Z",
  "identifiers": [
    {
      "type": "dns",
      "value": "xxx.lorem.com"
    }
  ],
  "authorizations": [
    "https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/19815850"
  ],
  "finalize": "https://acme-staging-v02.api.letsencrypt.org/acme/finalize/11519950/60509153"
}
Storing nonce: 0002d_thn50OPYUbaGIfCqJFbisnxyD1Hy19kLbjXooClNg
JWS payload:
b''
Sending POST request to https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/19815850:
{
  "protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS1zdGFnaW5nLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYWNjdC8xMTUxOTk1MCIsICJub25jZSI6ICIwMDAyZF90aG41ME9QWVViYUdJZkNxSkZiaXNueHlEMUh5MTlrTGJqWG9vQ2xOZyIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXN0YWdpbmctdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hdXRoei12My8xOTgxNTg1MCJ9",
  "signature": "KZ7llK_j4mZIYamX7xhVkHSUnavih30MWEY4Kl_mzcYdNHtOd_hGSNG0FFU3ZsVFuu4XIzmfUyIW3esdSIHllOM41DdC_HVe8d0sIxuN75V7cs59ltAPMCZoeiG64XBwxJDsBtDV2WdJ35DVv7UPqCfcX9Ntw0T9LkooCQaRGJCstAPlx2MiVb2uf6gJIPqY8-O4thKUA-_DbzMDeew0PDMtlHYHa_qQZOvaajgY4vTFtF188Q8DsfEyLASpkony3f_Hlw7S6IuDDrZhLUyAbvKgwJDeTkYOOyiizxzf8JnEvEG4JyKNZsfLhMCxst1W4dDYlbESYXAKQSY_bBhbFaDCzVAOQ_T5--Cc3iq8MSVITyB4h0vGq7dJHVJloobTBDg7azuNN3ERnsZLuIKO0_wFQ7HoGyFP_2AQ8VPKgCDP6MXf34Whv9O9InciBuAO8QKkNrpxBmLlrXD8ndcDQ53pD6gtlStvBIADHuee2L9zxoqIu5sOxmbmAWCHIPCQDYDIOTbad3WPYS6N6aiIdjoNwTbtN-bXys5CzYfeSw9nRugyWz9geTg9MhpYqo_HIWqFQfVMW-3ER2g7kwc-IYTb_jZt2MdE5IW_ydJEq7Q7M_vcEvGOLuYfpZjE74deaHl5NSiw2JUW6mYtSylWxXgxRVdChhRZtjh5UlspHWU",
  "payload": ""
}
https://acme-staging-v02.api.letsencrypt.org:443 "POST /acme/authz-v3/19815850 HTTP/1.1" 200 810
Received response:
HTTP 200
Server: nginx
Date: Fri, 08 Nov 2019 16:33:50 GMT
Content-Type: application/json
Content-Length: 810
Connection: keep-alive
Boulder-Requester: 11519950
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-staging-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: 0002pQ68YQCYousjJoEJZ1sTVmzmaAAtuPCBHN7FLfOiQU4
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800

{
  "identifier": {
    "type": "dns",
    "value": "xxx.lorem.com"
  },
  "status": "pending",
  "expires": "2019-11-15T16:33:49Z",
  "challenges": [
    {
      "type": "http-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/19815850/PmKNmQ",
      "token": "dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U"
    },
    {
      "type": "dns-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/19815850/xRpPTQ",
      "token": "dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U"
    },
    {
      "type": "tls-alpn-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/19815850/-6VPpg",
      "token": "dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U"
    }
  ]
}
Storing nonce: 0002pQ68YQCYousjJoEJZ1sTVmzmaAAtuPCBHN7FLfOiQU4
Performing the following challenges:
http-01 challenge for xxx.lorem.com
Using the webroot path /var/www/certbot for all unmatched domains.
Creating root challenges validation dir at /var/www/certbot/.well-known/acme-challenge
Attempting to save validation to /var/www/certbot/.well-known/acme-challenge/dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U
Waiting for verification...

 Press continue to submit to CA. Pass "-v" for more info about
challenges.
 Additionally, please check that your computer has a publicly routable IP address and that no firewalls are preventing the server from communicating with the client. If you're using the webroot plugin, you should also verify that you are serving files from the webroot path you provided.
Encountered exception:
Traceback (most recent call last):
  File "/opt/certbot/src/certbot/auth_handler.py", line 91, in handle_authorizations
    self._poll_authorizations(authzrs, max_retries, best_effort)
  File "/opt/certbot/src/certbot/auth_handler.py", line 180, in _poll_authorizations
    raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.

Calling registered functions
Cleaning up challenges
Removing /var/www/certbot/.well-known/acme-challenge/dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U
All challenges cleaned up
Exiting abnormally:
Traceback (most recent call last):
  File "/usr/local/bin/certbot", line 11, in <module>
    load_entry_point('certbot', 'console_scripts', 'certbot')()
  File "/opt/certbot/src/certbot/main.py", line 1378, in main
    return config.func(config, plugins)
  File "/opt/certbot/src/certbot/main.py", line 1265, in certonly
    lineage = _get_and_save_cert(le_client, config, domains, certname, lineage)
  File "/opt/certbot/src/certbot/main.py", line 121, in _get_and_save_cert
    lineage = le_client.obtain_and_enroll_certificate(domains, certname)
  File "/opt/certbot/src/certbot/client.py", line 417, in obtain_and_enroll_certificate
    cert, chain, key, _ = self.obtain_certificate(domains)
  File "/opt/certbot/src/certbot/client.py", line 348, in obtain_certificate
    orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
  File "/opt/certbot/src/certbot/client.py", line 396, in _get_order_and_authorizations
    authzr = self.auth_handler.handle_authorizations(orderr, best_effort)
  File "/opt/certbot/src/certbot/auth_handler.py", line 91, in handle_authorizations
    self._poll_authorizations(authzrs, max_retries, best_effort)
  File "/opt/certbot/src/certbot/auth_handler.py", line 180, in _poll_authorizations
    raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: xxx.lorem.com
   Type:   connection
   Detail: Fetching
   http://xxx.lorem.com/.well-known/acme-challenge/dkzqQxktAdggktPN5t4gT3ckwh70o3hmSc28g_yhE8U:
   Connection refused

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

### Reloading nginx ...
2019/11/08 16:35:12 [notice] 10#10: signal process started

xxx stands for my subdomain - lorem for my domain
I double checked my subdomain with nslookup and it seems to be fine.
Also, I tried on a different subdomain, same issue.
In order to give you all the inputs, please find my different files:
default.conf
server {
    listen 80;
    server_name xxx.lorem.com;

    server_tokens off;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name xxx.lorem.com;
    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/xxx.lorem.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/xxx.lorem.com/privkey.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://xxx.lorem.com;
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    }
}

init-letsencrypt.sh
#!/bin/bash

if ! [ -x "$(command -v docker-compose)" ]; then
  echo 'Error: docker-compose is not installed.' >&2
  exit 1
fi

domains=(xxx.lorem.com)
rsa_key_size=4096
data_path="./data/certbot"
<EMAIL_ADDRESS># Adding a valid address is strongly recommended
staging=1 # Set to 1 if you're testing your setup to avoid hitting request limits

if [ -d "$data_path" ]; then
  read -p "Existing data found for $domains. Continue and replace existing certificate? (y/N) " decision
  if [ "$decision" != "Y" ] && [ "$decision" != "y" ]; then
    exit
  fi
fi

if [ ! -e "$data_path/conf/options-ssl-nginx.conf" ] || [ ! -e "$data_path/conf/ssl-dhparams.pem" ]; then
  echo "### Downloading recommended TLS parameters ..."
  mkdir -p "$data_path/conf"
  curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/tls_configs/options-ssl-nginx.conf > "$data_path/conf/options-ssl-nginx.conf"
  curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/ssl-dhparams.pem > "$data_path/conf/ssl-dhparams.pem"
  echo
fi

echo "### Creating dummy certificate for $domains ..."

docker-compose up --force-recreate -d nginx
echo

echo "### Deleting dummy certificate for $domains ..."

#Join $domains to -d args
domain_args=""
for domain in "${domains[@]}"; do
  domain_args="$domain_args -d $domain"
done

# Select appropriate email arg
case "$email" in
  "") email_arg="--register-unsafely-without-email" ;;
  *) email_arg="--email $email" ;;
esac

# Enable staging mode if needed
if [ $staging != "0" ]; then staging_arg="--staging"; fi

docker-compose run --rm --entrypoint "\
  certbot certonly --webroot -v --debug-challenges -w /var/www/certbot \
    $staging_arg \
    $email_arg \
    $domain_args \
    --rsa-key-size $rsa_key_size \
    --agree-tos \
    --force-renewal" certbot
echo

echo "### Reloading nginx ..."
docker-compose exec nginx nginx -s reload

docker-compose.yml
version: "3"

services:
  nginx:
    image: nginx:1.15-alpine
    container_name: xxx-nginx
    restart: unless-stopped
    volumes:
      - ./data/nginx:/etc/nginx/conf.d
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    ports:
      - "80:80"
      - "443:443"
    command: '/bin/sh -c ''while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g "daemon off;"'''

  certbot:
    image: certbot/certbot
    container_name: xxx-certbot
    restart: unless-stopped
    volumes:
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"

  nuxt:
    build: ./app/
    container_name: xxx-app
    restart: always
    ports:
      - "3333:3333"
    command: "npm run start"

I'm really desesperate.
Any advice, tip or idea is more than welcome.

In meantime, I asked on Let's Encrypt forum.
A community leader found that we are 2 with the same issue:
https://community.letsencrypt.org/t/certbot-errors-authorizationerror-some-challenges-have-failed/105875/4
Is the tutorial updated?
I double checked, and I don't have any firewall on my server.

I was having this issue today as well. I've used this repo in the past as a starting point and everything worked great! Because I knew that it worked in the past I figured that I'd try to use an older version of the certbot/certbot image. I tried using v0.36.0 and I finally had a successful validation after many hours of attempts.
Try the following in your docker-compose.yml:
  certbot:
    image: certbot/certbot:v0.36.0

@VivianSolide  @brandonparee  Did you try this with the updated 2.x branch?

No, I didn't but I will give a try :)

It doesn't work for me as well.

I got it working actually, there was some nginx config which wasn't right.
Thanks for the awesome guide you guys have made, really appreciate it.

I've used brandonparee hack because v.2.x doesn't work in my situation...

Unfortunately, the v0.36.0 hack doesn't work for me when trying on an ec2 linux server for a domain that's linked to a static ip for that server...

I have a similar problem, but the error code from certbot is 'connection refused'. I have tried  v0.36 and v.2.x - and had same result.  I got nginx config from this repo and only added my host.

v0.36.0 hack not working for me also

Do you have some logs to share?

I have same problems that all of you and tried a lot of options from differents posts and make it work for me:
docker-compose
* image: nginx:1.15-alpine
* certbot: image: certbot/certbot:**v0.36.0** (this is very important!!)

init-letsencrypt.sh
ssl conf files
comment all these lines:
#if [ ! -e "$data_path/conf/options-ssl-nginx.conf" ] || [ ! -e "$data_path/conf/ssl-dhparams.pem" ]; then
#echo "### Downloading recommended TLS parameters ..."
#mkdir -p "$data_path/conf"
#curl -sf https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > "$data_path/conf/options-ssl-nginx.conf"
#curl -sf https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > "$data_path/conf/ssl-dhparams.pem"
#echo
#fi

Create two files in data/certbot/conf
(these files are from https://github.com/certbot/certbot, version 0.40)
file 1: options-ssl-nginx.conf
copy content from:
https://github.com/certbot/certbot/blob/v0.40.0/certbot-nginx/certbot_nginx/tls_configs/options-ssl-nginx-old.conf
file 2: ssl-dhparams.pem
copy content from:
https://github.com/certbot/certbot/blob/v0.40.0/certbot/ssl-dhparams.pem
RSA length
Change this:
docker-compose run --rm --entrypoint "\
openssl req -x509 -nodes -newkey rsa:1024 -days 1\

to this:
docker-compose run --rm --entrypoint "\
openssl req -x509 -nodes -newkey rsa:2048-days 1\

certbot certonly
Change this:
certbot certonly --webroot -w /var/www/certbot \

to this:
certbot certonly -a webroot -v --debug-challenges -w /var/www/certbot \

Permissions
Run init-letsencrypt.sh without sudo !!
if you already ran, restore permissions in certbot folder.
Run docker without sudo:
sudo groupadd docker
sudo gpasswd -a $USER docker
close console / reopen, for docker permissions to take effect

If you have any questions, you can contact me<EMAIL_ADDRESS>my code
docker-compse.yml
version: '3.6'
services:
  nginx:
    image: nginx:1.15-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./data/nginx:/etc/nginx/conf.d
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
      - ./data/nginx/log:/var/log/nginx
    command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
  certbot:
    image: certbot/certbot:v0.36.0
    restart: unless-stopped
    volumes:
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
Encrypt.
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
  javit-services:
    image: delsud/javit-services:latest
    restart: unless-stopped
    ports:
      - 5000:80
      - 5500:443

init-letsencrypt.sh
#!/bin/bash

if ! [ -x "$(command -v docker-compose)" ]; then
echo 'Error: docker-compose is not installed.' >&2
exit 1
fi

domains=(mydomain.tk)
rsa_key_size=4096
data_path="./data/certbot"
<EMAIL_ADDRESS># Adding a valid address is strongly recommended
staging=1 # Set to 1 if you're testing your setup to avoid hitting request limits
subscribe_to_eff=1 # Set to 1 if you provided an e-mail address and want to subscribe to EFF mailings

if [ -d "$data_path" ]; then
read -p "Existing data found for $domains. Continue and replace existing certificate? (y/N) " decision
if [ "$decision" != "Y" ] && [ "$decision" != "y" ]; then
	exit
fi
fi

#if [ ! -e "$data_path/conf/options-ssl-nginx.conf" ] || [ ! -e "$data_path/conf/ssl-dhparams.pem" ]; then
#echo "### Downloading recommended TLS parameters ..."
#mkdir -p "$data_path/conf"
#curl -sf https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > "$data_path/conf/options-ssl-nginx.conf"
#curl -sf https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > "$data_path/conf/ssl-dhparams.pem"
#echo
#fi

echo "### Creating dummy certificate for $domains ..."

docker-compose up --force-recreate -d nginx
echo

echo "### Deleting dummy certificate for $domains ..."

#Join $domains to -d args
domain_args=""
for domain in "${domains[@]}"; do
domain_args="$domain_args -d $domain"
done

# Select appropriate email arg
case "$email" in
"") email_arg="--register-unsafely-without-email" ;;
*)  email_arg="--email $email"
		if [ $subscribe_to_eff == "1" ]; then
			subscribe_arg="--eff-email";
		else
			subscribe_arg="--no-eff-email";
		fi
;;
esac

# Enable staging mode if needed
if [ $staging != "0" ]; then
staging_arg="--staging";
fi

#docker-compose run --rm --entrypoint "certbot certonly -v --debug-challenges -w /var/www/certbot $staging_arg $email_arg $domain_args $subscribe_arg --rsa-key-size $rsa_key_size --agree-tos --force-renewal" certbot
docker-compose run --rm --entrypoint "certbot certonly -a webroot -v --debug-challenges -w /var/www/certbot $staging_arg $email_arg $domain_args $subscribe_arg --rsa-key-size $rsa_key_size --agree-tos --force-renewal" certbot
echo
echo "### Reloading nginx ..."
docker-compose exec nginx nginx -s reload

nginx / app.conf
upstream api{
    server x.x.x.x:5000;
}

server {
    listen 80;
    server_name mydomain.tk;
    server_tokens off;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    #listen 80;
    listen 443 ssl; # managed by Certbot
    server_name mydomain.tk;
    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/mydomain.tk/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mydomain.tk/privkey.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location = / {
        return 301 https://mydomain.tk/swagger;
    }

    location /api {
        proxy_pass          http://api/api;
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        access_log /var/log/nginx/mydomain.tk.access.log;
        error_log /var/log/nginx/mydomain.tk.error.log warn;
    }

    location /swagger {
        proxy_pass          http://api/swagger;
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        access_log /var/log/nginx/mydomain.tk.access.log;
        error_log /var/log/nginx/mydomain.tk.error.log warn;
    }

}

@dappsar - thank you for documenting this so well, I had the same error and followed your methods but I am still not able to resolve the Connection Refused issue. And when I check my nginx container logs I am seeing the following error:
nginx: [warn] duplicate value "TLSv1.2" in /etc/nginx/nginx.conf:54
nginx: [emerg] "ssl_ciphers" directive is duplicate in /etc/nginx/nginx.conf:57

I want to help get this resolved and I think your suggestions in #74 are very good. I am not sure where my certification is failing, but would you take a look at the following code and see if anything catches your eye? I appreciate it very much. I am hoping this is a simple mistake but if not maybe it will help firm up your merge request.
docker-compose.yml (slightly redacted)
version: '3.6'
services:

  nginx:
    container_name: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - "80:80"
      - "443:443"
    restart: always
    volumes:
      - ./nginx:/etc/nginx/conf.d
      - ./nginx/data/certbot/conf:/etc/letsencrypt
      - ./nginx/data/certbot/www:/var/www/certbot
      - ./data/nginx/log:/var/log/nginx
    depends_on:
      - 'mern'
      - 'client'
    command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"

  certbot:
    image: certbot/certbot:v0.36.0
    restart: unless-stopped
    volumes:
      - ./nginx/data/certbot/conf:/etc/letsencrypt
      - ./nginx/data/certbot/www:/var/www/certbot
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"

volumes:
  pgdata:
    external: true

nginx.conf (subset and slightly redacted)
server {
        listen 80;
        server_name <redacted>;
        server_tokens off;

        location /.well-known/acme-challenge/ {
            allow all;
            root /var/www/certbot;
        }

        location / {
            return 301 https://$host$request_uri;
        }
    }

    # main server
    server {
        listen 443 ssl http2;
        server_name <redacted>;
        server_tokens off;

        ssl_certificate /etc/letsencrypt/live/<redacted>fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/<redacted>/privkey.pem;

        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

        # acme challenge
        location /.well-known/acme-challenge/ {
            allow all;
            root /var/www/certbot;
        }

        location ^~ /api {
        }

        location ^~ /static {
        }

        location / {
        }
    }

init-letsencrypt.sh (subset)
echo "### Requesting Let's Encrypt certificate for $domains ..."
#Join $domains to -d args
domain_args=""
for domain in "${domains[@]}"; do
  domain_args="$domain_args -d $domain"
done
echo "domain args ..."
echo $domain_args

# Select appropriate email arg
case "$email" in
"") email_arg="--register-unsafely-without-email" ;;
*)
  email_arg="--email $email"
  if [ $subscribe_to_eff == "1" ]; then
    subscribe_arg="--eff-email"
  else
    subscribe_arg="--no-eff-email"
  fi
  ;;
esac

# Enable staging mode if needed
if [ $staging != "0" ]; then
  staging_arg="--staging"
fi

docker-compose run --rm --entrypoint \
  "certbot certonly -a webroot -v --debug-challenges -w /var/www/certbot \
        $staging_arg \
        $email_arg \
        $domain_args \
        $subscribe_arg \
        --rsa-key-size $rsa_key_size \
        --agree-tos \
        --force-renewal" certbot
echo

@abhimediratta what exactly was wrong with the nginx config that you got working?

UPDATE Turned out, it was a firewall problem. Make sure HTTP over port 80 is allowed for incoming traffic.

Oh man, thanks. I had the same problem and read the tip to check the firewall many times. But did not remember I only allowed 443 for incoming traffic when installing. Which worked fine. only the renewal failed without port 80.

Anyone else still on the same boat?
I have a dummy django web app, hosted on Linode, packaged with Nginx and Docker, and have it hosted on my dummy domain. Everything works perfectly until the moment I try to introduce SSL encryption.
It fails with the status that it can not reach the ACME challenge url.

I still have the same issues, not sure whats wrong. Sometimes it works, sometimes it dont


New Option for Bye Teams

Is this repo still being maintained? If so I would like to add a new option and have it integrated into the library.
The new option would be how to float the bye teams. Right now Bye teams are currently floated to the bottom - I would like to be able to float the bye teams to the top so the winning teams are rewarded with a bye instead of the losing teams.
I found the section in the code that needs to be changed, I can add the option and the check for it.
Please let me know if this is something you are interested in adding and I can make a proper pull request. If not I ll just modify my local version.
Thanks

It's been a few years so apologies for the necro:
Under the Dutch system and in keeping with FIDE regulations, the lowest ranked player who has not already received a bye should be given the bye. However, this library is already a mild deviation in that it effectively enforces an all-play-all format, so additional deviations aren't out of the question.
I have no objection to this change were a PR to be submitted. I'd just add that I'd want to see a test that validated both directions over multiple rounds as part of that PR.
I'm going to close this issue for now assuming that this is no longer relevant, but please re-open if you'd like!


hair segmetation through medipipe code in python

can any one provide the code for hair segmentation where extracting hair from image through medipipe liberay and code in python

Hi @Gauravi1,
Currently, we do not have an official example available in our documentation. However, we have created an example of hair segmentation in Python. We hope this can be helpful for you.
Thank you!!

i just want full code for hair segmentation in Python.

From: kuaashish @.>
Sent: Wednesday, April 17, 2024 2:30 PM
To: google/mediapipe @.>
Cc: Gauravi Rane @.>; Mention @.>
Subject: Re: [google/mediapipe] hair segmetation through medipipe code in python (Issue #5323)
Hi @Gauravi1https://github.com/Gauravi1,
Currently, we do not have an official example available in our documentation. However, we have created an examplehttps://colab.sandbox.google.com/gist/kuaashish/a58a6291d74815a4a2653a1f8c26915b/hair.ipynb of hair segmentation in Python. We hope this can be helpful for you.
Thank you!!
—
Reply to this email directly, view it on GitHubhttps://github.com/google/mediapipe/issues/5323#issuecomment-2060757769, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BG7X7BSMFLODMQCMBJPI22LY5Y24XAVCNFSM6AAAAABGKRQ5ZKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRQG42TONZWHE.
You are receiving this because you were mentioned.Message ID: @.***>

Hi @Gauravi1,
At present, we regret to inform you that we do not possess a full set of example code readily accessible. Nevertheless, we encourage you to submit a new feature request. Once submitted, we will review it with our team and prioritize its development accordingly.
Thank you!!

@kuaashish Thank you for helping out we are able to solve the issue which we are facing

@Gauravi1,  Thank you for confirming. If the issue no longer persists from your end, we can proceed to mark the status of the issue as resolved and close it.


ied gets stuck when installing some packages

For example ied install babel@5
it seems to work then display [==============================] 100.00% and doesn't exit.

It would probably help if you provided ied version, platform etc...

Assuming this has been resolved.


Loading source is not constrained to size

I'm using this library to present website icons in my app, which work very nicely. I'm having an issue with the loadingSource image, however, which is not constrained to the same size as the website icon. You can see that it's much larger (perhaps original size) during load:

Here's how I'm using it:
<CachedImage
    loadingSource={ICON_TYPES[type]}
    source={`${ICON_LOOKUP}${encodeURIComponent(domain)}`}
    style={{ height: size, width: size }}
/>

ICON_TYPES[type] is just a local imported png image.

Hi @perry-mitchell
Could you try the loadingImageStyle prop and let us know?

@geobako Thanks for the response! Actually I just fixed this by applying a style to the surrounding view (overflow: hidden), which has fixed it. I didn't get a chance to try loadingImageStyle yet, but if I remember I'll give it a go and will report back.

Just want to say that this library is working amazingly well, I'm really impressed. Great job!


Dynamic Zoom Level

On high alts. a lower zoom level dynamically to a higher or highest zoom level on low alts. would be great.

@Teletoby12000 did you want to post an issue?
Because the code in this PR does not make any sense to me. It tries to merge into a branch that has already been merged into main.

Closing as this looks like this PR was created in error.


Fix warning initialize_all_variables is deprecated

Replace initialize_all_variables with global_variables_initializer.

Can one of the admins verify this patch?

@tensorflow-jenkins test this please

PR merged. Thank you, @bostelk


Retry router connection

This PR updates rmw_init() such that it blocks until a Zenoh router is discovered in ROUTER_CONNECTION_RETRY_MAX attempts. For now this value is not externally configurable and is set to std::numeric_limits<uint64_t>::max() which effectively retries indefinitely.
To test run a talker node without starting the router. The terminal should contain logs to remind the user to start the router. And once the router is started on a different terminal, execution should resume.
# terminal 1
yadunund@ubuntu-22-04:~/ws_rmw$ ros2 run demo_nodes_cpp talker
[ERROR] [1711097721.962485478] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711097722.962627606] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711097723.962784124] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?

# terminal 2
yadunund@ubuntu-22-04:~/ws_rmw$ ros2 run rmw_zenoh_cpp rmw_zenohd
Enter 'q' to quit...

Then
# terminal 1
[ERROR] [1711098130.624961769] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098131.625107213] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098132.625249714] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098133.625404414] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098134.625538271] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098135.625676527] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[ERROR] [1711098136.625823771] [rmw_zenoh_cpp]: Unable to connect to a Zenoh router. Have you started a router with `ros2 run rmw_zenoh_cpp rmw_zenohd`?
[INFO] [1711098137.626023133] [rmw_zenoh_cpp]: Successfully connected to a Zenoh router with id cb1d1e4b8534f374740e5ed92edab2b3!
[INFO] [1711098139.637644881] [talker]: Publishing: 'Hello World: 1'
[INFO] [1711098140.637620937] [talker]: Publishing: 'Hello World: 2'

Thanks for the feedback, Chris. Wondering if we should have two separate envars : one to decide whether or not to check for a router's presence and the other for retry count. Else we could have a single envar ZENOH_ROUTER_CHECK_ATTEMPTS which if set to 0 will skip the router check and will attempt to connect with the router as many times as defined if greater than zero.
Regarding the rclpy issue, it wonder if its related to when we register signal handlers. We should definitely fix it but not a huge blocker imo since the user can start the router and then hit Ctrl+C if needed.

Alright I changed the implementation to be configurable via ZENOH_ROUTER_CHECK_ATTEMPTS.


Pulling Multi-Stage docker image from private registry

Problem faced explained in brief:
Runtime used containerd.
Pulling a multi stage docker image for mysql gets ignored of the COPY layer which is in private-registry.
When pulled in a different env with clean installation of only docker, docker pull gives the full images with the COPY layer.
Environmental Info:
K3s Version:
k3s version v1.20.4+k3s1 (838a906a)
go version go1.15.8

Node(s) CPU architecture, OS, and Version:
Linux k3master.124 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Cluster Configuration:
1 Server - Name: k3master in Ubuntu 20.04 LTS

Describe the bug:
Multi stage docker image for mysql only pulls the last stage without the COPY layer when containerd is the runtime for k3s. Switching to docker runtime the images show the COPY layer, but facing authentication required issue. registries.yaml has been placed in /etc/rancher/k3s/. As well as docker/daemon.json has been uploaded as secret for K3s.
Steps To Reproduce:

Installed K3s with HA DB (PostgreSQL):

curl -sfL https://get.k3s.io | sh -s - --datastore-endpoint=postgres://<postgresql:connectionstring> --kube-apiserver-arg enable-aggregator-routing=true --disable metrics-server

Adding TLS verified registry

mirrors:
  registry.com:443:
    endpoint:
      - "https://registry.com:443"
configs:
  "registry.com:443":
     auth:
       username: username # this is the registry username
       password: password # this is the registry password
     tls:
       cert_file: "/etc/docker/certs.d/registry.com/domain.cert"
       key_file: "/etc/docker/certs.d/registry.com/domain.key"
       ca_file: "/etc/docker/certs.d/registry.com/ca.crt"
       insecure_skip_verify: true

Adding insecure registry for self signed certs

{
  "insecure-registries" : ["https://registry.com443"]
}

Build docker file and push to registry using the following link
Dockerfile Info

Basic deployment yaml for the current image
I have left out the parts spec.container[0].env for mysql. This just demo of the yaml which is being used.

apiVersion: apps/v1beta2
  kind: Deployment
  metadata:
    name: mysql-prepopulated-demo
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: mysql
    template:
      metadata:
        labels:
          app: mysql
      spec:
        containers:
        - name: mysql
          image: registry.com443/docker-repo/mysql-populated
          ports: []
          resources:
            limits: {}
        imagePullSecrets:
        - name: myregistrykey

Expected behavior:
To pull the full image from the private registry and run the deployment. The mysql-pod will have a prepopulated DB which was burned as layer in the image.
Actual behavior:

With containerd runtime:

Authentication works.
The image pulled doesn't not contain the COPY layer data. instead just has vanilla mysql image

With docker runtime

Authentication Failed:
Failed to pull the image (ImagePullBackOff), due to authentication required error.
With only docker in a different server the whole image is pulled and container reflect COPY layer from the image.
When running command from crictl

k3s crictl img

Shows full image which was pulled during containerd runtime

Additional context / logs:
Container version
k3s crictl version

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  v1.4.3-k3s3
RuntimeApiVersion:  v1alpha2

Multi stage docker image for mysql only pulls the last stage without the COPY layer when containerd is the runtime for k3s. Switching to docker runtime the images show the COPY layer, but facing authentication required issue.

registries.yaml is only supported with containerd. If you want to use registries.yaml to configure registry authentication, you must use the containerd packaged with k3s.

Multi stage docker image for mysql only pulls the last stage without the COPY layer when containerd is the runtime for k3s. Switching to docker runtime the images show the COPY layer, but facing authentication required issue.

registries.yaml is only supported with containerd. If you want to use registries.yaml to configure registry authentication, you must use the containerd packaged with k3s, not a standalone containerd, and not docker.

Perfect, when I was doing black box test again to determine issue I solved the docker authentication.
I am using docker runtime itself.
But still the COPY layer misses out when k3s runs it. Local docker command works showing that copied folder.

Multi stage docker image for mysql only pulls the last stage without the COPY layer when containerd is the runtime for k3s. Switching to docker runtime the images show the COPY layer, but facing authentication required issue.

registries.yaml is only supported with containerd. If you want to use registries.yaml to configure registry authentication, you must use the containerd packaged with k3s, not a standalone containerd, and not docker.

Perfect, when I was doing black box test again to determine issue I solved the docker authentication.
I am using docker runtime itself.
But still the COPY layer misses out when k3s runs it. Local docker command works showing that copied folder.

It's good to mention that the image pulled by k3s shows that layer.

Just because you can pull it yourself when doing docker login and docker pull doesn't mean that K3s has credentials to pull it - it doesn't have access to your credentials. You would need to configure Kubernetes image pull secrets or something else like that.

Just because you can pull it yourself when doing docker login and docker pull doesn't mean that the kubelet can pull it - it doesn't have access to your credentials. You would need to configure Kubernetes image pull secrets or something else like that.

As I mentioned above it has been solved I am able to pull image
Verified it through events it is pulling image and running as well.
This in no more authentication issue which has been solved as it was a setup from my side.
The multi layered image is not reflecting the right nature in k3s.

As in the multi stage image, in the second stage we are copying the created DB files from the first image and mounting it to volume in the final image.
FROM mysql:5.7 as builder

<initialize the db to a different folder other than /var/lib/mysql>

FROM mysql:5.7

COPY --from=builder ./var/lib/mysql

Is it possible that containerd in K3s won't be recognizing the Volume mounted in the last build due to this flag in config.
Config template provided for containerd
# Use config version 2 to enable new configuration fields.
# Config file is parsed as version 1 by default.
# Version 2 uses long plugin names, i.e. "io.containerd.grpc.v1.cri" vs "cri".
version = 2

# The 'plugins."io.containerd.grpc.v1.cri"' table contains all of the server options.
[plugins."io.containerd.grpc.v1.cri"]
# ignore_image_defined_volumes ignores volumes defined by the image. Useful for better resource
	# isolation, security and early detection of issues in the mount configuration when using
	# ReadOnlyRootFilesystem since containers won't silently mount a temporary volume.
  ignore_image_defined_volumes = false

Just trying to see what can be done, not sure if it is the right direction. I am testing this in my blackbox setup with contianerd as runtime in K3s

You right it is not VOLUME in the docker. I am having issues with the COPY layer from other image which refuses to work in K3s.
Does that mean multi stage is not supported even when runtimes of docker does?
The COPY layer carries key data which is required.

I'm confused by K3s' role in this - K3s and containerd are not responsible for building the image, that happens elsewhere using Docker, and then you push the image to your registry. Is your Docker client perhaps not pushing all the layers to your registry? Does your registry require different authentication for layers that might be shared across repositories?

I was able to resolve the issue by moving the COPY layer to different folder and placing it back in the VOLUME mount folder. It looks like the order of things when K3s mounts it making that folder empty and not able to use the material. It was changing of Dockerfile and its entypoint issue. Sorry for the trouble caused!


Unable to extend/merge schema when using z.Schema<Type>

Apologies if this is already been reported or is something that cannot be fixed, I wasn't able to find it in the issues.
Assume you have the below schema:
interface Person {
    firstName: string,
    middleName?: string,
    lastName?: string,
    age: number,
    email?: string
}

interface Employee extends Person {
    employeeId: string,
    manager: string
}

If you wanted to construct the Employee Schema to extend the PersonSchema, you are unable to do so if you create your schema with the type z.Schema<Person> as the .extend method apparently does not exist on the type z.Schema<Person>.
Example with z.Schema (TS Playground)
Example without z.Schema (TS Playground)

I'd just like to note I was able to make a very quick and dirty "fix" for this with a custom type.
TS Playground link

To define Zod schemas that conform to a pre-existing type, this is the recommended approach: https://github.com/colinhacks/zod/issues/372#issuecomment-826380330
To your question, only z.ZodObject instances have the extend method. z.Schema is the base class of all Zod schemas, including z.ZodObject.
I recommend against trying to keep Zod schemas aligned with separately defined interfaces like this when possible. The idea behind Zod is let users define their types once, instead of keeping runtime + static code synchronized. Though I understand there are sometimes unavoidable design considerations.


Rdna 3 support

Upgraded from rx6600 to 7600.
Cant control fans now..
Lact is on the latest version and kernel is on 6.9

Do you have overclocking enabled? It's required for fan control on RDNA3, there should be a message about it.
Also see the hardware support info.

I want to add this too, RX 7800 XT was never able to control fans manually, and the GPU is always 0 RPM until the GPU just decides when the fans turn on, and then, maybe it will use your curve. What I do now is i set LACT fan control to Automatic with these settings:

At least with these settings the fans dont just jump to almost max, but they will gradually increase speed, BUT still they will turn on more-or-less around 70C at the VRAM, or at 75C Junction. Honestly this is quite frustrating since on Windows with MSI Afterburner manual fan control works fine, I have my own curve, and I can keep my VRAM and Junction temps below 70 at almost all times.

the GPU is always 0 RPM until the GPU just decides when the fans turn on, and then, maybe it will use your curve

This is known behaviour caused by the driver, and it is documented in the hardware support info:

There is an unconfigurable temperature threshold below which the fan does not get turned on, even with a custom curve.

yeah thought so, i guess i was hoping that it would've been resolved by now

Iljuh, iam Also experiencing same problem. Fedora 41(beta) 6.11.2-300.fc41.x86_64. Just switched from rtx 3070 few days ago to 7900xtx nitro+. Kernel parameter is enabled for Overclocking, undervolting works well. But manual fan control is not working. I have seen it is limited on the frontpage of LACT github. My issue is, that when I use the curve section to set fan speed it applies but fan RPM stays 0rpm. When the edge or junction idk atm goes above 60C fans will automatically kick in. I think that is amdgpu driver issue, not the LACT.

I'm going to close this as the original issue has not enough info to go off, and the other comments are mentioning a known driver-side limitation.

I think that is amdgpu driver issue, not the LACT.

That's true and there's a patch available here. It implements a sysfs interface to turn off the 0rpm feature:
https://gitlab.freedesktop.org/drm/amd/-/issues/3489#note_2626120
It's not officially landed in the kernel yet, so you'd have to build it yourself. I've tested it on my 7800XT and it works reliably.
Maybe LACT can also support it in the future (see #392 )


the binary sometimes returns success on failure

When looking at #140 I found that in case of XMPP failure, the connector will exit with success (code 0). This means that the systemd config Restart=on-failure does not trigger.
We should make sure that the connector exits with failure in all(?) cases. I don't think there is a valid reason for it to exit successfully on its own.

https://github.com/urfave/cli#exit-code explains how to do this.


SIGSEGV on SimpleAPI

2024/02/07 04:52:55 Initialize Client with ID: 9df69f47-9b7e-4080-abff-06142d70c250
2024/02/07 04:52:55 Client 9df69f47-9b7e-4080-abff-06142d70c250 at localhost Queue size: 0
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x5394c8]
goroutine 1 [running]:
github.com/richinsley/comfy2go/graphapi.(*Group).IntersectsOrContains(0xdb89453e48?, 0x7fdb407c6140?)
/projects/ImageGen/pkg/mod/github.com/richinsley/comfy2go@v0.3.0/graphapi/group.go:11 +0x8
github.com/richinsley/comfy2go/graphapi.(*Graph).GetNodesInGroup(0x538b45?, 0xc00021e578?)
/projects/ImageGen/pkg/mod/github.com/richinsley/comfy2go@v0.3.0/graphapi/graph.go:48 +0x91
github.com/richinsley/comfy2go/graphapi.(*Graph).GetSimpleAPI(0xc0004346c0)
/projects/ImageGen/pkg/mod/github.com/richinsley/comfy2go@v0.3.0/graphapi/simpleapi.go:21 +0xf6
main.main()
/projects/ImageGen/src/imagegen.go:80 +0x38a
exit status 2

GetSimpleAPI finds a Group in the workflow that has the title "API".  The nodes contained within the Group are returned as a set of properties:

@SeditiousSov I had to make some code changes to access the properties with the recent updates. This may be of help as a reference on how to access certain properties. In this case Sampler and Positive would need to be replaced with your titles.
simpleApi := graph.GetNodesInGroup(graph.GetGroupWithTitle("API"))

	for _, v := range simpleApi {
		switch v.Title {

		case "Positive":
			if values, ok := v.WidgetValues.([]interface{}); ok {
				values[0] = message
			}

		case "Sampler":
			if values, ok := v.WidgetValues.([]interface{}); ok {
				values[0] = rand.Intn(999999999999999999)
			}
		}
	}

The simple API is designed to take just the first property of each node in the group.  That way, you could group individual properties of different nodes by converting the property to an input:

Then add a primitive node for that property to api group:

Then set the Title for the primitive node to the name of the property you want it to be exposed as in the simple api:

This would result in a Simple API:
{
"Positive": {
"Default": "",
"Multiline": true
},
"Seed": {
"Default": 0,
"Min": 0,
"Max":<PHONE_NUMBER>854775807,
"Step": 0
},
"aibird_details": {
"Default": "",
"Multiline": false
}
}


[CI] Remove PyYAML override in winbuildscripts

What does this PR do?
This PR removes the installation of the PyYAML dependency in the unit tests powershell script.

Motivation
This is IMO bad practice for dependency management, we should use the one in the requirements file instead, and not override it.

Additional Notes
I already tried fixing this in #20422 but it didn't work. We had the same issue with awscli in which I fixed by reversing the path order of Python 2 and 3 in #23392. Now that the path is fixed we can properly remove this !

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


[Refactor] Strings and OpenSearchException to core lib

Updates codebase to use new opensearch-core library for Strings and BaseOpenSearchException upstream refactor changes.
relates https://github.com/opensearch-project/OpenSearch/issues/5910

Oh I see why... the last published zip archive is dated Feb 01.. so the extracted opensearch-core-3.0.0-SNAPSHOT.jar doesn't contain the new org.opensearch.core.common.Strings class.. hence NoClassDefFound.  @bbarani, do you publish nightly zip archive distros? Or just the jar files? Integ tests that use the zip archive will fail if they aren't current w/ the latest nightly jar.

close the PR as other PR has already fixed the issue.


Light mode is not working in Event page

Hi, I am Stephen. I just found that light mode is not working on the event.html page when we changed from dark mode to light mode. I would like to try to fix it. Besides that, the light mode and dark mode on the travel temp.html page have been swapped, where dark mode showing a white background.

please resolve these and try giving the pr as soon as possible


feat: layered package install and cache

Description
I met a problem when I tried to install nvidia-tensorrt==<IP_ADDRESS>, it must be installed after nvidia-pyindex and in a seperate pip install process. However envd will merge all pip packages together.
I can install tensorrt by run(["pip install nvidia-tensorrt==<IP_ADDRESS>"]) in the end, but this process can't be cached.
I think layered package install and cache like docker-compose is very useful in this situation.
my build.envd
def build():
    base(os="ubuntu22.04", language="python3.8")
    config.pip_index(url="https://mirror.sjtu.edu.cn/pypi/web/simple")
    config.apt_source(source="""
    deb https://mirror.sjtu.edu.cn/ubuntu jammy main restricted
    deb https://mirror.sjtu.edu.cn/ubuntu jammy-updates main restricted
    deb https://mirror.sjtu.edu.cn/ubuntu jammy universe
    deb https://mirror.sjtu.edu.cn/ubuntu jammy-updates universe
    deb https://mirror.sjtu.edu.cn/ubuntu jammy multiverse
    deb https://mirror.sjtu.edu.cn/ubuntu jammy-updates multiverse
    deb https://mirror.sjtu.edu.cn/ubuntu jammy-backports main restricted universe multiverse
    deb http://archive.canonical.com/ubuntu jammy partner
    deb https://mirror.sjtu.edu.cn/ubuntu jammy-security main restricted universe multiverse
    """)
    config.conda_channel(channel='''
channels:
    - defaults
show_channel_urls: true
default_channels:
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
    conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
''')
    config.gpu(count=1)

    install.apt_packages(name = [
            "htop",
            "fzf"
    ])

    install.python_packages(name = [
            "setuptools",
            "pip",
            "nvidia-pyindex",
            "nvidia-tensorrt==<IP_ADDRESS>",
            "sktime[dl,all-extras]",
            "seaborn",
            "pyts",
            "ipykernel",
            "tensorflow-gpu",
            "keras",
            "scipy",
            "numpy",
            "pandas",
            "scikit-learn",
            "h5py",
            "matplotlib",
    ])
    install.vscode_extensions([
             "ms-python.python",
             "ms-toolsai.jupyter",
#            "ms-python.vscode-pylance",
#            "ms-python.isort",
#            "GitHub.copilot"
    ])
    shell("zsh")
    run(["pip install nvidia-tensorrt==<IP_ADDRESS>"])

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Thanks for the issue!
/cc @kemingy @VoVAllen

I think we can merge PyPI packages in one install.python_packages.
run() should be cached since by default it won't mount the working directory.
Which version are you using? @oocococo envd version

@kemingy In my build.envd, install.python_packages and run will be rerun every envd up
envd: v0.2.5-alpha.8
  BuildDate: 2022-11-23T13:24:58Z
  GitCommit: c24e555c0b7f6e84d87266a498acdf88a325b433
  GitTreeState: clean
  GitTag: v0.2.5-alpha.8
  GoVersion: go1.18.7
  Compiler: gc
  Platform: linux/amd64

Hi @oocococo, we have changed the behavior in https://github.com/tensorchord/envd/pull/1289.
So next time, Python packages in different install.python_packages commands will be installed in different steps. Hope this can solve your issue.
You can test with the latest code or wait for the next release.

Thank you @kemingy, I will have a try after the next release.


Autoform requires 1.1mb in app cache

Hi, thanks for your excellent package.  Not sure how to phrase this without sounding like a complaint but it's just an enquiry:
I've enabled the standard appcache package and I'm getting a warning that my entire app is over 5mb in size which is not recommended:

So I've started investigating this and what I can do to reduce the size and it appears that the second biggest package I have (after jquery) is autoform weighing in at 1.1 mb which was a suprise to me.

I've got no idea what's involved in writing a package like autoform and I'm sure this size is quite possibly legitimate but I thought I'd log this for developer feedback.

Apologies.  This is only an issue with running locally or building with the debug option turned on.  In production, the total appcache size is barely over a megabyte.


GEODE-10044: Allow FunctionAttributes update

Moved FunctionExecution and OnRegionFunctionExecution into a separate
file in order to improve readability and code maintenance.
Moved ChunkedFunctionExecutionResponse into a separate file in order
to improve readability and code maintenance.
Introduced FunctionAttributes class to improve code readability.
Modified code to introduce the usage of FunctionAttributes.
Modified TcrMessageTest UT to work with the inclusion of
FunctionAttributes.
Implemented a mechanism to cleanup function attributes.
A new exception FunctionAttributesMismatchException is added to be
thrown whenever the server detects a mismatch for the function
attributes.
Now whenever FunctionAttributesMismatchException is catched while
executing a function, its function attributes are cleaned up, so the
client will request an update the next execution.
Added a new IT to verify that chaging a function attributes on the
fly is possible.

The rationale behind this change is allowing the server function upgrade scenario, which was previously discussed in here<EMAIL_ADDRESS>

I haven't had the time to work on this for a long time or I think I'll have the opportunity to in the near future, hence I am closing this PR, if anyone wants to tackle this issue can take it up from its latest state.


cn doesn't override styles on DialogClose

I'm working on a Command component, which uses the Dialog component.
The base version of the Dialog component includes a DialogClose by default in its content. I'd like to override the styling of this Close button, so I came up with this piece of code:

export default function Search() {
  const [isModalOpen, setIsModalOpen] = useState(false);

  const handleOpenSearchModal = useCallback(() => {
    setIsModalOpen(!isModalOpen);
  }, [isModalOpen]);

  return (
    <>
      {/* Search button */}
      <Button
        variant="secondary"
        className="w-full justify-start px-2.5 py-1.5 bg-white-border-gradient"
        onClick={handleOpenSearchModal}
      >
        <SearchIcon size={16} className="text-stone-600" />

          Search

      </Button>

      {/* Search modal */}
      <CommandDialogWithoutClose
        open={isModalOpen}
        onOpenChange={handleOpenSearchModal}
      >

          <CommandInput />
          <DialogClose
            className="relative right-0 top-0"
            onClick={handleOpenSearchModal}
          />

      </CommandDialogWithoutClose>
    </>
  );
}

The DialogClose component uses cn to handle additional CSS classes, but AFAIK, the classes I added here (relative right-0 top-0) are not applied. How can I override them ? The "ugly" workaround I found was to remove the DialogClose completely and replace it by a custom button, wut that doesn't really solve the issue.

@Sashkan
It's not the problem with cn function
Property right-0 will not work when the position is said to relative. It will only work when the position is absolute, fixed

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.

As you can see in the first screenshot, the component  does not overwrite the default close button of the Dialog component.
(in blue my custom button and under it there is the default button that I highlighted with the red arrow)

Here is my code, where I am using the Dialog Button and the DialogClose component from shadcn/ui library :

@steinhardt21
You can change the styles of the DialogClose button from the dialog.tsx file so that they will be consistent across the app

Thank you @imopbuilder ! I did this but I was not sure that was the best way


Improve Router Functionality

There are a few things we should do to improve the functionality of the current router. Each of these should be a smaller PR.
Chunk the REGEX
The current implementation has a bug that will crash the application in the event that the expression is too long. We can solve this by breaking it down into smaller chunks.
Group Prefixes
We can improve the performance of the expression by grouping by route prefix.
Route Caching
We may (or may not) benefit from route caching. We should run some benchmarks and do some tests.
Edit: I was mistaken and we are caching (see #211). We should just dust this off and make sure everything is still looking good here.
Resolve Params REGEX
In #181, @brendt noted:

I think we can refactor resolveParams to either not use regex matches, or a more simplified version; since we're now sure we already have a match

I'm not sure if this is still possible with the latest PR #486, but we should take a look.
Abstract parts of route matching
In #181, @brendt noted:

Add a RouteMatcher class that matches a Route based on a Request and cleans up parts of the Router

We should revisit this. I think it is worth looking to the structure of FastRoute for some inspiration.
Cleanup Custom REGEX
We need to make some design decisions about custom REGEX and implement accordingly. Specifically:

Should we support spaces around parameter names/REGEX (e.g., /users/{ username: \w }).
How do we want to handle weird scenarios like: /{lang:(en|de)} or /foo/{test}/{test:\d+}?

CC: @vsergiu93, @N-Silbernagel

I am curious to implement Group Prefixes. I also think I will be able to build Chunking into it, even without the 'hack' the symfony maintainers used.
The idea I am currently on is to build up a tree of paths and when we are done with discovery I can easily generate an optimized regex from it.
It is the same approach I used some time ago with a custom extensible routing engine in some old node framework.
I wrote about it here if anybody is interested. The big difference in this case is that we do not use said tree for route matching, but produce an optimized regex (or multiple because of chunking) .
For now I will leave the other sections as is but will keep it in mind when implementing. Maybe they are easy to include, but I rather submit multiple smaller PRs than one big one ;)

@blackshadev please feel free to take a look! I'm not entirely understanding you are coming from with that article and referencing Symfony's solution as a hack, so just a few guidelines:

Generally, I think we want to maintain the compiled expression (just chunked if it's too large). It's the fastest route matching option.

Let's benchmark any changes with tempest-benchmark.

Thanks!

Small update I am hacking away in this branch for the curious minded. It is still very WIP, in my eyes even to soon for a draft PR. Do say so if you disagree.
What I did do

Using the route discovery build up a routing tree
Use said to to build a matching regex per method with group prefixes
Extract parameters out using the matching regex instead of separate match

Example:
I got an example app running with these routes:
/
/person
/person/{id}
/person/{id}/name
/person/{id}/id
/person/id/{id}

which will produce the following matching regex
#(?|/person(?|/id(?|/([^/]++)(*MARK:e))|/([^/]++)(?|/name(*MARK:c)|/id(*MARK:d)|(*MARK:b))))#
The first two routes are removed because they are static routes without any parameters, this was already an optimization in place. All other routes should be in there.
What I am missing

[ ] Tests: any tests.
[ ] A bit more thought regarding code design:

[ ] I bolted my solution on top of the RouteConfig, but I think the RouteConfig  en GenericRouter would benefit from some code splitting for separate usecases.
[ ] Having a the routing tree build separate from where the regex is build and chunked would be nice
[ ] To use recursion or not? If nobody has strong opinions I will weigh benchmarking and code-readability against each other.

[ ] Handling some edge cases better

[ ] like overwriting routes, I did not check how the old code handled these, but the outcome should be the same)

[ ] Benchmarking
[ ] Validate if the RouteConfig cache still functions (although it should, I didn't change that much)
[ ] Handling chucking when the regex becomes to large

Update from my side.
I implemented a feature complete version of the routing tree, but yet entirely optimized and cleaned. But I wanted to get a rough benchmark first.
In summary
I will post the raw results below. My conclusion is as follows: this whole route prefixing isn't really that much faster. For existing routes it is a bit faster, but for non-existing routes it clearly isn't. That said, I also implemented some other optimizations, like not regex matching the route parameters again after the route has been matched and not extracting the route parameters in the match, but during discovery instead. I did expect there to be more of a difference, but in the end I can only conclude that PHP itself has been optimized to such a degree that it is hard to draw any hard conclusions from this testing methodology,
I do think it is worth the effort to continue. But it will not have such a severe impact on most applications. I do think my algorithm and code will be easier to extent later on with new routing features. I will try to optimize my code more and specifically the discovery part (which I didn't put any effort in right now). I will also clean up my changes and provide a more granular benchmark for the router itself.
Hopefully this proves some insights. If anybody (@brendt and @aidan-casey specifically)  know none of this will make it into the framework, please do say so before I invest allot more effort into finalizing it.
In depth
Testing setup
I used the tempest-benchmark repo as a base, although it is a bit barebone. I altered their controller templates to actually work (return Ok and add types to the parameters). I ran setup.php with 100 as a parameter resulting in roughly 100 * 4 * 6 routes. Some of these routes are nested, but most aren't. this means this is not the best case scenario for the group prefixing algorithm, but I do think it is an "ok" representation of more realworld examples. A best case routing setup would be really deeply nested, but that isn't al that common in the real world.
I used a small docker setup to run the server, I noticed with the build in server php tempest serve to much of a difference per run, which made my results really inconclusive. I was also considerably slower on all fronts. I attached the docker files for anybody to use. It is a small and copied together setup, but it does work wonders for having more consistent results.
Testing method
I tested against /posts/controller_001/5 as a positive match and http://localhost:8081/posts/controller_001/5/nonexisting/x  for a negative (non existing) one. The non existing route is the worst case route for the grouping prefix regex as it matches up until the 5 before finding out this isn't a match and it need to backtrack through all nested groups. The positive one is also not "the best" possible route for both algorithms, since both route matching regexes for main  and the new branch  aren't alphabethically ordered and thus could be anywhere in the regex.
Files
Raw results
raw_results.md
Docker files
bench-docker-files.zip
Conclusion

After my initial "real life" benchmarks I wanted a more fine grained benchmark with  more precise methods.
With use of phpbench I managed do get the following results:
My branch
+--------------------+------------+--------------+------+-----+----------+----------+--------+
| benchmark          | subject    | set          | revs | its | mem_peak | mode     | rstdev |
+--------------------+------------+--------------+------+-----+----------+----------+--------+
| GenericRouterBench | benchMatch | Dynamic      | 100  | 5   | 10.609mb | 47.802μs | ±0.86% |
| GenericRouterBench | benchMatch | Non existing | 100  | 5   | 10.610mb | 47.031μs | ±1.33% |
| GenericRouterBench | benchMatch | Static       | 100  | 5   | 10.609mb | 46.981μs | ±1.18% |
+--------------------+------------+--------------+------+-----+----------+----------+--------+
Main
+--------------------+------------------+--------------+------+-----+----------+-----------+--------+
| benchmark          | subject          | set          | revs | its | mem_peak | mode      | rstdev |
+--------------------+------------------+--------------+------+-----+----------+-----------+--------+
| GenericRouterBench | benchMatch       | Dynamic      | 100  | 5   | 10.578mb | 60.639μs  | ±5.14% |
| GenericRouterBench | benchMatch       | Non existing | 100  | 5   | 10.578mb | 59.391μs  | ±0.39% |
| GenericRouterBench | benchMatch       | Static       | 100  | 5   | 10.578mb | 60.423μs  | ±1.49% |
+--------------------+------------------+--------------+------+-----+----------+-----------+--------+
Meaning my code is noticeable faster, and more stable on the positive match. It is less stable (but faster)
on the negative match.
Still this is such a small difference that the main advantage will be: throughput and a better surface to extend later on.
In my code I will also be including this benchmark tool. I think it will be a really good resource to use when optimizing hot code paths like these.
Benchmark
GenericRouterBench.php.zip

Looks promising! @aidan-casey what are your thoughts?


Always reload after a change in the configuration

fixes #900

This change is

Coverage decreased (-0.02%) to 44.257% when pulling 3b903c591300c2e4b7b222aa4a3b67c6d06bfe93 on aledbf:fix-configmap-update into 53ef03b0a78e3b5aa815e783376271da53da7ca6 on kubernetes:master.


As a campus partner, I want to see a chart of engagement types.

Shows number of partners and projects by engagement type.
Can filter by:

academic year
campus partner
legislative district
household income

Clicking brings up a report showing a list of all projects and partners with relevant information.

No project data.

No matter what campus partner I select, data does not change.

Data is not correct. Community-based learning should have 3 projects, and 2 of each partner. Knowledge/info sharing should have 13 projects, and 4 of each partner.


Working out…

Test what happens when there is a plain icon...
And add some results for Yandex/VoiceOver - speech and braille output

Awesome, thanks Chaals!


has_state test fails

Repro:

Nicco account on RapidPro
Surveyor Flow
Has a Has a state test, doesn't work even though I have Malawi set as my country

Testing and seems to work now


Seperate config files?

I have a project in where I need two seperate config files. Also, I want to reuse the tasks as they are project independent where the config is not.
However, since all the tasks this gulp-starter provides all use config files relative to the task's directory, makes it really hard to re-use these tasks.
Wouldn't it be a better option to pass in the configuration to a task via require, or use a global object, or some kind of singleton configuration object?

They're separated out in the 2.0 branch, but that has it's issues too. But I agree, I think it's a little better.


Operator doesn't create serviceaccount "istiod-service-account"

I discovered this by deleting my istio-system namespace, then installing with
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: default
  values:
    global:
       imagePullPolicy: Always
       sds:
         enabled: false
EOF

The istiod pod is not created; kubectl -n istio-system describe rs istiod-6698f8794c reports
Warning  FailedCreate  58s (x16 over 3m42s)  replicaset-controller  Error creating: pods "istiod-6698f8794c-" is forbidden: error looking up service account istio-system/istiod-service-account: serviceaccount "istiod-service-account" not found
The problem is NOT the YAML generation.  The same IstioOperator, fed to istioctl manifest apply or istioctl manifest generate, does create the serviceaccount "istiod-service-account".
Running istioctl manifest apply on the same file left the Deployments unchanged but allowed the Pods to start.

I notice manifests/istio-control/istio-discovery/templates/clusterrolebinding.yaml defines the Service Accounts without values for namespace: but manifests/istio-control/istio-discovery/templates/deployment.yaml explicitly sets namespace: {{ .Release.Namespace }}.  Those things must match; perhaps the istioctl is defaulting it somehow.

@esnible did this happen after installing successfully, then removing the istio-system namespace, and installing again?

@dgn Yes.  I have installed Istio hundreds of times with istioctl.  This was an attempt to clean Istio out of my cluster and install using the Operator pod.

Works for me.


extconf.rb: using "sh" when unnecessary won't work on some systems

While running commands with "sh" works on MacOS and Windows, it won't work on some Linux systems (where the command won't be found).
Let's remove it for "autoconf" and "autoheader" until we actually see a need for it.

Please don't merge this yet - working through another issue installing the gem via a git source.


Allure Plugin: Allure report not getting populated

Expected Behavior
Allure report get populated in backstage once configurations in the following documentation is done.
https://github.com/backstage/backstage/blob/master/plugins/allure/README.md
Actual Behavior

Report is not getting populated

Steps to Reproduce

Followed all the steps in the above document in addition to it added     qameta.io/allure-project: project-name in catalog-info.yaml
Context

Our allure env is password protected. I am not sure how to pass the username and password in backstage for the same
Also, to fix the error shown in the console
Please advise me
Your Environment

Browser Information:

Output of yarn backstage-cli info:

The error seems to be a CSP violation. Do you use the @backstage/plugin-app-backend plugin, i.e. serving the frontend from the backend service? If so, you can set CSP policies in your backend config, at backend.csp. For example,
backend:
  csp:
    'frame-src': ["'self'", 'https://my-other-server']

Otherwise you'll have to make sure in whatever other applicable way in your serving infra, that the right Content-Security-Policy headers are set.
As for passwords, I do not know this works in Allure myself. Do you mean that a certain header has to be set when speaking to the web frontend? The only thing the plugin does, is to compute what the right URL should be for the report data, and then rendering an iframe with that URL.
https://github.com/backstage/backstage/blob/c02fda193d4d582ff955e007e1eebb3afe3d1206/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx#L36
If your Allure instance is behind SSO or similar, then there's very little that the plugin can do to help with that.

@freben ,
adding backend.csp solved my issue.
Thanks for the solution.

Hey @freben I am also doing same but I am facing this error:
Refused to display 'https://example.xyz.com' in a frame because it set 'X-Frame-Options' to 'sameorigin'.Understand this error


Update managing-accounts.md

Made sentences precise.
Corrected grammar.
Reworded for clarity.

Description
Describe the changes that were made in this pull request. When possible start with the motivations behind the change. Be sure to also include the following information:

Motivation for change?
What was changed?
Link to relevant issues?

Checklist

[ ] Conventional commits were used
[ ] New links to files and images were verified
[ ] For fixes/refactors: all existing references were identified and replaced
[ ] Style guide was reviewed and applied
[ ] Clear code samples were provided
[ ] People were tagged for review

@saralab : Could you review my PR? Thanks.

@sabbyanandan: This PR is now ready for review.


Driver "elFinderVolumeFlysystem" : SSL certificate problem: unable to get local issuer certificate

Hi, I wanted to set up Nextcloud as a volume in elFinder, as described in the following issues https://github.com/Studio-42/elFinder/issues/2082 - NextCloud (WebDAV End Point) <---> FlySystem WebDAV adapter <---> FlySystem <---> elFinder FlySystem Driver <---> elFinder. However, I encountered an issue with SSL certificate validation. I know I'm using my own non-standard certificate for various reasons. Is there a way to disable certificate validation?
I'm new to elFinder, actually discovered the project today, and I must say it made quite an impression on me. I really appreciate it.

I'm not sure if this is possible. Underneath, the sabre/dav client is used, which doesn't seem to have any configuration options to allow this: https://github.com/sabre-io/dav/blob/master/lib/DAV/Client.php


update privacy-json and rename docs

ToDo:
Release date
upload new docs (3)

@dsarkar
Is it intended for this PR to merge into master? It seems to be preparing updates for the 3.1 release, so I guess that the target branch should be release/3.1.
It does not look like it is complete or ready for review at this time, so I suggest to set the status to Draft.

no updates for R 3.1


n2 missing file building lldb

In LLVM, building lldb with a build directory generated with:
cmake ../llvm -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS='lldb;clang' -DLLDB_ENABLE_PYTHON=true -DLLDB_ENABLE_SWIG=true -DLLDB_INCLUDE_TESTS=true -DLLVM_ENABLE_RUNTIMES=libcxx

Running
ninja lldb

eventually fails (after building ~4k files) with:
n2: error: build.ninja:95047: input tools/lldb/CMakeFiles/lldb-python missing

This failure doesn't happen with ninja

I reproduced this with llvm.  Build files look like:
build tools/lldb/CMakeFiles/lldb-python: ...
  command = mkdir unrelated_directory

build tools/lldb/CMakeFiles/lldb-python.util: CUSTOM_COMMAND tools/lldb/CMakeFiles/lldb-python ...

So one step claims it writes a file, and then the next step claims it uses it.  I need to dig into why Ninja even accepts this.

I really appreciate you taking the time to try out n2 and file a bug report!
I pushed a fix for this that is kind of scary to me, so if you try it out let me know if you run into anything else funny.
$ ninja -C ~/projects/llvm-project-16.0.0.src/build lldb | cat
Python script sym-linking LLDB Python API
Running utility command for lldb-python
n2: ran 2 tasks, now up to date

$ touch /Users/evmar/projects/llvm-project-16.0.0.src/lldb/source/DataFormatters/TypeCategory.cpp
$ ninja -C ~/projects/llvm-project-16.0.0.src/build lldb | cat
Building CXX object tools/lldb/source/DataFormatters/CMakeFiles/lldbDataFormatters.dir/TypeCategory.cpp.o
Linking CXX static library lib/liblldbDataFormatters.a
Linking CXX shared library lib/liblldb.16.0.0.dylib
Creating library symlink lib/liblldb.dylib
Python script sym-linking LLDB Python API
Running utility command for lldb-python
Linking CXX executable bin/lldb
n2: ran 7 tasks, now up to date

Ha, thanks!


License?

Hey! I find wour project awesome!
I was just wondering if it had a license, in order to know if I can use it for my project.
Keep up the good work!

feel free to use it

Thanks :)


Broken with latest python-mpv (1.0.1) released on Apr 24 2022

Running plex-mpv-shim crashes with:
Traceback (most recent call last):
  File "/home/ubuntu/.local/bin/plex-mpv-shim", line 8, in <module>
    sys.exit(main())
  File "/home/ubuntu/.local/lib/python3.10/site-packages/plex_mpv_shim/mpv_shim.py", line 47, in main
    from .player import playerManager
  File "/home/ubuntu/.local/lib/python3.10/site-packages/plex_mpv_shim/player.py", line 568, in <module>
    playerManager = PlayerManager()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/plex_mpv_shim/player.py", line 235, in __init__
    def handle_end_idle(event):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/mpv.py", line 1606, in register
    types = [MpvEventID.from_str(t) if isinstance(t, str) else t for t in event_types] or MpvEventID.ANY
  File "/home/ubuntu/.local/lib/python3.10/site-packages/mpv.py", line 1606, in <listcomp>
    types = [MpvEventID.from_str(t) if isinstance(t, str) else t for t in event_types] or MpvEventID.ANY
  File "/home/ubuntu/.local/lib/python3.10/site-packages/mpv.py", line 299, in from_str
    return getattr(kls, s.upper().replace('-', '_'))
AttributeError: type object 'MpvEventID' has no attribute 'IDLE'

Workaround:
pip3 install --upgrade python-mpv==0.5.2

Noticed the same. Thanks for the workaround.

Thanks this helped!

This workaround no longer works as a recent update to mpv 0.35.0 that requires python-mpv==1.0.1. It's a catch-22 situation.

You can either backport a patch to python-mpv 0.5.2 or use external mpv mode:
https://aur.archlinux.org/packages/python-mpv#comment-889644
https://aur.archlinux.org/packages/python-mpv#comment-889648

Thanks for pointing this out!

I just pushed a fix that should make it compatible with python-mpv 1.0.1. Please let me know if that works.
You can also use external MPV to work around this issue.

@iwalton3, works for me 👍


added hardwareBackEnabled option

This change allows app code to disable to hardware back button hook.  This is useful if you want to programmatically disable the default back button behavior on certain views but not others.

Looks like you introduced a few Flow errors here, @thebigredgeek

@skevy I'll see if I can fix it this week or next

Hi, is there any progress on this PR? thanks

I need to find time for this.  i started a new job and am no longer working with React Native or this lib at all.  If someone wants to take this over, they are more than welcome


chore: remove find catch from cmake files

What type of PR is this?
/kind cleanup

If contributing rules or changes to rules, please make sure to also uncomment one of the following line:

/kind rule-update

/kind rule-create

Any specific area of the project related to this PR?
NONE
What this PR does / why we need it:
Just a chore to remove an unused cmake file.
Which issue(s) this PR fixes:
Special notes for your reviewer:
👼
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: fntlnz
If they are not already assigned, you can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leodido
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leodido]

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

LGTM label has been added.  Git tree hash: a429c7ceab76e3191267a0264685351de688f9a2

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: fntlnz
If they are not already assigned, you can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: fntlnz
If they are not already assigned, you can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leodido
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leodido]

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

LGTM label has been added.  Git tree hash: 02035d1cd742b69ca3306d05b9613cda66aeab3c


go build issues

Hi,
I've followed the README.md install process and I got this error at go build:
ricc@derek:~/git/gapi$ go build
auth.go:11:2: cannot find package "code.google.com/p/goauth2/oauth" in any of:
	/usr/local/go/src/code.google.com/p/goauth2/oauth (from $GOROOT)
	/usr/lib/google-golang/src/code.google.com/p/goauth2/oauth (from $GOPATH)
auth.go:12:2: cannot find package "code.google.com/p/goauth2/oauth/jwt" in any of:
	/usr/local/go/src/code.google.com/p/goauth2/oauth/jwt (from $GOROOT)
	/usr/lib/google-golang/src/code.google.com/p/goauth2/oauth/jwt (from $GOPATH)
import cycle not allowed
package .
	imports bytes
	imports errors
	imports runtime
	imports runtime/internal/atomic
	imports unsafe
	imports runtime
import cycle not allowed
package .
	imports net/http
	imports crypto/tls
	imports crypto/x509
	imports net
	imports runtime/cgo
	imports runtime/cgo

$ go version
go version go1.6 linux/amd64

I suppose I have to install some go oauth packages first?

There's a dependency on a repo in code.google.com which has been turned down. I'll need to update the dependency. PRs welcome if you get to it before I do.


antiamboceptor, entrust

This pull request was generated by the 'mq' tool
[test]
flake rate: 0.4
logical conflict every: 100
sleep for: 300s
[pullrequest]
requests per hour: 30
deps=[a,e]

/trunk merge


E: Unable to locate package php7.2-phpdbg

Info:

Docker version ($ docker --version): Docker version 18.06.1-ce, build e68fc7a
Laradock commit ($ git rev-parse HEAD): 538b6aa0cd484c475c5c537a763e4e1fe330fcae
System info (Mac, PC, Linux): PC
System info disto/version: Windows 10

Issue:
When you try to install PHPDBG on php-fpm it fails

Expected behavior:
PHPDBG installed inside php-fpm container

Reproduce:

Enable PHP_FPM_INSTALL_PHPDBG=true in you .env file
Build docker-compose build php-fpm

Relevant Code:
I guess the problem is here php-fpm/Dockerfile
###########################################################################
# Phpdbg:
###########################################################################

ARG INSTALL_PHPDBG=false

RUN if [ ${INSTALL_PHPDBG} = true ]; then \
    # Load the xdebug extension only with phpunit commands
    apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
;fi

Suggest to update laradock version.

Hi, I have the same problem with newest laradock version. Any ideas?

I've changed the command in Dockerfile to apt-get install -y --force-yes php-phpdbg and it shows that phpdbg is available only for php7.3 and 7.0. Looks like debian repository doesn't have php7.2-phpdbg package.

This is what solved my problem, I have adjusted the lines to be
    # Load the xdebug extension only with phpunit commands
    rm /etc/apt/preferences.d/no-debian-php && \
        apt-get update -yqq && \
    apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
;fi


move mappers from kubeedge repo to here

Move mappers from kubeedge repo to here.
*Note: only unit tests are enabled for now, should add intergration test later

/kind api-change

/kind api-change

/kind api-change

/kind api-change

/lgtm

/lgtm

/close

/close


Resnet architecture mismacthes.

Hello,
I wonder why your Resnet architecture mismatches standard Resnet architectures?
It does not allow to use ImageNet pre-trained models.
Yours has two extra convolution layers; and there is no convolution layer with kernels 7x7.
Thanks!
Standard Resnet arch.:
https://github.com/speedinghzl/Pytorch-Deeplab
https://github.com/kazuto1011/deeplab-pytorch
https://github.com/isht7/pytorch-deeplab-resnet
https://github.com/pytorch/vision/blob/master/torchvision/models/resnet.py
class ResNet(nn.Module):

    def __init__(self, block, layers, num_classes=1000, zero_init_residual=False):
        super(ResNet, self).__init__()
        self.inplanes = 64
        self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3,
                               bias=False)
        self.bn1 = nn.BatchNorm2d(64)
        self.relu = nn.ReLU(inplace=True)
        self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)
        self.layer1 = self._make_layer(block, 64, layers[0])
        self.layer2 = self._make_layer(block, 128, layers[1], stride=2)
        self.layer3 = self._make_layer(block, 256, layers[2], stride=2)
        self.layer4 = self._make_layer(block, 512, layers[3], stride=2)

...

Your Resnet arch.:
class ResNet(nn.Module):
    def __init__(self, block, layers, num_classes):
        self.inplanes = 128
        super(ResNet, self).__init__()
        self.conv1 = conv3x3(3, 64, stride=2)
        self.bn1 = BatchNorm2d(64)
        self.relu1 = nn.ReLU(inplace=False)
        self.conv2 = conv3x3(64, 64)
        self.bn2 = BatchNorm2d(64)
        self.relu2 = nn.ReLU(inplace=False)
        self.conv3 = conv3x3(64, 128)
        self.bn3 = BatchNorm2d(128)
        self.relu3 = nn.ReLU(inplace=False)
        self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)

        self.relu = nn.ReLU(inplace=False)
        self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=True) # change
        self.layer1 = self._make_layer(block, 64, layers[0])
        self.layer2 = self._make_layer(block, 128, layers[1], stride=2)
        self.layer3 = self._make_layer(block, 256, layers[2], stride=1, dilation=2)
        self.layer4 = self._make_layer(block, 512, layers[3], stride=1, dilation=4, multi_grid=(1,1,1))

....

Yes, this resnet arch is used in PSPnet.
You can use the MIT pretrained model mentioned in ReadMe for initialization.

Thanks!
resnet-101 does not fit the GPU. I'm trying to use resnet-50 (and to be able to use the default pre-trained model on ImageNet). I adjusted my code to do that. Thanks!

@sbelharbi
Hi, May I ask, does it make a difference between this two arch(con1 7x7 and conv1 3x3, inplanes64 and inplanes128)?

not sure what do you mean.
self.inplanes is independent of the size of the kernel self.conv1.
the former is the the number of the input of planes of a block.

@sbelharbi
I meant, how is the performance when you used the resnet-50 Standard as backbone? Is it different much from the resnet arch here?

I can't tell.
I ended up using a different architecture than PSPnet/deeplab (at the last layers) + resnet-101 as backbone for segmentation AND classification tasks (simultaneously).  So, I can't really answer you.
I don't think that you can find a helpful answer to your question, but to perform your own experiments on your data. There are a lot of factors in play (task, data, number of samples, training scheme, ...). Such experiments may helpfully give you a hint on which direction to go.
The advantage of the implementations in this repo (deeplab + pspnet) is that you will be able to use pre-trained archs over segmentation task.


Filter graph editor crashes when the last reference to a filter is removed

Probably: Filter deletes itself but nobody tells the filter graph editor.

Turns out this is actually a bug in FlowGraphNode::SetInput(). Moving to scopehal.


all: implement struct field tags

Fixes neugram/ng#172.

Codecov Report

Merging #181 into master will increase coverage by 0.14%.
The diff coverage is 72.72%.

@@            Coverage Diff             @@
##           master     #181      +/-   ##
==========================================
+ Coverage   50.38%   50.52%   +0.14%
==========================================
  Files          23       23
  Lines        9974     9985      +11
==========================================
+ Hits         5025     5045      +20
+ Misses       4448     4437      -11
- Partials      501      503       +2

Impacted Files
Coverage Δ

gengo/gengo.go
78% <100%> (+0.04%)
:arrow_up:

parser/parser.go
70.14% <66.66%> (-0.03%)
:arrow_down:

parser/scanner.go
69.97% <0%> (+2.43%)
: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 dcf621c...4118040. Read the comment docs.


KAFKA-10174: Prefer --bootstrap-server for configs command in ducker tests

Preferred when version >= 2.6.0
Small renaming to make context clearer
truncation_test.py and message_format_change_test.py pass locally as well as in CI
Added prints to test to verify, it is indeed invoking --bootstrap-server

http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-06-26--001.1593219250--vinothchandar--KAFKA-10174--1efed8fb5/report.html
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

cc @cmccabe this one is ready for review as well. One more PR to go..

Hi @vinothchandar.  Thanks for working on this.  Our big goal here is to get rid of use_zk_connection so that it is no longer an option for any of the commands in this file.  It seems like this PR doesn't quite get us there, since I can see that Kafka#start and Kafka#create_topic  both still feature that option here.

@cmccabe this PR is a sub task under KAFKA-10131, which tracks the bigger goal. I filed a new issue explicitly targetting removal of use_zk_connection . For this pr, the public methods affects alter_message_format/set_unclean_leader_election don't offer this flag..
So this PR should be fine for this scope?

Maybe just transition this over to @rondagostino to see what he thinks

@vinothchandar @cmccabe I've assigned https://issues.apache.org/jira/browse/KAFKA-10258 to me and will deal with use_zk_connection there.  It would be great if we could merge this PR without my involvement to keep it to 1 author.

@cmccabe we already discussed the same.  I still think for the scope for the issue, this PR suffices. let us know what you think

ok, that works for me.  LGTM

Thanks @cmccabe


Add sample text for Maori

After a complain from a user https://twitter.com/fauxparse/status/1602944061023088643 saying the macron accent in Maori sample text were removed, I wanted to check out the textproto, but couldn't find any. So I guess we need to add one to fix the issue?

Thanks! For reference, I'm referring to the sample text that appeared in the screenshot attached to the above tweet, which may have been auto-translated? Regardless, I'm reasonably sure the text should read "Nō te mea ki te kore te tangata ae ākina kia tae ki te tino [or possibly tinō?] hemānawatanga", but it would of course be good to consult an authority on it :)
Macron support is far from universal, but a prime consideration for people choosing fonts for use in Aotearoa/New Zealand, since Māori uses macrons extensively — and they can change the meaning drastically! "Wētā" = a native insect, but weta = "shit". Being able to view this when a font is previewed would lead to better outcomes for Kiwi developers.
Thanks for looking into this!

The official UDHR translation does not contain any words with macrons - which is a bit suspicious. I agree that if it is correct, it's not a great sample in terms of showing off language support. But if it is correct, it's a good text to use.
However I don't think this is a killer for choosing fonts. On Google Fonts, selecting "Maori" in the language dropdown will only show fonts which fully support all characters in the Maori repertoire.

Well, it’s not correct and the issue shouldn’t be closed.
The OHCHR.org’s PDF of the Maori UDHR has the macrons while the webpage does not. Both have a different Maori translation. My guess is the webpage has an old translation, without macron either because it predates the adoption of the macron in the 1987 spelling or because macrons were lost in digitization.
Either way, the version with macron should be used.