starter.ini: Allow the choice of which PPA to use for an optional install of PHP

Problem this feature will solve
See https://github.com/apolopena/gitpod-laravel-starter/issues/156#issuecomment-1018883245
Background

Proposed Solution
See https://github.com/apolopena/gitpod-laravel-starter/issues/156#issuecomment-1018883245
Constraints and Assumptions
<! -- Any constraints and/or assumption relevant for the development and use of this feature? -->
Alternatives or Workarounds

Additional context
Add any other context or screenshots about the feature request here.

Depends on https://github.com/apolopena/gitpod-laravel-starter/issues/177

I once wanted to test a PHP8 workspace.
For this I changed the PHP version in the starter.ini to "version=gitpodlatest".
https://github.com/apolopena/gitpod-laravel-starter/blob/1294ebe5666ba1a26808b5cceebb6af6af9bc32a/starter.ini#L39
Then I started a GitPod workspace, unfortunately again a cached image was used for the workspace and PHP 7.4 was active in it.
I first had to change the .gitpod.Dockerfile and increment the value "INVALIDATE_CACHE".
https://github.com/apolopena/gitpod-laravel-starter/blob/1294ebe5666ba1a26808b5cceebb6af6af9bc32a/.gitpod.Dockerfile#L56
Is this desired to be able to change only the PHP version via this way?
Then came this error, PHP 8 does not build correctly.

#8 [4/9] RUN sudo bash -c ". /tmp/php.sh" && rm /tmp/php.sh
#8 0.359 BEGIN: php.sh
#8 0.365   Using the existing 'gitpodlatest' version of PHP (8.0) as specified in https://github.com/gitpod-io/workspace-images/blob/master/full/Dockerfile
#8 0.366 /tmp/php.sh: line 123: generate_php_fpm_conf: command not found
#8 0.477 Get:1 http://ppa.launchpad.net/git-core/ppa/ubuntu focal InRelease [23.8 kB]
#8 0.477 Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
#8 0.498 Get:3 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB]
#8 0.506 Get:4 https://apt.llvm.org/focal llvm-toolchain-focal InRelease [6,824 B]
#8 0.509 Get:5 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease [23.9 kB]
#8 0.529 Get:6 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
#8 0.542 Get:7 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
#8 0.619 Get:8 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
#8 0.651 Get:9 http://ppa.launchpad.net/git-core/ppa/ubuntu focal/main amd64 Packages [3,162 B]
#8 0.774 Get:10 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [14.9 kB]
#8 0.900 Get:11 https://pkgs.tailscale.com/stable/ubuntu focal InRelease
#8 1.071 Get:12 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
#8 1.085 Get:13 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
#8 1.169 Get:14 https://apt.llvm.org/focal llvm-toolchain-focal/main amd64 Packages [12.4 kB]
#8 1.215 Get:15 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages [169 kB]
#8 1.222 Get:16 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
#8 1.223 Get:17 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1,275 kB]
#8 1.373 Get:18 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [952 kB]
#8 1.394 Get:19 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1,120 kB]
#8 1.410 Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1,895 kB]
#8 1.433 Get:21 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.7 kB]
#8 1.531 Get:22 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [50.8 kB]
#8 1.542 Get:23 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [22.4 kB]
#8 1.747 Get:24 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [839 kB]
#8 1.943 Get:25 https://pkgs.tailscale.com/stable/ubuntu focal/main amd64 Packages [4,899 B]
#8 2.066 Get:26 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.1 kB]
#8 2.068 Get:27 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,470 kB]
#8 2.190 Get:28 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [889 kB]
#8 2.625 Fetched 21.1 MB in 2s (9,573 kB/s)
#8 2.625 Reading package lists...
#8 3.652   Purging existing PHP 8.0 installation
#8 3.719 Reading package lists...
#8 4.753 Building dependency tree...
#8 4.941 Reading state information...
#8 4.998 Package 'php8.0' is not installed, so not removed
#8 4.998 Package 'php8.0-amqp' is not installed, so not removed
#8 4.998 Package 'php8.0-apcu' is not installed, so not removed
#8 4.998 Package 'php8.0-ast' is not installed, so not removed
#8 4.998 Package 'php8.0-bcmath' is not installed, so not removed
#8 4.998 Package 'php8.0-bz2' is not installed, so not removed
#8 4.998 Package 'php8.0-cgi' is not installed, so not removed
#8 4.998 Package 'php8.0-cli' is not installed, so not removed
#8 4.998 Package 'php8.0-common' is not installed, so not removed
#8 4.998 Package 'php8.0-curl' is not installed, so not removed
#8 4.998 Package 'php8.0-dba' is not installed, so not removed
#8 4.998 Package 'php8.0-decimal' is not installed, so not removed
#8 4.998 Package 'php8.0-dev' is not installed, so not removed
#8 4.998 Package 'php8.0-ds' is not installed, so not removed
#8 4.998 Package 'php8.0-enchant' is not installed, so not removed
#8 4.998 Package 'php8.0-fpm' is not installed, so not removed
#8 4.998 Package 'php8.0-gd' is not installed, so not removed
#8 4.998 Package 'php8.0-gearman' is not installed, so not removed
#8 4.998 Package 'php8.0-gmagick' is not installed, so not removed
#8 4.998 Package 'php8.0-gmp' is not installed, so not removed
#8 4.998 Package 'php8.0-gnupg' is not installed, so not removed
#8 4.998 Package 'php8.0-grpc' is not installed, so not removed
#8 4.998 Package 'php8.0-http' is not installed, so not removed
#8 4.998 Package 'php8.0-igbinary' is not installed, so not removed
#8 4.998 Package 'php8.0-imagick' is not installed, so not removed
#8 4.998 Package 'php8.0-imap' is not installed, so not removed
#8 4.998 Package 'php8.0-inotify' is not installed, so not removed
#8 4.998 Package 'php8.0-interbase' is not installed, so not removed
#8 4.998 Package 'php8.0-intl' is not installed, so not removed
#8 4.998 Package 'php8.0-ldap' is not installed, so not removed
#8 4.998 Package 'php8.0-lz4' is not installed, so not removed
#8 4.998 Package 'php8.0-mailparse' is not installed, so not removed
#8 4.998 Package 'php8.0-maxminddb' is not installed, so not removed
#8 4.998 Package 'php8.0-mbstring' is not installed, so not removed
#8 4.998 Package 'php8.0-mcrypt' is not installed, so not removed
#8 4.998 Package 'php8.0-memcache' is not installed, so not removed
#8 4.998 Package 'php8.0-memcached' is not installed, so not removed
#8 4.998 Package 'php8.0-mongodb' is not installed, so not removed
#8 4.998 Package 'php8.0-msgpack' is not installed, so not removed
#8 4.998 Package 'php8.0-mysql' is not installed, so not removed
#8 4.998 Package 'php8.0-oauth' is not installed, so not removed
#8 4.998 Package 'php8.0-odbc' is not installed, so not removed
#8 4.998 Package 'php8.0-opcache' is not installed, so not removed
#8 4.998 Package 'php8.0-pcov' is not installed, so not removed
#8 4.998 Package 'php8.0-pgsql' is not installed, so not removed
#8 4.998 Package 'php8.0-phpdbg' is not installed, so not removed
#8 4.998 Package 'php8.0-protobuf' is not installed, so not removed
#8 4.998 Package 'php8.0-ps' is not installed, so not removed
#8 4.998 Package 'php8.0-pspell' is not installed, so not removed
#8 4.998 Package 'php8.0-psr' is not installed, so not removed
#8 4.998 Package 'php8.0-raphf' is not installed, so not removed
#8 4.998 Package 'php8.0-readline' is not installed, so not removed
#8 4.998 Package 'php8.0-redis' is not installed, so not removed
#8 4.998 Package 'php8.0-rrd' is not installed, so not removed
#8 4.998 Package 'php8.0-smbclient' is not installed, so not removed
#8 4.998 Package 'php8.0-snmp' is not installed, so not removed
#8 4.998 Package 'php8.0-soap' is not installed, so not removed
#8 4.998 Package 'php8.0-solr' is not installed, so not removed
#8 4.998 Package 'php8.0-sqlite3' is not installed, so not removed
#8 4.998 Package 'php8.0-ssh2' is not installed, so not removed
#8 4.998 Package 'php8.0-swoole' is not installed, so not removed
#8 4.998 Package 'php8.0-sybase' is not installed, so not removed
#8 4.998 Package 'php8.0-tidy' is not installed, so not removed
#8 4.998 Package 'php8.0-uopz' is not installed, so not removed
#8 4.998 Package 'php8.0-uploadprogress' is not installed, so not removed
#8 4.998 Package 'php8.0-uuid' is not installed, so not removed
#8 4.998 Package 'php8.0-vips' is not installed, so not removed
#8 4.998 Package 'php8.0-xdebug' is not installed, so not removed
#8 4.998 Package 'php8.0-xhprof' is not installed, so not removed
#8 4.998 Package 'php8.0-xml' is not installed, so not removed
#8 4.998 Package 'php8.0-xmlrpc' is not installed, so not removed
#8 4.998 Package 'php8.0-xsl' is not installed, so not removed
#8 4.998 Package 'php8.0-yac' is not installed, so not removed
#8 4.998 Package 'php8.0-yaml' is not installed, so not removed
#8 4.998 Package 'php8.0-zip' is not installed, so not removed
#8 4.998 Package 'php8.0-zmq' is not installed, so not removed
#8 4.998 Package 'php8.0-zstd' is not installed, so not removed
#8 4.998 Package 'php8.1' is not installed, so not removed
#8 4.998 Package 'php8.1-amqp' is not installed, so not removed
#8 4.998 Package 'php8.1-apcu' is not installed, so not removed
#8 4.998 Package 'php8.1-ast' is not installed, so not removed
#8 4.998 Package 'php8.1-bcmath' is not installed, so not removed
#8 4.998 Package 'php8.1-bz2' is not installed, so not removed
#8 4.998 Package 'php8.1-cgi' is not installed, so not removed
#8 4.998 Package 'php8.1-cli' is not installed, so not removed
#8 4.998 Package 'php8.1-common' is not installed, so not removed
#8 4.998 Package 'php8.1-curl' is not installed, so not removed
#8 4.998 Package 'php8.1-dba' is not installed, so not removed
#8 4.998 Package 'php8.1-decimal' is not installed, so not removed
#8 4.998 Package 'php8.1-dev' is not installed, so not removed
#8 4.998 Package 'php8.1-ds' is not installed, so not removed
#8 4.998 Package 'php8.1-enchant' is not installed, so not removed
#8 4.998 Package 'php8.1-fpm' is not installed, so not removed
#8 4.998 Package 'php8.1-gd' is not installed, so not removed
#8 4.998 Package 'php8.1-gearman' is not installed, so not removed
#8 4.998 Package 'php8.1-gmagick' is not installed, so not removed
#8 4.998 Package 'php8.1-gmp' is not installed, so not removed
#8 4.998 Package 'php8.1-gnupg' is not installed, so not removed
#8 4.998 Package 'php8.1-grpc' is not installed, so not removed
#8 4.998 Package 'php8.1-http' is not installed, so not removed
#8 4.998 Package 'php8.1-igbinary' is not installed, so not removed
#8 4.998 Package 'php8.1-imagick' is not installed, so not removed
#8 4.998 Package 'php8.1-imap' is not installed, so not removed
#8 4.998 Package 'php8.1-inotify' is not installed, so not removed
#8 4.998 Package 'php8.1-interbase' is not installed, so not removed
#8 4.998 Package 'php8.1-intl' is not installed, so not removed
#8 4.998 Package 'php8.1-ldap' is not installed, so not removed
#8 4.998 Package 'php8.1-lz4' is not installed, so not removed
#8 4.998 Package 'php8.1-mailparse' is not installed, so not removed
#8 4.998 Package 'php8.1-maxminddb' is not installed, so not removed
#8 4.998 Package 'php8.1-mbstring' is not installed, so not removed
#8 4.998 Package 'php8.1-mcrypt' is not installed, so not removed
#8 4.998 Package 'php8.1-memcache' is not installed, so not removed
#8 4.998 Package 'php8.1-memcached' is not installed, so not removed
#8 4.998 Package 'php8.1-mongodb' is not installed, so not removed
#8 4.998 Package 'php8.1-msgpack' is not installed, so not removed
#8 4.998 Package 'php8.1-mysql' is not installed, so not removed
#8 4.998 Package 'php8.1-oauth' is not installed, so not removed
#8 4.998 Package 'php8.1-odbc' is not installed, so not removed
#8 4.998 Package 'php8.1-opcache' is not installed, so not removed
#8 4.998 Package 'php8.1-pcov' is not installed, so not removed
#8 4.998 Package 'php8.1-pgsql' is not installed, so not removed
#8 4.998 Package 'php8.1-phpdbg' is not installed, so not removed
#8 4.998 Package 'php8.1-protobuf' is not installed, so not removed
#8 4.998 Package 'php8.1-ps' is not installed, so not removed
#8 4.998 Package 'php8.1-pspell' is not installed, so not removed
#8 4.998 Package 'php8.1-psr' is not installed, so not removed
#8 4.998 Package 'php8.1-raphf' is not installed, so not removed
#8 4.998 Package 'php8.1-readline' is not installed, so not removed
#8 4.998 Package 'php8.1-redis' is not installed, so not removed
#8 4.998 Package 'php8.1-rrd' is not installed, so not removed
#8 4.998 Package 'php8.1-smbclient' is not installed, so not removed
#8 4.998 Package 'php8.1-snmp' is not installed, so not removed
#8 4.998 Package 'php8.1-soap' is not installed, so not removed
#8 4.998 Package 'php8.1-solr' is not installed, so not removed
#8 4.998 Package 'php8.1-sqlite3' is not installed, so not removed
#8 4.998 Package 'php8.1-ssh2' is not installed, so not removed
#8 4.998 Package 'php8.1-swoole' is not installed, so not removed
#8 4.998 Package 'php8.1-sybase' is not installed, so not removed
#8 4.998 Package 'php8.1-tidy' is not installed, so not removed
#8 4.998 Package 'php8.1-uopz' is not installed, so not removed
#8 4.998 Package 'php8.1-uploadprogress' is not installed, so not removed
#8 4.998 Package 'php8.1-uuid' is not installed, so not removed
#8 4.998 Package 'php8.1-vips' is not installed, so not removed
#8 4.998 Package 'php8.1-xdebug' is not installed, so not removed
#8 4.998 Package 'php8.1-xhprof' is not installed, so not removed
#8 5.189 Package 'php8.1-xml' is not installed, so not removed
#8 5.189 Package 'php8.1-xmlrpc' is not installed, so not removed
#8 5.189 Package 'php8.1-xsl' is not installed, so not removed
#8 5.189 Package 'php8.1-yac' is not installed, so not removed
#8 5.189 Package 'php8.1-yaml' is not installed, so not removed
#8 5.189 Package 'php8.1-zip' is not installed, so not removed
#8 5.189 Package 'php8.1-zmq' is not installed, so not removed
#8 5.189 Package 'php8.1-zstd' is not installed, so not removed
#8 5.189 0 upgraded, 0 newly installed, 0 to remove and 139 not upgraded.
#8 5.192     SUCCESS: Purging existing PHP 8.0 installation
#8 5.195   Cleaning up from the purge of PHP 8.0
#8 5.264 Reading package lists...
#8 6.269 Building dependency tree...
#8 6.457 Reading state information...
#8 6.548 Reading package lists...
#8 7.581 Building dependency tree...
#8 7.772 Reading state information...
#8 7.977 0 upgraded, 0 newly installed, 0 to remove and 139 not upgraded.
#8 7.981     SUCCESS: Cleaning up from the purge of PHP 8.0
#8 8.040 sh: 1: /etc/apache2/envvars: gp: not found
#8 8.053 Module php8.0 disabled.
#8 8.059 Module mpm_prefork disabled.
#8 8.059 To activate the new configuration, you need to run:
#8 8.059   service apache2 restart
#8 8.067   Removing ppa:ondrej/php (as specified in starter.ini)
#8 9.303     SUCCESS: Removing ppa:ondrej/php (as specified in starter.ini)
#8 9.303       The standard OS ppa will be used to install PHP gitpodlatest
#8 9.305   Installing PHP gitpodlatest as specified in starter.ini
#8 9.587 Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
#8 9.587 Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
#8 9.587 Hit:3 http://ppa.launchpad.net/git-core/ppa/ubuntu focal InRelease
#8 9.589 Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
#8 9.594 Hit:5 https://apt.llvm.org/focal llvm-toolchain-focal InRelease
#8 9.599 Hit:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease
#8 9.602 Hit:7 https://download.docker.com/linux/ubuntu focal InRelease
#8 10.03 Get:8 https://pkgs.tailscale.com/stable/ubuntu focal InRelease
#8 10.73 Fetched 5,536 B in 1s (4,584 B/s)
#8 10.73 Reading package lists...
#8 11.81 Reading package lists...
#8 12.80 Building dependency tree...
#8 12.99 Reading state information...
#8 13.22 0 upgraded, 0 newly installed, 0 to remove and 127 not upgraded.
#8 13.23     SUCCESS: Installing PHP gitpodlatest as specified in starter.ini
#8 13.23       The following packages were installed:
#8 13.23   Setting PHP config, phar and phpize from 8.0 to gitpodlatest
#8 13.25 update-alternatives: error: alternative /usr/bin/phpgitpodlatest for php not registered; not setting
#8 13.26     ERROR: Setting PHP config, phar and phpize from 8.0 to gitpodlatest
#8 13.26   php.sh was aborted: Optional php installation failed to be configured!
#8 ERROR: process "/bin/sh -c sudo bash -c \". /tmp/php.sh\" && rm /tmp/php.sh" did not complete successfully: exit code: 1
------
 > [4/9] RUN sudo bash -c ". /tmp/php.sh" && rm /tmp/php.sh:
#8 9.602 Hit:7 https://download.docker.com/linux/ubuntu focal InRelease
#8 10.03 Get:8 https://pkgs.tailscale.com/stable/ubuntu focal InRelease
#8 13.22 0 upgraded, 0 newly installed, 0 to remove and 127 not upgraded.
#8 13.23     SUCCESS: Installing PHP gitpodlatest as specified in starter.ini
#8 13.23       The following packages were installed:
#8 13.23   Setting PHP config, phar and phpize from 8.0 to gitpodlatest
#8 13.25 update-alternatives: error: alternative /usr/bin/phpgitpodlatest for php not registered; not setting
#8 13.26     ERROR: Setting PHP config, phar and phpize from 8.0 to gitpodlatest
#8 13.26   php.sh was aborted: Optional php installation failed to be configured!
.gitpod.Dockerfile:38
36 |
37 |     # Configure php as specified in starter.ini
38 | >>> RUN sudo bash -c ". /tmp/php.sh" && rm /tmp/php.sh
39 |
40 |     # Install core packages for gitpod-laravel-starter
error: failed to solve: process "/bin/sh -c sudo bash -c ". /tmp/php.sh" && rm /tmp/php.sh" did not complete successfully: exit code: 1
{"@type":"type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent","command":"build","error":"exit status 1","level":"error","message":"build failed","serviceContext":{"service":"bob","version":""},"severity":"ERROR","time":"2022-01-22T21:35:16Z"}
exit
exit
Error: headless task failed: exit status 1

I also saw that in the install_xdebug the PHP version is determined dynamically, but then this line is found there to build xdebug.
https://github.com/apolopena/gitpod-laravel-starter/blob/1294ebe5666ba1a26808b5cceebb6af6af9bc32a/.gp/bash/install-xdebug.sh#L40

Error by PHP8 is this here:
/tmp/php.sh: line 123: generate_php_fpm_conf: command not found

in regard to cached values in starter.ini

Is this desired to be able to change only the PHP version via this way?
Any code/values that are used in the docker build image step has to be invalidated when they change or it gets cached so I dont think there is any other way to handle this. All values that dont require a docker cache buster (invalidate_cache) when they are changed should be documented as such in starter.ini.  See the comment header in starter.ini

As for the hardcoded values for xdebug and gitpodlatest fallbaback I will look into those today or tomorrow.


Cannot upload mapping files for Android and dSYM files for iOS

Hi, i cannot find the mapping file  on the sentry.io website.
Am I missing any configuration?
It will cause the Android stack to be unable to deobfuscation.

Minimum code：https://github.com/JDongKhan/flutter_sentry_demo
sentry:
  upload_debug_symbols: true
  upload_source_maps: true
  upload_sources: false
  project: flutter_test
  org: tc-tc
  auth_token: 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
  #url:  https://sentry.io
  commits: false
  ignore_missing: true
  wait_for_processing: true
  log_level: info

1、run   flutter build apk  --obfuscate --split-debug-info=v2
2、run   flutter build iOS  --obfuscate --split-debug-info=v1
3、run  flutter packages pub run sentry_dart_plugin
[❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚] 0% reading config values..
retrieving config from pubspec.yaml

Downloading Sentry CLI 2.27.0 from https://downloads.sentry-cdn.com/sentry-cli/2.27.0/sentry-cli-Darwin-universal to .dart_tool/pub/bin/sentry_dart_plugin/sentry-cli

Sentry CLI binary checksum verification passed successfully (hash:<PHONE_NUMBER>890285f55d9b55414905e8621dd788ad3ae4c85175b84e8eeb6a04).

Sentry CLI downloaded successfully.
☑ reading config values
☑ validating config values
[❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚] 18% uploading debug symbols..
includeSources is disabled, not uploading sources.

INFO    2024-09-04 14:24:10.818197 +08:00 sentry-cli was invoked with the following command line: "/Users/jd/Documents/GitHub/flutter_sentry_demo/.dart_tool/pub/bin/sentry_dart_plugin/sentry-cli" "--auth-token" "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" "--log-level" "info" "debug-files" "upload" "--org" "tc-tc" "--project" "flutter_test" "/Users/jd/Documents/GitHub/flutter_sentry_demo" "--wait"
  INFO    2024-09-04 14:24:10.818577 +08:00 Issuing a command for Organization: tc-tc Project: flutter_test

> Found 124 debug information files

> Prepared debug information files for upload

> Uploaded 40 missing debug information files

> File processing complete:

       OK bbc0f20e-8dc1-3b3a-83cd-ce72fca2c9c5 (App; arm64 library)
       OK bbc0f20e-8dc1-3b3a-83cd-ce72fca2c9c5 (App; arm64 library)
       OK bbc0f20e-8dc1-3b3a-83cd-ce72fca2c9c5 (App; arm64 debug companion)
       OK 4c4c441b-5555-3144-a195-4ed41e4451ee (Flutter; arm64 library)
       OK e8e0bb74-cbf3-3775-aef3-74a38ca5115a (Runner; arm64 debug companion)
       OK e8e0bb74-cbf3-3775-aef3-74a38ca5115a (Runner; arm64 executable)
       OK 9f2ba5a2-7adc-33f8-98a1-c05b4c28f981 (Sentry; arm64 library)
       OK 9f2ba5a2-7adc-33f8-98a1-c05b4c28f981 (Sentry; arm64 debug companion)
       OK 7a2295e8-b0ac-30f5-7e72-1d91a821bb84 (app.android-arm.symbols; arm debug companion)
       OK 7a2295e8-48ac-b92a-7e72-1d91cbb2c2df (app.android-arm.symbols; arm debug companion)
       OK e1ac66b8-4a45-1162-f7da-e5b78421aaf2 (app.android-arm64.symbols; arm64 debug companion)
       OK e1ac66b8-e5bd-d53f-f7da-e5b7cf06accf (app.android-arm64.symbols; arm64 debug companion)
       OK 706984ec-df2f-638a-5ad6-8741d8c6b8f0 (app.android-x64.symbols; x86_64 debug companion)
       OK 706984ec-9a4a-eeca-5ad6-8741489ca314 (app.android-x64.symbols; x86_64 debug companion)
       OK 706984ec-9a4a-eeca-5ad6-8741489ca314 (app.so; x86_64 library)
       OK 706984ec-df2f-638a-5ad6-8741d8c6b8f0 (app.so; x86_64 library)
       OK 7a2295e8-48ac-b92a-7e72-1d91cbb2c2df (app.so; arm library)
       OK 7a2295e8-b0ac-30f5-7e72-1d91a821bb84 (app.so; arm library)
       OK e1ac66b8-4a45-1162-f7da-e5b78421aaf2 (app.so; arm64 library)
       OK e1ac66b8-e5bd-d53f-f7da-e5b7cf06accf (app.so; arm64 library)
       OK adced16b-c1fe-3430-992f-2babb728a967 (libswiftAVFoundation.dylib; arm64 library)
       OK ad0cad3b-1b51-3327-8644-8be1ff1f0ae9 (libswiftCore.dylib; arm64 library)
       OK e4b0cd52-10f6-32f3-9855-e87134f2d030 (libswiftCoreAudio.dylib; arm64 library)
       OK 25114ae1-4ae9-3dbc-b3de-7f9f9a5b45d2 (libswiftCoreFoundation.dylib; arm64 library)
       OK dc548ef9-00f9-3a15-b5db-05e39d9b5c5b (libswiftCoreGraphics.dylib; arm64 library)
       OK 62f04b7b-b664-3893-b12d-9a999cc44faf (libswiftCoreImage.dylib; arm64 library)
       OK 2989001b-87a1-36f3-80ce-9a9bc6a5e194 (libswiftCoreMedia.dylib; arm64 library)
       OK 999c2967-8a06-3cd5-82d7-d156e9440a0c (libswiftDarwin.dylib; arm64 library)
       OK 9fcba8ed-d8fd-3c16-9740-5e2a31f3e959 (libswiftDispatch.dylib; arm64 library)
       OK 9702769f-1f06-3001-ab75-5ad38e1f7d66 (libswiftFoundation.dylib; arm64 library)
       OK c466f0fe-15c1-33ee-bd5b-395407bd9982 (libswiftMetal.dylib; arm64 library)
       OK 1180ac10-0a92-39db-8497-2b6d4217b8eb (libswiftObjectiveC.dylib; arm64 library)
       OK c22bc3e2-45df-3516-95f3-31d55e664a89 (libswiftQuartzCore.dylib; arm64 library)
       OK 107c11f3-dd62-3fb4-9c8a-c74bd56c2abc (libswiftUIKit.dylib; arm64 library)
       OK 4a3b0c78-ffb3-358b-9a11-9d40c6999ffd (libswiftos.dylib; arm64 library)
       OK 49721126-807a-3b9d-9c95-06ff9b8e8fe3 (libswiftsimd.dylib; arm64 library)
       OK e3c24cf4-feb2-3e49-89ef-89f78aaa5843 (package_info_plus; arm64 debug companion)
       OK e3c24cf4-feb2-3e49-89ef-89f78aaa5843 (package_info_plus; arm64 library)
       OK efcd2c75-2983-30dc-bf8e-56fd30055178 (sentry_flutter; arm64 debug companion)
       OK efcd2c75-2983-30dc-bf8e-56fd30055178 (sentry_flutter; arm64 library)
☑ uploading debug symbols

INFO    2024-09-04 14:24:50.668928 +08:00 sentry-cli was invoked with the following command line: "/Users/jd/Documents/GitHub/flutter_sentry_demo/.dart_tool/pub/bin/sentry_dart_plugin/sentry-cli" "--auth-token" "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" "--log-level" "info" "releases" "--org" "tc-tc" "--project" "flutter_test" "new"<EMAIL_ADDRESS>
Created release<EMAIL_ADDRESS>[❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚❚] 27% uploading source maps..
INFO    2024-09-04 14:24:54.556057 +08:00 sentry-cli was invoked with the following command line: "/Users/jd/Documents/GitHub/flutter_sentry_demo/.dart_tool/pub/bin/sentry_dart_plugin/sentry-cli" "--auth-token" "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" "--log-level" "info" "releases" "--org" "tc-tc" "--project" "flutter_test" "files"<EMAIL_ADDRESS>"upload-sourcemaps" "/Users/jd/Documents/GitHub/flutter_sentry_demo/build/web" "--ext" "map" "--ext" "js" "--dist" "1" "--wait"

> Rewriting sources
> Adding source map references

> Nothing to upload

INFO    2024-09-04 14:24:57.871864 +08:00 sentry-cli was invoked with the following command line: "/Users/jd/Documents/GitHub/flutter_sentry_demo/.dart_tool/pub/bin/sentry_dart_plugin/sentry-cli" "--auth-token" "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" "--log-level" "info" "releases" "--org" "tc-tc" "--project" "flutter_test" "files"<EMAIL_ADDRESS>"upload-sourcemaps" "/Users/jd/Documents/GitHub/flutter_sentry_demo" "--ext" "dart" "--dist" "1" "--wait"

> Found 2 files
> Analyzing 2 sources

> Rewriting sources
> Adding source map references

> Bundled 2 files for upload
> Bundle ID: 69f08063-5e0e-5da7-ae1b-01b6f6702863

> Uploaded files to Sentry

> File processing complete
> Organization: tc-tc
> Project: flutter_test
> Release<EMAIL_ADDRESS>> Dist: 1
> Upload type: artifact bundle

Source Map Upload Report
  Scripts
    ~/lib/main.dart
    ~/test/widget_test.dart
☑ uploading source maps

Commit integration is disabled.

INFO    2024-09-04 14:25:02.465174 +08:00 sentry-cli was invoked with the following command line: "/Users/jd/Documents/GitHub/flutter_sentry_demo/.dart_tool/pub/bin/sentry_dart_plugin/sentry-cli" "--auth-token" "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" "--log-level" "info" "releases" "--org" "tc-tc" "--project" "flutter_test" "finalize"<EMAIL_ADDRESS>
Finalized release<EMAIL_ADDRESS>

hi, which version of the plugin are you using?

@buenaflor
sentry_dart_plugin: 2.1.0
Minimum code：https://github.com/JDongKhan/flutter_sentry_demo

do you also use proguard? your example looks like a native stacktrace to me


feat(toast): add toaster component

API:
  create: function create(props?: ToasterPropsT): React.Node {},
  show: (props: string | ToastPropsAltT): ?React.Key => {},
  update: (key: React.Key, props: string | ToastPropsAltT): void => {},
  clear: (key?: React.Key): void => {},

Toaster rendered using portals so it's only rendered on a client side. Therefore any toast can only be added after a component mounted.
Examples

Can we have some aliases, such as toaster.success, toaster.error and toaster.info?
The intended usage could be:
toaster.success('You saved successfully', {
  autoHideDuration: 10000 // if you want to overwrite the defaults
})

Can we have some aliases, such as toaster.success, toaster.error and toaster.info?
The intended usage could be:
toaster.success('You saved successfully', {
  autoHideDuration: 10000 // if you want to overwrite the defaults
})

I was thinking of adding it, but it would be only useful if they don't provide any props overrides, otherwise the kind can be a part of props passed in.
The other approach I looked into was toaster.show(children, props) not sure tho if it provides more benefits over toaster.show({children, otherProps})

Can we have some aliases, such as toaster.success, toaster.error and toaster.info?
The intended usage could be:
toaster.success('You saved successfully', {
  autoHideDuration: 10000 // if you want to overwrite the defaults
})

I was thinking of adding it, but it would be only useful if they don't provide any props overrides, otherwise the kind can be a part of props passed in.
The other approach I looked into was toaster.show(children, props) not sure tho if it provides more benefits over toaster.show({children, otherProps})

Toasts is something that could do well with syntax sugar. I imagine most devs actually just wanna do:
if (this...) {
  toaster.error(errMessage1)
} else if (that....) {
  toaster.info(errMessage2)
} else {
  toaster.success('You did it!')
}

Specifying the children prop is verbose.

Very cool.
My biggest question initially was how this will work server side – but seems you've already answered that since we're using portals. I think that's a fine limitation, if somebody really needs server-side they can probably just use the Toast component by itself. We should probably update our documentation to clarify this limitation.

Can we have some aliases, such as toaster.success, toaster.error and toaster.info?
The intended usage could be:
toaster.success('You saved successfully', {
  autoHideDuration: 10000 // if you want to overwrite the defaults
})

I was thinking of adding it, but it would be only useful if they don't provide any props overrides, otherwise the kind can be a part of props passed in.
The other approach I looked into was toaster.show(children, props) not sure tho if it provides more benefits over toaster.show({children, otherProps})

Toasts is something that could do well with syntax sugar. I imagine most devs actually just wanna do:
if (this...) {
  toaster.error(errMessage1)
} else if (that....) {
  toaster.info(errMessage2)
} else {
  toaster.success('You did it!')
}

Specifying the children prop is verbose.

Added all the sugar to the toaster 🍨

Very cool.
My biggest question initially was how this will work server side – but seems you've already answered that since we're using portals. I think that's a fine limitation, if somebody really needs server-side they can probably just use the Toast component by itself. We should probably update our documentation to clarify this limitation.

Yep, it doesn't really work server side, even with no portals. I documented it in the RFC. Happy to discuss other options we may consider on how to handle it.


Claims history

Created, updated or deleted Claims should be shown on the history page
Private Zenhub Image
Icon is https://fontawesome.com/icons/dollar-sign?f=classic&s=solid colour 1A5A96

Hey team! Please add your planning poker estimate with Zenhub @AntBush @rafasdc

Is it possible to show more detail about the deleted claims file?  In the screenshot below you can see that I created a new claim and it is good at telling me details such as the file name etc, but in the blue underlined line, the history only says I deleted a claim, but doesn't provide the same level of details.
Private Zenhub Image

Of course it's possible, though we aren't showing anything for any other history items on the project page. I would consider making a ticket to update these if that is important.


Readme not up to date with passing additional options such as HA

The readme references the old way of passing the options to the Flink template. A recent commit has broken that.
Example of what to use:
  flink:   jobmanager_heap_mb: 1024   taskmanager_heap_mb: 8192   num_taskmanagers: 2   num_slots_per_taskmanager: 4   config: |     taskmanager.memory.preallocate: false     parallelism.default: 4     high-availability: zookeeper     high-availability.zookeeper.quorum: ....     high-availability.zookeeper.path.root: /flink     high-availability.zookeeper.path.cluster-id: /default_ns     high-availability.storageDir: s3://...     high-availability.zookeeper.storageDir: s3://....     high-availability.jobmanager.port: 6123     high-availability.zookeeper.client.acl: open
Passing the additional options this way works for me.
Im happy to propose a PR if this project is active?

PR: https://github.com/docker-flink/examples/pull/7

Fixed #7
@iemejia afaik this is just about fixing how the example chart handle params, not anything to do with Flink proper. Since this is definitely still "alpha" and unpublished in any official way, I'm totally fine with breaking changes to the chart and examples.


Update Wormhole WETH and SOL metadata

Description

Checklist

Adding Chains

If adding a new chain, please ensure the following:

[ ] Chain is registered to the Cosmos Chain Registry.
Note:

Chain's registration must have staking defined, with at least one staking_token denom specified.
Chain's registration must have fees defined; at least one fee token has low, average, and high gas prices defined.

[ ] Add chain to bottom of zone_chains.json
Note:

RPC and REST must not have any CORS blocking of the Osmosis domain.
RCP node must have WSS enabled.

Adding Assets

If adding a new asset, please ensure the following:

[ ] Asset is registered to the Cosmos Chain Registry.

[ ] Add asset to bottom of zone_assets.json.
Note:

The IBC channel referenced in path must be registered to the Chain Registry.
osmosis_main defaults to false (or else cite the listing rule that justifies enlisting to the Main app)

On-chain liquidity
If adding a new asset, please provide the plan for on-chain liquidity of the asset: (choose one)

[ ] The submitting team will ensure a pool will be created soon. Please hold off until further communication, which will notify of the Pool ID. (Please set the PR's status to Draft until the pool has been created)

OR

[ ] A preview link is requested for the submitting team to be able to create a pool using the Osmosis Frontend.

OR

[ ] The token is, or will be, going through a StreamSwap stream; thus, the token should be listed without requiring on-chain liquidity. A Pool ID will be provided in this PR following the stream's completion once the team has had a chance to create a pool using the earned funds.

Validation Testing
If adding or updating a chain or asset, the changes must be validated from the updated build of the Osmosis Frontend. Testers will need a small amount of tokens to validate.

[ ] Validaters can buy a small amount of this asset from Pool ID: {PROVIDE POOL ID}.
[ ] Preview build has been validated.

Fixed the generation script and will replace this PR with this
https://github.com/osmosis-labs/assetlists/pull/694
Thanks!


Large MP3 files (6-10MB+, 1-2 hours in length) have error decoding audiobuffer

I've been having some users report "randomly" their browser tabs are crashing when they are on pages using Wavesurfer. I have a pretty beefy machine so I have never seen this in normal usage, but I found a 10MB MP3 file to test and I can reproduce it every time with that file.
There is only one instance of Wavesurfer (minified 1.0.26) on the page, and it is not doing anything clever. No other plugins are loaded, I'm just loading an mp3 URL and playing it.
When Wavesurfer starts to process the downloaded 10MB MP3 file:
The tab in Chrome crashes and so far I haven't been able to get any debug information from it. Even a try/catch around wavesurfer.load() won't catch the error, it just hard crashes the Chrome tab.
Firefox does not crash but Wavesurfer's "error" callback runs with the message "Error decoding audiobuffer" and Firefox's console displays "An unknown error occured while processing decodeAudioData." and then shortly after that "EncodingError: The given encoding is not supported." I suspect the EncodingError console error is just a part of Wavesurfer trying to process the data that had not successfully been decoded previously.
Let me know if any additional information or debugging steps would help. I can provide metadata about the mp3 files but I cannot provide the actual mp3s themselves.

Yes, I've seen Chrome crashing during the [decodeAudioBuffer[(https://github.com/katspaugh/wavesurfer.js/blob/master/src/webaudio.js#L172-L174) call. It's a bug in Chrome's Web Audio implementation.
For your particular application, I suggest you replace the problematic file with a file that can be decoded successfully.

Well, it's not a problematic file. It's any of the mp3s I'm using that are "too large" where "too large" seems to change depending on the computer processing the file. On my machine it takes an mp3 that is several hours long, but on some of my users' less-powerful machines it is failing at mp3s as little as 15 minutes long. I'm sorry if that was not explained well.
Some more troubleshooting:

So far only the very big file (10MB) actually causes the tab crash in Chrome. I've tried some files that are slightly less large (about 6MB) and there is no crash, but Wavesurfer's error callback runs with the message "Error decoding audiobuffer"
The mp3s I'm using are only 8kbps bitrate. (Let me know if this could be causing some issues itself)

I don't know that we can just say this is a bug in Chrome's Web Audio implementation because the underlying "Error decoding audiobuffer" error happens in both Chrome and Firefox. I urge you to reconsider this bug report.
Just starting to dig into the code and the AudioBuffer spec to see if I can be of any help. Is it possible  to split up the decodeAudioData() processing into several passes with each pass limited in memory usage?

The mp3s I'm using are only 8kbps bitrate. (Let me know if this could be causing some issues itself)

I remember a similar issue with a low bitrate files: https://github.com/katspaugh/wavesurfer.js/issues/353

I'm still seeing an issue with error decoding audiobuffer when trying to load very small audio clips into wavesurfer


Problem with using imported styled components

I have a global file with styled components that I use accross my whole website. When I import these global components to use them directly in React, there is no problem, but if I want to create a new styled components out of them, I get this error:
Uncaught TypeError: Cannot read property 'displayName' of undefined
    at createStyledComponent (eval at <anonymous> (http://localhost:3000/static/js/bundle.js:7296:2), <anonymous>:148:82)
    at eval (eval at <anonymous> (http://localhost:3000/static/js/bundle.js:7350:2), <anonymous>:20:14)
    at eval (eval at <anonymous> (http://localhost:3000/static/js/bundle.js:7575:2), <anonymous>:32:62)
    at Object.<anonymous> (http://localhost:3000/static/js/bundle.js:7575:2)
    at __webpack_require__ (http://localhost:3000/static/js/bundle.js:554:30)
    at fn (http://localhost:3000/static/js/bundle.js:85:20)
    at eval (eval at <anonymous> (http://localhost:3000/static/js/bundle.js:7557:2), <anonymous>:16:20)
    at Object.<anonymous> (http://localhost:3000/static/js/bundle.js:7557:2)
    at __webpack_require__ (http://localhost:3000/static/js/bundle.js:554:30)
    at fn (http://localhost:3000/static/js/bundle.js:85:20)

Here is an extract of the code generating this error:
import React from 'react';
import styled from 'styled-components';
import {Div} from '../../global/layout';

const RoundedBar = styled(Div)`
  transition: all 500ms;
  border-radius: 15px;
  height: 15px;
  width: ${props => props.width || "100%"}
`;

If I put this RoundedBar SC inside the global file, there is no error.
If I use styled.div instead, there is also no error.

That's very weird, and sounds like an issue with your exports from global/layout.
Can you console.log(Div) above the const RoundedBar please? And also post the code from global/layout.js? Thank you!

Here's the beginning of the global/layout.js file:
import styled from 'styled-components';
import {media, colors} from '../../core/constants';
import {backgroundImage, vhAlign, fullSize, width, mx} from './mixins';

export const Div = styled.div`
    margin: 0;
    padding: ${props => props.padding ? props.padding : '0px'};
    min-height: ${props => props.minHeight ? props.minHeight : 0};
    background-color: ${props => props.bgColor ? colors[props.bgColor] : "none"};
    ${backgroundImage}
    ${vhAlign}
    ${fullSize}
`;

And the partial result of the console.log(Div) (the Dev Tools only show this)
StyledComponent() {
        _classCallCheck(this, StyledComponent);

        var _this2 = _possibleConstructorReturn(this, (StyledComponent.__proto__ || Object.getPrototypeOf(StyledComponent)…

Can you try and replicate this on webpackbin with your code?

@mxstbr Well, I don't get this error with webpackbin...
http://www.webpackbin.com/4JXeSxuZz
Must have something to do with my webpack setup, but I use a little-modified create-react-app config (after ejection).

I solved the problem by removing an export at the bottom of the global/layout.js file.
export {default as ImagesList} from './ImagesList';

This ImagesList is a pretty complex component, which is itself using several styled components from global file. I thought at first that it was due to some sort of "loop problem" (exporting a component which was itself using some of the exported components), but the error didn't appear when exporting another, more simple, component.
Anyway, my problem is fixed but just in case you want to have a quick glance, here is the ImageList component which generated the error.
import React, {Component, PropTypes} from 'react';
import ReactDOM from 'react-dom';
import _ from 'lodash';
import {Row, Cell, Div} from '../../global/layout';
import {Button} from '../../global/form';
import {Icon, Loading} from '../../global/utils';

class ListItem extends Component {

    static propTypes = {
        title: PropTypes.string.isRequired,
        image: PropTypes.string,
        onAdd: PropTypes.func.isRequired,
        onRemove: PropTypes.func.isRequired
    };

    renderSelected() {
        if (this.props.selected) {
            return (
                <Icon name="Check" color="green" size="32" onClick={this.props.onRemove}/>
            );
        }
    }

    render() {
        let {PreviewComponent} = this.props;
        const mdCol = 12 / this.props.maxNumColumns;

        return (
            <Cell md={mdCol / 12} sm={4 / 12} xs={6 / 12}>

                        <PreviewComponent {...this.props}>
                            {this.renderSelected() /* pass the checkbox as a children, since this is the easiest (only?) way to pass components with arguments*/}
                        </PreviewComponent>

            </Cell>
        );
    }
}

export default class ImagesList extends Component {

    static propTypes = {
        fullList: PropTypes.array,
        onChange: PropTypes.func,
        maxNumColumns: PropTypes.number,
        loadMore: PropTypes.func,
        autoLoadMore: PropTypes.bool  // infinite scrolling activated? (only if loadMore is defined)
    };

    static defaultProps = {
        maxNumColumns: 4,
        autoLoadMore: false
    };

    constructor(props) {
        super(props);
        this.state = {
            isLoadingMore: false
        };
    }

    componentDidMount() {
        if (this.props.autoLoadMore && this.props.loadMore) {
            let debouncedHandleScroll = _.debounce(this.handleScroll.bind(this), 1000, {leading: true, trailing: true});
            window.addEventListener('scroll', debouncedHandleScroll);
        }
    }

    componentWillUnmount() {
        // TODO: remove specific listener?
        window.removeEventListener('scroll');
    }

    componentWillReceiveProps(nextProps) {
        if (typeof this.props.fullList !== 'undefined') {
            // has the list been updated ?
            if (this.props.fullList.length !== nextProps.fullList.length) {
                this.setState({isLoadingMore: false});
            }
        }
    }

    handleScroll() {
        const node = ReactDOM.findDOMNode(this);
        const rect = node.getBoundingClientRect();

        // calculate how many pixels above the screen bottom the list is
        const listBottom = rect.bottom - window.innerHeight;

        if (listBottom < 100) {
            this.props.loadMore();
            this.setState({isLoadingMore: true});
        }
    }

    // add item to list
    handleAdd(id) {
        if (!this.props.value.includes(id)) {
            let newValue = [...this.props.value, id];
            this.props.onChange(newValue); // update the state value (redux-form utils)
        }
    }

    // remove item to list
    handleRemove(id) {
        if (this.props.value.includes(id)) {
            let newValue = this.props.value.filter(valueID => valueID !== id);
            this.props.onChange(newValue); // update the state value (redux-form utils)
        }
    }

    renderLoadMore() {
        if (this.props.loadMore) {
            if (!this.state.isLoadingMore) {
                return (
                    <Cell xs={1}>

                            <Button onClick={this.props.loadMore}>Plus</Button>

                    </Cell>
                );
            } else {
                return (
                    <Cell xs={1}>

                            <Loading/>

                    </Cell>
                );
            }
        }
    }

    render() {

        if (typeof this.props.fullList === 'undefined' || this.props.fullList.length === 0) {
            return (

Aucun résultat

            );
        }

        return (
            <Row spaced>
                {this.props.fullList.map(
                    (item) => <ListItem key={item.id}
                                        {...item}
                                        PreviewComponent={this.props.PreviewComponent}
                                        maxNumColumns={this.props.maxNumColumns}
                                        selected={this.props.value.includes(item.id)}
                                        onAdd={this.handleAdd.bind(this, item.id)}
                                        onRemove={this.handleRemove.bind(this, item.id)}
                    />
                )}
                {this.renderLoadMore()}
            </Row>
        );
    }
}

Hello, I've just started getting this when using styled-components with React and TSX.  Essentially I want to pass some props in and be able to interrogate them in my styled components.  The error message is right at the bottom of this post.
I've created a WebPackBin instance, but I can't quite get it to work with TSX.  The documentation online for this is a bit thin, essentially I'm passing my React component in to a styled() call, trying to get the props defined in the component d.ts file.
Any help or pointing out my glaring errors would be much appreciated!
For reference I'm using these versions:

TypeScript v2.1.4
React v15.4.1
Styled-Components v1.4.2

Uncaught TypeError: Cannot read property 'displayName' of undefined     at createStyledComponent (styled-components.es.js:6299)     at styled-components.es.js:6323     at Object./Tile/Styles.js (styles.js:3)

Any help or pointing out my glaring errors would be much appreciated!

I keep on getting this error pretty often and it is always due to some sort of cyclic import (ie. A imports B which imports C, which is itself importing A). Cyclic import is generally a sign of bad code architecture, I know. Nonetheless, it seems styled-components doesn't like them at all.

@srosset81 That's an interesting point, and it's complicated further by TypeScript and definitions.  It's probably something like that, I just need some pointers as I'm pretty new to this library, and it's a seldom touched upon area in documentation.

@srosset81 any chance we can reopen this, until we get a response as to whether I'm being a dunce or not? :)

There isn't anything styled-components can do about this.  TileStyle needs Tile, because that's the component that's rendering, and Tile needs TileStyle, because it uses it in render.  So basically, TileStyle can't exist until Tile does, and Tile can't exist until TileStyle.  Catch-22 😉.
I think what you want to do is just make TileStyle a styled.div.

That makes sense, I guess I'm just not sure how you're supposed to architect it such that you can pass props in to the style, given that webpackbin?

What's the issue when you just turn StyleStyle into a div?  It looks like you're passing props into it, is that not working?

TypeScript moans that the JSX element doesn't support those props, but I can't pass the props interface the component is using either as that fails. Short of having the styled-component in the same .tsx file I'm not sure how you get the props in?

Has anyone found a solution to this?

Since this seems to be a TypeScript problem and not related to the OP would you mind opening a new issue if you're still running into this? I'll close this issue meanwhile as it's pretty old and very out of date.

For anyone else getting this using TypeScript, I can confirm the same issue was cyclic references as @srosset81 and @jimmyheaddon found.
Abstracting the style components into a new file resolved the problem.


Fixed an obscure bug with skystone events

Fixes the-orange-alliance/the-orange-alliance#91 by running a check for null values before serialization.
This seems to be caused by some bug further up the chain that makes the first element in getTeamRankings() (/api/team/${teamKey}/results/${seasonKey}) be a null value when the seasonKey is '1920'

Fixed on the API, thanks @khari05.


Missing support for Angular 9

Describe the bug
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

To Reproduce
Install angular-split into an Angular 9 working-copy and run npm install

bump

Yes, will do it this week!

I've just published version 3.0.3.

Thanks for quick turnaround!

I've just published version 3.0.3.

angular 9 is supported now?

@bertrandg Thank you very much for the quick update.
However, it's advisable to also approve pull request https://github.com/bertrandg/angular-split/pull/204 for Ivy compatibility.

I installed the latest version of Angular 9 (9.0.1) and installed the latest version of angular-split (v. 3.0.3).
I created a simple split vertical but it doesn't work. How should I behave?
Use Chrome 80.0.3987.122

Has anyone been able to make it work with Angular 9?

bump

If you add:  schemas: [CUSTOM_ELEMENTS_SCHEMA] to you app module inside the @NgModule decorator it should fix the issue for your build @kottartillsalu

Working for me with Angular 9. I had to change the import to use the .forRoot() unlike what is shown in the examples. Also had to do a fresh ng build so that the cli would compile the module es2015 as esm2015.

Facing a issue with Angular 9,
error NG8001: 'as-split-area' is not a known element:
1. If 'as-split-area' is an Angular component, then verify that it is part of this module.
2. If 'as-split-area' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
AnyOne able to fix it?

@siva5176 have you tried adding schemas: [CUSTOM_ELEMENTS_SCHEMA] to your app module inside the @NgModule decorator?

@siva5176 have you tried adding schemas: [CUSTOM_ELEMENTS_SCHEMA] to your app module inside the @NgModule decorator?

Thanks for your response, I tried but still no use, same error

Because the maintainer of angular-split clearly lost interest in maintaining it, and does seem to be interested in adding collaborators, I decided to fork this awesome library.
The fork is called ngx-split. Check the homepage, npm package and repo .
Feel free to submit PR's and I'll consider merging them! 🙏

@arobinson Thanks to @bertrandg I've been given permissions to maintain this library. I just released a new beta, can you verify if this works with Angular 9?

Support for Angular 9 is now verified using this repo.
If you find any issues with v9, please open a new issue with a reproduction. 🙏


Documentation: status in response cannot be a tuple

Hello,
I started using this library today and followed the documentation describing how to set the status code when responding to a request. The triple-quoted docstring for HTTPResponse.__init__ describes status as:

    :param tuple status: The HTTP status code to return, as a tuple of (int, "message").
     Common statuses are available in `HTTPStatus`.

while the type hint for the constructor argument defines it as status: tuple = HTTPStatus.OK. The name tuple is recognized by the documentation generator, which creates a link to the Python.org documentation for the tuple type.
Passing a tuple does not actually work here, and causes the response to be badly formatted. The value given to status is saved in self.status, then passed to self._send_response, which in turn calls self._send_bytes with the value produced by self._HEADERS_FORMAT.format: https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/blob/67c3ac3b76dd419a90558460b727a07b2169351f/adafruit_httpserver.py#L232-L236
This format method is str.format, since self._HEADERS_FORMAT is just a string: https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/blob/67c3ac3b76dd419a90558460b727a07b2169351f/adafruit_httpserver.py#L179-L185
Passing a tuple as documented – e.g. (200, 'OK') causes it to be rendered at the position of the first {} in the format string, making the response look like this:
HTTP/1.1 (200, 'OK')
Content-Type: text/plain
Content-Length: 5
Connection: close

hello

This is not a valid HTTP response, so when curl receives it it fails with
* Unsupported HTTP version in response
* Closing connection 0

The docs do suggest to use the common values pre-defined as static fields in HTTPStatus, which aren't tuples but HTTPStatus instances. They are only provided for status code 200, 404, and 500, so it's likely that users would want to provide other values and try to use tuples like (403, 'Forbidden') for example.
HTTPStatus instances are rendered correctly in the format string because the class specifically defines its string representation with a __str__ method: https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/blob/67c3ac3b76dd419a90558460b727a07b2169351f/adafruit_httpserver.py#L49-L50
I'm not sure whether this should be best handled as purely a documentation change – no longer suggesting tuple – or as a code change, actually supporting tuple and rendering it correctly, maybe even raising an exception if a tuple is provided that is not made of an int and a string. I'm far from an authority on the matter, but it seems more Pythonic to me to actually support tuples rather than require an HTTPStatus object or a protocol-formatted string to directly inject into the response.
Thanks for this library!

Hi, I seems like my PR #25 fixes that problem, as it changes tuple to HTTPStatus instance everywhere except HTTPResponse.__init__. I also agree, that passing tuple is more Pythonic, so I made it possible to pass is to the constructor as it will be converted to HTTPStatus instance.
Please try the latest version of refactor-and-additional-features branch and let me know whether it fulfills this Issue.

Hi @michalpokusa, thanks for the update!
Your change with the type declaration and conversion looks promising.
self.status = status if isinstance(status, HTTPStatus) else HTTPStatus(*status)

This is a pretty large PR, and although I see that someone from Adafruit has taken notice I just hope that they'll be ok with a change of this size and will have someone review it. Did you sync up with them on Discord, maybe? I've seen this work well in the past for non-trivial contributions. If you haven't I'd suggest discussing it there to get more direct feedback from Adafruit employees who work on the CircuitPython repos.
I'll follow your PR, in the meantime I think it still makes sense to keep this issue open for anyone who would run into this problem with the current release, and to close it once the fix is in.

Thanks for the advice regarding Discord, will definitely contact them.
I agree that keeping the Issue open for now is a good idea, if they decide to merge the PR then it will close automatically.

I, as the original author of this, as I mentioned in #17, am quite interested in a revamp. I don't care about keeping it upward compatible. The current version number 0.x.0 reflects that. Feel free to rationalize and improve the API and make it better for the future.


[BEAM-9340] Populate requirements for Python DoFn properties.

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

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

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

Thanks for the quick review.
Responded about (a) on the list for more visibility. I think (c) is the way to go, runners can become more sophisticated about conditions in which they can satisfy requirements and SDKs can become more sophisticated about conditions in which they require them based on the pipeline context.
(BTW, I did think about (b) but wanted to try to keep the requirements as local as possible, and make it possible to declare requirements that are not explicit in the pipeline proto itself.)

Rebased to deal with merge conflicts. Merging now.


common.xsd:27-28: Check to see if we can also obtain the...

The puzzle 14-6ae5da92 from #14 has to be resolved:
https://github.com/llorllale/gitlog-maven-plugin/blob/aa40ba88bb3f83431da8d60a6527de230726c1b7/src/main/resources/xsd/common.xsd#L27-L28
The puzzle was created by George Aristy on 01-Feb-18.
Estimate: 15 minutes, role: IMP.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

The puzzle 14-6ae5da92 has disappeared from the source code, that's why I closed this issue.


How to put astronomy object into server method?

Hey!
When I tried to insert validation logic from astronomy-validators package, I found a strange error.
Look at this sample:
In client:
 var post = new Post();
            post.set({
                title: event.target.add_post_title.value,
                content: event.target.add_post_content.value,
                video: videoId.get()
            });

 Meteor.call("add_post", post, function (err, post) {
                if (err) {
                    post.catchValidationException(err);
                }

                console.log(post);
            });

In server method:

Meteor.methods({
    'add_post': function (post) {
        if (post.validate()) {
            post.save();
            return post;
        } else {
              post.throwValidationException();
        }

    }
});

In this case i will take this error from Meteor:

Received error from server:  Parse error

It is look like meteor can't parse Astronomy object...
How can i put it into meteor methods?

Please create reproduction repository which I can clone and run. I don't have time to create one by myself.

Hey, Jagi!
Already done: https://github.com/Tbutnyakov/forjagi
Ty for help!

The problem is with the Meteor.userId() default value. This method can't be called during EJSON-ification so you should put it in the try-catch block for now. Here is an issue: https://github.com/meteor/meteor/issues/5356
It's a bug/issue in EJSON. In Astronomy 2.0 it won't be sending document over wire. It will send pure data instead, so the problem will not occur.

Wow...this is a very...interesting:)
Ok, TY for fast answer and awesome package.
So, when you will publish astronomy 2.0?
I would like to talk about it in a series of broadcasts on my youtube channel.

Until the end of the Q1 it should be ready. I don't want to hurry, especially when I've heard about so many changes that are going to happen in future Meteor versions.
That would be great. I wanted to create video tutorials about Astronomy when it's ready. But I would be glad if you could promote it in the form of videos on your YT channel :)

Sounds great!
But i will make screencasts for russian auditory only, because I have very poor english
Good luck.


CI: fix tests

What does this PR do?
incorrectly failing stats results

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes?
[x] Did you write any new necessary tests? [not needed for typos/docs]
[x] Did you verify new and existing tests pass locally with your changes?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

PR review

[ ] Is this pull request ready for review? (if not, please submit in draft mode)

Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

seems to be connected with installing pre-release coverage==5.6b1


KAFKA-4758: Checking the TimestampType is insufficient

My understanding is that the record format allots 1 bit for the timestamp type field. As a result it can be either 1 or 0 and never -1. This means Connect's timestamp type validation is insufficient. Instead the records timestamp value itself should be checked.
Technically the timestamp value should never be another negative value but while we are being defensive we may as well go all the way.
Doing so inside Connect takes the burden off Connector developers which I think is a good thing.

cc @ewencp
@rnpridgeon Thanks for the patch! Would you mind creating a JIRA? If anyone encounters this problem, it's nice to point to them to a ticket. That also makes it appear in the release notes.

@rnpridgeon I created KAFKA-4758 for this issue. Would you mind changing the title to include "KAFKA-4758: "? Thanks!

@hachikuji , done. Sorry about that, I'll make sure to open a Jira prior to making a Pull Request next time

Merged to trunk with a couple minor tweaks. I changed the exception to InvalidRecordException and fixed a typo in the exception message.


QUERY - DVB SUBTITLES SUPPORT

Hi @lelegard ,
I want to Multiplex DVB Subtitles to an existing transport stream file, containing audio and video using TSDUCK. The subtitles are in PES form with .DVB extension. The Subtitle file has been uploaded here https://drive.google.com/open?id=1zjASmL2U2VakpFK_0vBnO7LjzTTQocHK . Can you please guide me how i can achieve the same using tsduck.
Regards,
Jackson

As reported many times in response to various issues here, TSDuck is not a MUX. It does not have the precision to accurately multiplex services or components of a service. Developing a MUX inside the TSDuck toolset is a nice idea and I would love to have enough time to do it. However, developing an accurate MUX takes time and I have no such time. So, this will not happen anytime soon. Unfortunately.

Hi @lelegard (and others),

As reported many times in response to various issues here, TSDuck is not a MUX.

Any suggestion about a software (or low cost hardware) that can be used for muxing, even offline?
There is currently no open source solution. But maybe a closed source or demo software could be used.
Ideas?

Avalpa OpenCaster (Open Source)
or
Dektec MuxXpert (commercial)

Hi @premultiply ,

Avalpa OpenCaster (Open Source)
or
Dektec MuxXpert (commercial)

Thank you for your suggestion!
I know about both. But MuxXpert is very expensive (I never used it), and OpenCaster is old and a dead project (futhermore the muxing functionality is worse than with TSDuck).
So, I found another solution pointed by other user of the TSduck: Scienta MPTS Muxer (demo).
It work in realtime for 1 hour.
Regards.


EditorConfig

Any thoughts regarding adding a .editorconfig file to help with the spacing inside javascript, css, and html files?
Golang handles the .go files well with it's formatting tool

That sounds good to me.  @gingervitis do you already have a code style you'd like us to use, or do you have an editor config you've been using locally?

Wouldn't something like prettier work in this case or do you wanna limit the number of packages to be installed?

Ooh yeah I've been wondering about code style as well and considered adding some sort of linter. But I've haven't really made any moves to do anything about it yet, not even locally! I'd be option to using whatever editor config people want to add. Preferably package free.

Ok I just pushed up a starter .editorconfig file to master.  I'm generally indifferent to most of the properties, so if anyone has any strong opinions about them, feel free to edit the file!
Though I'm not sure if this file is working? I can't tell what it's doing in my VScode. I installed the plugin, but I still see no changes. @graywolf336 since you mentioned it, do you happen to use VScode and know how to get it to work?

@gingervitis yes, you will have to install the extension for it to respect the config file: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
Although, having a linter in addition to this might help some, just not sure when the best time to lint it would be.

Best time to lint IMHO is just before commiting/pushing. That way you make sure the repo has the style you need.

.editorconfig was added by ginger, but feel free to make any changes to it or explore the formatting conversation!


Allow ".yml" config extension

Describe the bug
Verdaccio silently ignores a config named "/verdaccio/conf/config.yml" and create a default config under "/verdaccio/conf/config.yaml".
I'm not sure if this is enough to call it a bug. This is more an enhancement but could also be a security related issue. You can even ignore this report. I just thought it was worth a GitHub issue.
I accidentally used the wrong filename extension for the config and wondered why my changes are not working. Sure, this is absolutely my fault but I think this bug is easy to hit.
If someone wants an "almost" default config except for some scope restrictions or similar like that, this could be a security related issue if the user doesn't check if the configured restrictions work as expected.
To Reproduce
Follow the documentation, accidentally use the wrong config filename suffix and deploy verdaccio via Docker Swarm ;-)
Expected behavior
There are several possible solutions and I'm not sure which is the best one. I think supporting both filename extensions would be great.

hi @gn-jgeerds , I understand your concern. The extension yaml has been used since Sinopia (before this fork), so it is kinda embedded already in the big base of users. Anyway, for the moment the documentation says clearly yaml and as far I can see there is a long debate about it.
For me is fine like it is, but I'm open to listen other thoughts.


Limit token scope in example

fixes #151
like this, @webknjaz?
I had to simplify the artifact name since I'm not sure how to test this easily. I think I would've had to define an output?

thanks! and PR welcome 🤓


kamid: 0.1 -> 0.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/omar-polo/kamid/releases.
meta.description for kamid is: "A FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems"
meta.homepage for kamid is: "https://kamid.omarpolo.com"
meta.changelog for kamid is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.2 with grep in /nix/store/9qd6h2zj9rlfmwbcpxbak1hr3rnv80an-kamid-0.2
found 0.2 in filename of file in /nix/store/9qd6h2zj9rlfmwbcpxbak1hr3rnv80an-kamid-0.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
kamid

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9qd6h2zj9rlfmwbcpxbak1hr3rnv80an-kamid-0.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kamid https://github.com/r-ryantm/nixpkgs/archive/838487b081aaca9309e408bbce8c7a349f2cd617.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9qd6h2zj9rlfmwbcpxbak1hr3rnv80an-kamid-0.2
ls -la /nix/store/9qd6h2zj9rlfmwbcpxbak1hr3rnv80an-kamid-0.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

kamid

Maintainer pings
cc @heph2 for testing.

Result of nixpkgs-review pr 183408 run on x86_64-linux 1

1 package built:

kamid


feat(tls): Adding option to skip TLS verification

Hi, team.
This is PR including a feature adding an option to skip TLS verification over HTTPS.
Generally, OKTA is integrated with enterprise environment such a company.
And in the company, infrastructure are secured under a kind of mitm firewall.
As a result, TLS verification could be failed because of firewall so that this feature is required as a workaround.
The option name I added is --no-tls-verify following --no-okta-cache or --no-aws-cache.
And the option is used to make a request to AWS API using boto3 and HTTP API using requests.
Please review my PR and don't hesitate to feedback if you any concern.
Thanks

@thoward-godaddy Hi, can you review my PR?


Make clippy an optional dep

This way people can use this crate on stable. Compile with cargo build --features dev to use clippy

There were the following issues with your Pull Request

Commit: 51f67270750ce833bd629c325f76f4a2f6d7da7c
Commits must be in the following format: %{type}/%{scope}: %{description}

Guidelines are available at https://github.com/autumnai/leaf/blob/develop/CONTRIBUTING.md#git-commit-guidelines

This message was auto-generated by https://gitcop.com

There were the following issues with your Pull Request

Commit: bec80d5dc23138fe10db0d7ea3c8bfcc660a181c
Commits must be in the following format: %{type}/%{scope}: %{description}

Guidelines are available at https://github.com/autumnai/leaf/blob/develop/CONTRIBUTING.md#git-commit-guidelines

This message was auto-generated by https://gitcop.com

Needs https://github.com/autumnai/phloem/pull/15

As @Manishearth stated, we should make cuticulla complay with the usual clippy handling we have at the other crates. But phloem needs to be replaced first with collenchyma.
I cc @hobofan, maybe he has a local branch for this.
Progress is tracked at #19 which blocks the merge of this PR.

:umbrella: The latest upstream changes (presumably #21) made this pull request unmergeable. Please resolve the merge conflicts.


Remove version: Jackett.Jackett version 0.20.1796

404 - release deleted
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/Jackett/Jackett/releases/download/v0.20.1796/Jackett.Installer.Windows.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 917)


Turn pr bot on for remaining common labels

This turns on the PR bot for the remaining few labels (Java/Io/Build) that get a lot of PR traffic. I did my best to come up with an initial set of reviewers to be round robined to, but it was mostly based on manual inspection. The bot should eventually update that list anyways.
Closes #21421

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

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

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

R: @Abacn


fix(set-shas): fixing incorrect api page-token query param

Change page query param to page-token query param
Closes #43

Hi @meeroslav!
Not sure if you were notified of this PR, but could you take a look at this when you get the chance? We are currently experiencing issues with our Prod Nx-based pipelines due to this bug :(

Your development orb has been published. It will expire in 30 days.
You can preview what this will look like on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/nrwl/nx?version=dev:a59c3116a663e9bf3107e03df727049e4eb61a95


Added DS_Store

Reasons for making this change:

When programming on mac computers the .DS_Store file is very common. This should be added to the .gitignore so that it does not accidentally get pushed. When i have worked with my many friends it is a common issue that they push this file for no reason. I therefore think it would be good to have this included so that this mistake is not carried though. Especially since the .DS_Store is a hidden file and many people do not think about its existence and therefore it can be hard to miss. Oh wait i meant it can be easy to miss.
TODO
Links to documentation supporting these rule changes:
TODO
If this is a new template:

Link to application or project’s homepage: TODO

Should this be leveraged from the global gitignore instead?
May I suggest setting up a global .gitignore in your project root? https://gist.github.com/subfuzion/db7f57fff2fb6998a16c#global-gitignore-contents


Define license

Which license is used in this project?
Once decided, add it to package.json, by using https://docs.npmjs.com/files/package.json#license property.
Possibly publish a new version to npm which has the license defined, as a bug fix release.
Thank you and here is some 🍇

Related to https://github.com/75lb/handlebars-array/issues/1 https://github.com/75lb/handlebars-comparison/issues/1 https://github.com/75lb/handlebars-json/issues/1 https://github.com/75lb/handlebars-regexp/issues/1
If for example MIT is fine, I could open Pull Request in each of these repositories which adds a LICENSE file, adds the license property in package.json and mentions in README.md?

hi, yes send PRs if you like but i won't be free to update the npm packages for another few hours.. and thanks for the unicode fruits ;)

FYI, this is fixed in jsdoc2md v2 which i've updated to no longer use any of the modules mentioned above.. if you like, i'll fix it in v1 too later on tonight.

Thank you.
Some of my dependencies are using these, hence would need all these handlebars projects to have licenses.

all merged and released, thanks


some questions about the recommendations

Hi, I read your paper and code today, here are some questions I want to ask.
How do I print the recommendations for each user? For example, I add a new user and his interactions with some items, how do I get the recommendations for him by using the model I have trained?

Hi,
You made me realise that I didn't offer a way to get the recommendations for a user through command line.
I recognise that it would be indeed useful and I'll try to add that ASAP.
In the meantime however, you'll have to write some code to get the recommendations. I suggest that you read the file test.py. You'll find in line 65 a call to the method top_k_recommendations, which is the method you'll have to use to get the recommendations.

Got it, thanks!


Report button on main page

Would be good to have a link describing what the report page does similar to the other three links.

What icon would you like for this button?

Maybe one of the ones from the main marketing site: https://impactasaurus.org/ - should also help with colour choice. Thanks.


(Suggestion) Whats this? WebP support? UwU

Add webp support? :3

https://developers.google.com/speed/webp
webp images
Here's my step by step if you need to compile yourself
https://paste.gg/p/anonymous/cdb445dc890f4754b5a4f311fb9f0c75
https://developers.google.com/speed/webp/download
https://www.keycdn.com/support/webp-browser-support
Just copypastaing our convo on discord for future reference.


Unable to make SSL HTTP working using Conan packaged OpenSSL

Version of Beast
#define BOOST_BEAST_VERSION 300

Found in my installation of boost 1.74
Steps necessary to reproduce the problem
Here's a modified version of the sync SSL example to leave out the fixed certificates, and also output the OpenSSL errors:
#include <boost/asio/ssl.hpp>
#include <boost/lexical_cast.hpp>
#include <openssl/cryptoerr.h>
#include <boost/beast/core.hpp>
#include <boost/beast/http.hpp>
#include <boost/beast/ssl.hpp>
#include <boost/beast/version.hpp>
#include <boost/asio/connect.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/ssl/error.hpp>
#include <boost/asio/ssl/stream.hpp>
#include <boost/beast/version.hpp>
#include <openssl/opensslv.h>
#include <cstdlib>
#include <iostream>
#include <string>

namespace beast = boost::beast; // from <boost/beast.hpp>
namespace http = beast::http;   // from <boost/beast/http.hpp>
namespace net = boost::asio;    // from <boost/asio.hpp>
namespace ssl = net::ssl;       // from <boost/asio/ssl.hpp>
using tcp = net::ip::tcp;       // from <boost/asio/ip/tcp.hpp>

// Performs an HTTP GET and prints the response
int main(int argc, char** argv)
{
    std::cout << OPENSSL_VERSION_TEXT << std::endl;
    try
    {
        // Check command line arguments.
        if(argc != 4 && argc != 5)
        {
            std::cerr <<
                "Usage: http-client-sync-ssl <host> <port> <target> [<HTTP version: 1.0 or 1.1(default)>]\n" <<
                "Example:\n" <<
                "    http-client-sync-ssl www.example.com 443 /\n" <<
                "    http-client-sync-ssl www.example.com 443 / 1.0\n";
            return EXIT_FAILURE;
        }
        auto const host = argv[1];
        auto const port = argv[2];
        auto const target = argv[3];
        int version = argc == 5 && !std::strcmp("1.0", argv[4]) ? 10 : 11;

        // The io_context is required for all I/O
        net::io_context ioc;

        // The SSL context is required, and holds certificates
        ssl::context ctx(ssl::context::tlsv12_client);

        // This holds the root certificate used for verification
		ctx.set_default_verify_paths();

        // Verify the remote server's certificate
        ctx.set_verify_mode(ssl::verify_peer);

            // These objects perform our I/O
        tcp::resolver resolver(ioc);
        beast::ssl_stream<beast::tcp_stream> stream(ioc, ctx);

        // Set SNI Hostname (many hosts need this to handshake successfully)
        if(! SSL_set_tlsext_host_name(stream.native_handle(), host))
        {
            beast::error_code ec{static_cast<int>(::ERR_get_error()), net::error::get_ssl_category()};
            throw beast::system_error{ec};
        }

        // Look up the domain name
        auto const results = resolver.resolve(host, port);

        // Make the connection on the IP address we get from a lookup
        beast::get_lowest_layer(stream).connect(results);

        // Perform the SSL handshake
        stream.handshake(ssl::stream_base::client);

        // Set up an HTTP GET request message
        http::request<http::string_body> req{http::verb::get, target, version};
        req.set(http::field::host, host);
        req.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING);

        // Send the HTTP request to the remote host
        http::write(stream, req);

        // This buffer is used for reading and must be persisted
        beast::flat_buffer buffer;

        // Declare a container to hold the response
        http::response<http::dynamic_body> res;

        // Receive the HTTP response
        http::read(stream, buffer, res);

        // Write the message to standard out
        std::cout << res << std::endl;

        // Gracefully close the stream
        beast::error_code ec;
        stream.shutdown(ec);
        if(ec == net::error::eof)
        {
            // Rationale:
            // http://stackoverflow.com/questions/25587403/boost-asio-ssl-async-shutdown-always-finishes-with-an-error
            ec = {};
        }
        if(ec)
            throw beast::system_error{ec};

        // If we get here then the connection is closed gracefully
    }
    catch(boost::system::system_error const& e)
    {
        auto const& error = e.code();
        std::string err = error.message();
        if (error.category() == boost::asio::error::get_ssl_category()) {
            err = std::string(" (")
                +boost::lexical_cast<std::string>(ERR_GET_LIB(error.value()))+","
                +boost::lexical_cast<std::string>(ERR_GET_FUNC(error.value()))+","
                +boost::lexical_cast<std::string>(ERR_GET_REASON(error.value()))+") ";

            //ERR_PACK /* crypto/err/err.h */
            char buf[128];
            ::ERR_error_string_n(error.value(), buf, sizeof(buf));
            err += buf;
            std::cerr << err << std::endl;
        }
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

When running the program like so:
./http-client-sync-ssl example.com 443 /

I get this error:
OpenSSL 1.1.1g  21 Apr 2020
(20,367,134) error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

My knowledge of SSL and certificate is quite limited, but in this code I assumed that ctx.set_default_verify_paths() would load the system's CA certificates. I verified that SSL is working correctly on that machine. If I do curl https://example.com/ it work without errors.
So if curl can do it, certainly asio can too. However, I'm not quite sure how to get there. I tried finding resources about how to get system certificate integrated into boost but found nothing. Even just how to find the right certificate and which files to load for my program to do as well as curl.
Of course, I can disable certificate verification, but I wouldn't do that in production.
I have found a library that act as a simple http client loads additional certificates on windows: https://github.com/RAvenGEr/simple-beast-client/blob/master/include/client_private_ssl.hpp#L37
But I cannot find a linux/osx equivalent.
All relevant compiler information
I use GCC 10.0.1 in C++20 mode.
I run my compiler in a docker container based on ubuntu 20.04.
I get the same result compiling the program on MacOS, using GCC 10.0.2.

Hi, are you using the system openssl or one that you built from source?
The code looks right but I will check it out on my linux box and mac in the morning.

@madmongo1 I am using conan, and I installed version 1.1.1f. If that can help you, I can create a small repository with a CMake setup that builds the program in the same configuration I am using.
Here's my conan profile:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=10
os=Linux
os_build=Linux
[options]
[build_requires]
[env]
CC=/usr/bin/gcc-10
CXX=/usr/bin/g++-10

It's ok. I'll be able to build the cmake file. I'm just wondering whether the default_verify_paths are pointing to the wrong place if the linker is picking up the conan installation of openssl rather than the one installed in ubuntu.
I don't know much about conan - are you able to post the actual command line that invokes the compiler?
i.e. g++ <options> main.cpp ?

Firstly a small correction: The OpenSSL version that I installed with conan is OpenSSL 1.1.1g  21 Apr 2020. I now output it from my program just to be sure.
The other version is the one installed globally on the container.
Here's the compiler command:
/bin/g++-10 -D_GLIBCXX_USE_CXX11_ABI=1 -isystem /root/.conan/data/boost/1.74.0/_/_/package/104297d4d8bdbca7e9351b0f32c32f11628164c7/include -isystem /root/.conan/data/zlib/1.2.11/_/_/package/19729b9559f3ae196cad45cb2b97468ccb75dcd1/include -isystem /root/.conan/data/bzip2/1.0.8/_/_/package/91a8b22c2c5a149bc617cfc06cdd21bf23b12567/include -isystem /root/.conan/data/openssl/1.1.1g/_/_/package/19729b9559f3ae196cad45cb2b97468ccb75dcd1/include -g -MD -MT src/CMakeFiles/http-beast-ssl.dir/main2.cpp.o -MF src/CMakeFiles/http-beast-ssl.dir/main2.cpp.o.d -o src/CMakeFiles/http-beast-ssl.dir/main2.cpp.o -c ../src/main2.cpp

Ok I’m going to guess and say that your Conan version of openssl is looking in the wrong directories for the system certificates. Is there a way you can link against the system openssl rather than the Conan one?

Oh I forgot: here's the linking part of the compile command:
/bin/g++-10 -g  src/CMakeFiles/http-beast-ssl.dir/main2.cpp.o -o bin/http-beast-ssl  /root/.conan/data/boost/1.74.0/_/_/package/104297d4d8bdbca7e9351b0f32c32f11628164c7/lib/libboost_system.a  -lrt  /root/.conan/data/zlib/1.2.11/_/_/package/19729b9559f3ae196cad45cb2b97468ccb75dcd1/lib/libz.a  /root/.conan/data/bzip2/1.0.8/_/_/package/91a8b22c2c5a149bc617cfc06cdd21bf23b12567/lib/libbz2.a  /root/.conan/data/openssl/1.1.1g/_/_/package/19729b9559f3ae196cad45cb2b97468ccb75dcd1/lib/libssl.a  /root/.conan/data/openssl/1.1.1g/_/_/package/19729b9559f3ae196cad45cb2b97468ccb75dcd1/lib/libcrypto.a  -ldl  -lpthread

Yes, I can try that. I'll make a small project without conan that uses the system's openssl.
By the way, I made sure my system's certificates are up to date using update-ca-certificates and by upgrading the ca-certificates package.

@madmongo1 okay, I have some news. When I'm using the system's openssl library, everything is working correctly. I'm really happy that it work. However I would like continuing using a package manager, as I can choose fixed version instead of picking whatever outdated version my distro is packaging. Do you have any clues what's going on that makes the conan version fail to validate certificates? Big big thank you for your support.

Yes, OpenSSL looks in its build-time configured directories for the system's certificates which are used to verify certificates presented by the TLS server. The conan build has not configured those default paths to be your system's path (normally /etc/ssl/certs/).
You'll need to look at the configuration options of the OpenSSL build script, and then figure out how to get conan to build OpenSSL with the correct configuration so that it's looking at your system's certificate store.
Another way to do this is to explicitly read the certificates yourself from /etc/ssl/certs and present them to the ssl::context.

This was an issue on Conan side.

This was an issue on Conan side.

I'm having this same problem on mac and windows as well.


Multible / Dynamic Realms

As it is right now, we're only utilizing one realm(channel).
The WAMPv2 spec supports multiple realms, which we should take advantage off.
In my head, the best and most obvious thing would be to map laravel's broadcast channels to seperate realms.
Let's take an example:
class TestEvent extends Event implements ShouldBroadcast
{
    use SerializesModels;

    public $user;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return ['user.'.$this->user->id];
    }
}

We could somehow translate that broadcastOn channel to a realm.

#5 is needed for this to work


pre-rednered text doesn't changed if input changes

Due to the way how SwiftUI View state works there is an issue in EmojiText where, when I modify text provided via initializer it will stay unchanged.
The problem appears when identity of EmojiText doesn't change but the user provides input that might change. The way how pre-rendering works is that it will store modified raw input in internal state. Unfortunately that internal state will survive even if users provide different values keeping previously displayed text unchanged.
A workaround is to explicitly change identity of EmojiText from call site, but it would be better if this library handled input changes automatically.
Below is example code that reproduces the issue. Tapping on "Switch" button doesn't change visible text unless I uncomment the line with id.
struct Preview: View {
    @State private var text = "mastodon :mastodon:"

    private let emojis: [any CustomEmoji] = [
        RemoteEmoji(shortcode: "mastodon", url: URL(string: "https://files.mastodon.social/custom_emojis/images/000/003/675/original/089aaae26a2abcc1.png")!),
        SFSymbolEmoji(shortcode: "iphone")
    ]

    var body: some View {
        VStack {
            EmojiText(verbatim: text, emojis: emojis)
                //.id(text) // Uncommenting this line fixes issue

            Button("Switch") {
                if text.starts(with: "m") {
                    text = "iphone :iphone:"
                } else {
                    text = "mastodon :mastodon:"
                }
            }
        }
    }
}

I tried experimented with a way to resolve it internally by adding onChange(of: raw) inside of EmojiText but that doesn't seem to work for initial change. I'm not sure why and don't have any other ideas currently so I'm submitting this as issue instead of pull request.
Similar issue might happen if provided emojis change but I didn't check that case.

Should be implemented in 2.2.0. Please let me know if it works or there are any issues


#123

resolve the conflicts and share the video of changes

create new pr with proper video of changes


allele group table headers

I wonder if it would be better to make the arguments for the table header be mandatory.
The defaults (HOM_REF, ALT) are confusing and wrong
This is the header of a table that I adjusted manually and it makes sense.
Allele group | p.Asn159Ser | Other variant
@ielis thoughts?

Hi, can you be more specific regarding what table are you talking about?