Laravel: multiple php-cli invocations crashes container

What happened?
We are considering moving our Laravel 10 apps running in k8s to Frankenphp. We run separate pods for the app, a queue worker, and a scheduler. I managed to get the app working without issues, but the queue worker is giving me issues. Using the frankenphp:2.8.4-alpine image and this command the queue works: frankenphp php-cli artisan queue:work --queue=default --max-jobs=200. We use the Spatie Laravel health package for a health endpoint, in the case of the queue worker container we run this as a command since there's no webserver running using this command: frankenphp php-cli artisan health:check --fail-command-on-failing-check.  This is done by a k8s livenessProbe. However, when I run the queue worker in this way, the health checks work a couple of times, but as soon as the queue has any work to do, they start timing out and crash the pod. I've tried adjusting RAM and the health probe thresholds, and this improves things a little, but it's nowhere near stable enough.
When I do the exact same thing using the same base images the Frankenphp image was built from (php:8.2-alpine) and using PHP directly (php artisan queue:work --queue=default --max-jobs=200) this works without issue. Maybe I'm approaching this the wrong way or maybe it's an actual bug. Curious if anyone here as any insight on this.
Build Type
Docker (Alpine)
Worker Mode
No
Operating System
GNU/Linux
CPU Architecture
x86_64
PHP configuration
phpinfo()
PHP Version => 8.2.20

System => Linux 42ef48afaba1 6.9.3-orbstack-00146-g1a8d02c90788 #1 SMP Wed Jun 12 00:20:38 UTC 2024 x86_64
Build Date => Jun  6 2024 20:57:17
Build System => Linux - Docker
Build Provider => https://github.com/docker-library/php
Configure Command =>  './configure'  '--build=x86_64-linux-musl' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--with-pic' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-iconv=/usr' '--with-openssl' '--with-readline' '--with-zlib' '--enable-phpdbg' '--enable-phpdbg-readline' '--with-pear' '--enable-embed' '--enable-zts' '--disable-zend-signals' '--enable-zend-max-execution-timers' 'build_alias=x86_64-linux-musl'
Server API => Command Line Interface
Virtual Directory Support => enabled
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
Additional .ini files parsed => /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-redis.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini

PHP API => 20220829
PHP Extension => 20220829
Zend Extension => 420220829
Zend Extension Build => API420220829,TS
PHP Extension Build => API20220829,TS
Debug Build => no
Thread Safety => enabled
Thread API => POSIX Threads
Zend Signal Handling => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => provided by mbstring
Zend Max Execution Timers => enabled
IPv6 Support => enabled
DTrace Support => disabled

Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
Registered Stream Filters => zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, convert.*, consumed, dechunk

This program makes use of the Zend Scripting Language Engine:
Zend Engine v4.2.20, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

 _______________________________________________________________________

Configuration

bcmath

BCMath support => enabled

Directive => Local Value => Master Value
bcmath.scale => 0 => 0

Core

PHP Version => 8.2.20

Directive => Local Value => Master Value
allow_url_fopen => On => On
allow_url_include => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => UTF-8 => UTF-8
default_mimetype => text/html => text/html
disable_classes => no value => no value
disable_functions => no value => no value
display_errors => Off => Off
display_startup_errors => Off => Off
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => Off => Off
enable_post_data_reading => On => On
error_append_string => no value => no value
error_log => no value => no value
error_log_mode => 0644 => 0644
error_prepend_string => no value => no value
error_reporting => 22527 => 22527
expose_php => On => On
extension_dir => /usr/local/lib/php/extensions/no-debug-zts-20220829 => /usr/local/lib/php/extensions/no-debug-zts-20220829
fiber.stack_size => no value => no value
file_uploads => On => On
hard_timeout => 2 => 2
highlight.comment => #FF8000 => #FF8000
highlight.default => #0000BB => #0000BB
highlight.html => #000000 => #000000
highlight.keyword => #007700 => #007700
highlight.string => #DD0000 => #DD0000
html_errors => Off => Off
ignore_repeated_errors => Off => Off
ignore_repeated_source => Off => Off
ignore_user_abort => Off => Off
implicit_flush => On => On
include_path => .:/usr/local/lib/php => .:/usr/local/lib/php
input_encoding => no value => no value
internal_encoding => no value => no value
log_errors => On => On
mail.add_x_header => Off => Off
mail.force_extra_parameters => no value => no value
mail.log => no value => no value
mail.mixed_lf_and_crlf => Off => Off
max_execution_time => 0 => 0
max_file_uploads => 20 => 20
max_input_nesting_level => 64 => 64
max_input_time => -1 => -1
max_input_vars => 1000 => 1000
max_multipart_body_parts => -1 => -1
memory_limit => 128M => 128M
open_basedir => no value => no value
output_buffering => 0 => 0
output_encoding => no value => no value
output_handler => no value => no value
post_max_size => 8M => 8M
precision => 14 => 14
realpath_cache_size => 4096K => 4096K
realpath_cache_ttl => 120 => 120
register_argc_argv => On => On
report_memleaks => On => On
report_zend_debug => Off => Off
request_order => GP => GP
sendmail_from => no value => no value
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i
serialize_precision => -1 => -1
short_open_tag => Off => Off
SMTP => localhost => localhost
smtp_port => 25 => 25
sys_temp_dir => no value => no value
syslog.facility => LOG_USER => LOG_USER
syslog.filter => no-ctrl => no-ctrl
syslog.ident => php => php
unserialize_callback_func => no value => no value
upload_max_filesize => 2M => 2M
upload_tmp_dir => no value => no value
user_dir => no value => no value
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
variables_order => GPCS => GPCS
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
zend.assertions => -1 => -1
zend.detect_unicode => On => On
zend.enable_gc => On => On
zend.exception_ignore_args => On => On
zend.exception_string_param_max_len => 0 => 0
zend.multibyte => Off => Off
zend.script_encoding => no value => no value

ctype

ctype functions => enabled

curl

cURL support => enabled
cURL Information => 8.7.1
Age => 10
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => No
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => No
SPNEGO => No
SSL => Yes
SSPI => No
TLS-SRP => Yes
HTTP2 => Yes
GSSAPI => No
KERBEROS5 => No
UNIX_SOCKETS => Yes
PSL => Yes
HTTPS_PROXY => Yes
MULTI_SSL => No
BROTLI => Yes
ALTSVC => Yes
HTTP3 => No
UNICODE => No
ZSTD => Yes
HSTS => Yes
GSASL => No
Protocols => dict, file, ftp, ftps, gopher, gophers, http, https, imap, imaps, mqtt, pop3, pop3s, rtsp, smb, smbs, smtp, smtps, telnet, tftp, ws, wss
Host => x86_64-alpine-linux-musl
SSL Version => OpenSSL/3.3.1
ZLib Version => 1.3.1

Directive => Local Value => Master Value
curl.cainfo => no value => no value

date

date/time support => enabled
timelib version => 2022.10
"Olson" Timezone Database Version => 2024.1
Timezone Database => internal
Default timezone => UTC

Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.833333 => 90.833333
date.sunset_zenith => 90.833333 => 90.833333
date.timezone => UTC => UTC

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.12.7
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled

fileinfo

fileinfo support => enabled
libmagic => 540

filter

Input Validation and Filtering => enabled

Directive => Local Value => Master Value
filter.default => unsafe_raw => unsafe_raw
filter.default_flags => no value => no value

hash

hash support => enabled
Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat murmur3a murmur3c murmur3f xxh32 xxh64 xxh3 xxh128 haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

MHASH support => Enabled
MHASH API Version => Emulated Support

iconv

iconv support => enabled
iconv implementation => libiconv
iconv library version => 1.17

Directive => Local Value => Master Value
iconv.input_encoding => no value => no value
iconv.internal_encoding => no value => no value
iconv.output_encoding => no value => no value

json

json support => enabled

libxml

libXML support => active
libXML Compiled Version => 2.12.7
libXML Loaded Version => 21207
libXML streams => enabled

mbstring

Multibyte Support => enabled
Multibyte string engine => libmbfl
HTTP input encoding translation => disabled
libmbfl version => 1.3.2

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Multibyte (japanese) regex support => enabled
Multibyte regex (oniguruma) version => 6.9.9

Directive => Local Value => Master Value
mbstring.detect_order => no value => no value
mbstring.encoding_translation => Off => Off
mbstring.http_input => no value => no value
mbstring.http_output => no value => no value
mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml\+xml) => ^(text/|application/xhtml\+xml)
mbstring.internal_encoding => no value => no value
mbstring.language => neutral => neutral
mbstring.regex_retry_limit => 1000000 => 1000000
mbstring.regex_stack_limit => 100000 => 100000
mbstring.strict_detection => Off => Off
mbstring.substitute_character => no value => no value

mysqlnd

mysqlnd => enabled
Version => mysqlnd 8.2.20
Compression => supported
core SSL => supported
extended SSL => supported
Command buffer size => 4096
Read buffer size => 32768
Read timeout => 86400
Collecting statistics => Yes
Collecting memory statistics => No
Tracing => n/a
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password
API Extensions =>

openssl

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 3.3.1 4 Jun 2024
OpenSSL Header Version => OpenSSL 3.3.0 9 Apr 2024
Openssl default config => /etc/ssl/openssl.cnf

Directive => Local Value => Master Value
openssl.cafile => no value => no value
openssl.capath => no value => no value

pcre

PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 10.40 2022-04-14
PCRE Unicode Version => 14.0.0
PCRE JIT Support => enabled
PCRE JIT Target => x86 64bit (little endian + unaligned)

Directive => Local Value => Master Value
pcre.backtrack_limit => 1000000 => 1000000
pcre.jit => On => On
pcre.recursion_limit => 100000 => 100000

PDO

PDO support => enabled
PDO drivers => sqlite, pgsql

pdo_pgsql

PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 16.3

pdo_sqlite

PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.45.3

pgsql

PostgreSQL Support => enabled
PostgreSQL (libpq) Version => 16.3
Multibyte character support => enabled
Active Persistent Links => 0
Active Links => 0

Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited

Phar

Phar: PHP Archive support => enabled
Phar API version => 1.1.1
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => disabled (install ext/bz2)
Native OpenSSL support => enabled

Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
Directive => Local Value => Master Value
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On

posix

POSIX support => enabled

random

Version => 8.2.20

readline

Readline Support => enabled
Readline library => 8.2

Directive => Local Value => Master Value
cli.pager => no value => no value
cli.prompt => \b \>  => \b \>

redis

Redis Support => enabled
Redis Version => 6.0.2
Redis Sentinel Version => 1.0
Available serializers => php, json
Available compression => lzf, zstd, lz4

Directive => Local Value => Master Value
redis.arrays.algorithm => no value => no value
redis.arrays.auth => no value => no value
redis.arrays.autorehash => 0 => 0
redis.arrays.connecttimeout => 0 => 0
redis.arrays.consistent => 0 => 0
redis.arrays.distributor => no value => no value
redis.arrays.functions => no value => no value
redis.arrays.hosts => no value => no value
redis.arrays.index => 0 => 0
redis.arrays.lazyconnect => 0 => 0
redis.arrays.names => no value => no value
redis.arrays.pconnect => 0 => 0
redis.arrays.previous => no value => no value
redis.arrays.readtimeout => 0 => 0
redis.arrays.retryinterval => 0 => 0
redis.clusters.auth => no value => no value
redis.clusters.cache_slots => 0 => 0
redis.clusters.persistent => 0 => 0
redis.clusters.read_timeout => 0 => 0
redis.clusters.seeds => no value => no value
redis.clusters.timeout => 0 => 0
redis.pconnect.connection_limit => 0 => 0
redis.pconnect.echo_check_liveness => 1 => 1
redis.pconnect.pool_detect_dirty => 0 => 0
redis.pconnect.pool_pattern => no value => no value
redis.pconnect.pool_poll_timeout => 0 => 0
redis.pconnect.pooling_enabled => 1 => 1
redis.session.early_refresh => 0 => 0
redis.session.lock_expire => 0 => 0
redis.session.lock_retries => 100 => 100
redis.session.lock_wait_time => 20000 => 20000
redis.session.locking_enabled => 0 => 0

Reflection

Reflection => enabled

session

Session Support => enabled
Registered save handlers => files user redis rediscluster
Registered serializer handlers => php_serialize php php_binary

Directive => Local Value => Master Value
session.auto_start => Off => Off
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => Off => Off
session.cookie_lifetime => 0 => 0
session.cookie_path => / => /
session.cookie_samesite => no value => no value
session.cookie_secure => Off => Off
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 1 => 1
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => no value => no value
session.serialize_handler => php => php
session.sid_bits_per_character => 5 => 5
session.sid_length => 26 => 26
session.upload_progress.cleanup => On => On
session.upload_progress.enabled => On => On
session.upload_progress.freq => 1% => 1%
session.upload_progress.min_freq => 1 => 1
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix => upload_progress_ => upload_progress_
session.use_cookies => On => On
session.use_only_cookies => On => On
session.use_strict_mode => Off => Off
session.use_trans_sid => Off => Off

SimpleXML

SimpleXML support => enabled
Schema support => enabled

sodium

sodium support => enabled
libsodium headers version => 1.0.19
libsodium library version => 1.0.19

SPL

SPL support => enabled
Interfaces => OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

sqlite3

SQLite3 support => enabled
SQLite Library => 3.45.3

Directive => Local Value => Master Value
sqlite3.defensive => On => On
sqlite3.extension_dir => no value => no value

standard

Dynamic Library Support => enabled
Path to sendmail => /usr/sbin/sendmail -t -i

Directive => Local Value => Master Value
assert.active => On => On
assert.bail => Off => Off
assert.callback => no value => no value
assert.exception => On => On
assert.warning => On => On
auto_detect_line_endings => Off => Off
default_socket_timeout => 60 => 60
from => no value => no value
session.trans_sid_hosts => no value => no value
session.trans_sid_tags => a=href,area=href,frame=src,form= => a=href,area=href,frame=src,form=
unserialize_max_depth => 4096 => 4096
url_rewriter.hosts => no value => no value
url_rewriter.tags => form= => form=
user_agent => no value => no value

tokenizer

Tokenizer Support => enabled

xml

XML Support => active
XML Namespace Support => active
libxml2 Version => 2.12.7

xmlreader

XMLReader => enabled

xmlwriter

XMLWriter => enabled

Zend OPcache

Opcode Caching => Disabled
Optimization => Disabled
SHM Cache => Enabled
File Cache => Disabled
JIT => On
Startup Failed => Opcode Caching is disabled for CLI

Directive => Local Value => Master Value
opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => On => On
opcache.file_cache_only => Off => Off
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.interned_strings_buffer => 8 => 8
opcache.jit => tracing => tracing
opcache.jit_bisect_limit => 0 => 0
opcache.jit_blacklist_root_trace => 16 => 16
opcache.jit_blacklist_side_trace => 8 => 8
opcache.jit_buffer_size => 0 => 0
opcache.jit_debug => 0 => 0
opcache.jit_hot_func => 127 => 127
opcache.jit_hot_loop => 64 => 64
opcache.jit_hot_return => 8 => 8
opcache.jit_hot_side_exit => 8 => 8
opcache.jit_max_exit_counters => 8192 => 8192
opcache.jit_max_loop_unrolls => 8 => 8
opcache.jit_max_polymorphic_calls => 2 => 2
opcache.jit_max_recursive_calls => 2 => 2
opcache.jit_max_recursive_returns => 2 => 2
opcache.jit_max_root_traces => 1024 => 1024
opcache.jit_max_side_traces => 128 => 128
opcache.jit_prof_threshold => 0.005 => 0.005
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 10000 => 10000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.preload => no value => no value
opcache.preload_user => no value => no value
opcache.protect_memory => Off => Off
opcache.record_warnings => Off => Off
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => On => On
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On

zip

Zip => enabled
Zip version => 1.21.1
Libzip version => 1.10.1
BZIP2 compression => Yes
XZ compression => Yes
ZSTD compression => Yes
AES-128 encryption => Yes
AES-192 encryption => Yes
AES-256 encryption => Yes

zlib

ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.3.1
Linked Version => 1.3.1

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value

Additional Modules

Module Name

Environment

Variable => Value
HOSTNAME => 42ef48afaba1
PHP_INI_DIR => /usr/local/etc/php
SHLVL => 1
HOME => /home/www-data
GODEBUG => cgocheck=0
PHP_LDFLAGS => -Wl,-O1 -pie
PHP_CFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_VERSION => 8.2.20
GPG_KEYS => 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
PHP_CPPFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_ASC_URL => https://www.php.net/distributions/php-8.2.20.tar.xz.asc
PHP_URL => https://www.php.net/distributions/php-8.2.20.tar.xz
TERM => xterm
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
XDG_CONFIG_HOME => /config
XDG_DATA_HOME => /data
PHPIZE_DEPS => autoconf                 dpkg-dev dpkg           file            g++             gcc             libc-dev                make     pkgconf          re2c
PWD => /app
PHP_SHA256 => 4474cc430febef6de7be958f2c37253e5524d5c5331a7e1765cd2d2234881e50
SERVER_NAME => :8080

PHP Variables

Variable => Value
$_SERVER['HOSTNAME'] => 42ef48afaba1
$_SERVER['PHP_INI_DIR'] => /usr/local/etc/php
$_SERVER['SHLVL'] => 1
$_SERVER['HOME'] => /home/www-data
$_SERVER['GODEBUG'] => cgocheck=0
$_SERVER['PHP_LDFLAGS'] => -Wl,-O1 -pie
$_SERVER['PHP_CFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
$_SERVER['PHP_VERSION'] => 8.2.20
$_SERVER['GPG_KEYS'] => 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
$_SERVER['PHP_CPPFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
$_SERVER['PHP_ASC_URL'] => https://www.php.net/distributions/php-8.2.20.tar.xz.asc
$_SERVER['PHP_URL'] => https://www.php.net/distributions/php-8.2.20.tar.xz
$_SERVER['TERM'] => xterm
$_SERVER['PATH'] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$_SERVER['XDG_CONFIG_HOME'] => /config
$_SERVER['XDG_DATA_HOME'] => /data
$_SERVER['PHPIZE_DEPS'] => autoconf             dpkg-dev dpkg           file            g++             gcc             libc-dev                make              pkgconf                 re2c
$_SERVER['PWD'] => /app
$_SERVER['PHP_SHA256'] => 4474cc430febef6de7be958f2c37253e5524d5c5331a7e1765cd2d2234881e50
$_SERVER['SERVER_NAME'] => :8080
$_SERVER['PHP_SELF'] =>
$_SERVER['SCRIPT_NAME'] =>
$_SERVER['SCRIPT_FILENAME'] =>
$_SERVER['PATH_TRANSLATED'] =>
$_SERVER['DOCUMENT_ROOT'] =>
$_SERVER['REQUEST_TIME_FLOAT'] =><PHONE_NUMBER>.723
$_SERVER['REQUEST_TIME'] =><PHONE_NUMBER>
$_SERVER['argv'] => Array
(
)

$_SERVER['argc'] => 0

Relevant log output
No response

Would you happen to know if the process crashes? If yes, could you try to gather a stack trace (https://frankenphp.dev/docs/contributing/#debugging-segmentation-faults-with-static-builds)?
If that's not the case, could you provide us with a minimal reproducer?
As a workaround, you can likely use a standard PHP CLI build instead of FrankenPHP's built-in runner for your queue worker (and still use FrankenPHP to serve HTTP requests).

@hedge-freek can you share the stack trace?

I also encountred an issue with queue #968, if I want to use standard php cli build where should I put it? Is it here /usr/local/bin/php

Think he means, you must try to use an php image to run the CLI and FrankenPHP only for HTTP request

I also encountred an issue with queue #968, if I want to use standard php cli build where should I put it? Is it here /usr/local/bin/php

Think he means you must try to use an php image to run the CLI and FrankenPHP only for HTTP request, something like webdevops/php or serversideup/php:8.3-cli

That would be fantastic in production,  but in development Im using sail, sail command will only work in main container.

If you are using frankenphp images, then php-cli is already installed.

If you are using frankenphp images, then php-cli is already installed.

What path? Invoking php artisan points to my custom php using the workaround for composer scripts @php

https://asciinema.org/a/Hx9H8yQjN5mCeqedKndrSBZG8
TL;DW: /usr/local/bin/php
They are based on php:8.X-zts

https://asciinema.org/a/Hx9H8yQjN5mCeqedKndrSBZG8
TL;DW: /usr/local/bin/php
They are based on php:8.X-zts

Since I use the workaround for php composer as recommended here in https://frankenphp.dev/docs/known-issues/
Does that mean I replaced the standard php cli?
#!/usr/bin/env bash
args=("$@")
index=0
for i in "$@"
do
    if [ "$i" == "-d" ]; then
        unset 'args[$index]'
        unset 'args[$index+1]'
    fi
    index=$((index+1))
done

/usr/local/bin/frankenphp php-cli ${args[@]}

https://asciinema.org/a/Hx9H8yQjN5mCeqedKndrSBZG8
TL;DW: /usr/local/bin/php
They are based on php:8.X-zts

Thanks I tried removing the workaround and rebuild docker, it did have a standard php cli, but now Im thinking whats the solution for the composer @php

This workaround is only needed when not using the standard PHP CLI.
I'll update the docs to make that clearer. You don't need this workaround with Docker images. It is only necessary when you use the static binary and you don't have a local installation of PHP.


Request to add description of HTTP Keep alive time out value

[Enter feedback here]
As far as I understand, AppGWv2 has two distinct keep-alive timeout settings, both of which align with the default values used in NGINX:
#1.between client (frontend) and AppGW: 75 seconds (NGINX default)
https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout
#2.between AppGW and backend servers: 60 seconds (NGINX default)
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout
While the DOCS mention the first timeout value (#1), we don't reference the second (#2). I believe it might be beneficial to include information about the second timeout value as well.
https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-faq#what-are-the-settings-for-keep-alive-timeout-and-tcp-idle-timeout
"in the v2 SKU it's 75 seconds. "
Thank you for your assistance.

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

ID: 88466307-81b8-1e5b-7f2c-191d8e818071
Version Independent ID: 08ad49f3-6a57-b925-794a-37215e985aba
Content: Frequently asked questions about Application Gateway
Content Source: articles/application-gateway/application-gateway-faq.yml
Service: application-gateway
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

@donghui-wu777
Thanks for your feedback! We will investigate and update as appropriate.

@donghui-wu777
Thank you for bringing this to our attention. I am currently in discussion with the Application Gateway-Keep alive timeout Product Group team regarding the Application Gateway-Keep alive timeout settings for this FAQ. I will share updates on this soon.
We are closing this issue for now. Once I hear back from the PG team, we will either update the documentation or keep the selection of the Application Gateway-Keep alive timeout the same in the document.


Fix infinite standalone page

Fixes #29 and #30. The solution is based on how People app detects Launcher. I will write an article about this.

What's the status of reviewing this, @diliger?

Sorry, didn't see the PR.
It should be merged I guess.

Merged


[BUG] the tailwindcss global eslint settings doesn't support ":" (colon)

Describe the bug
This plugin doesn't work when using the Astro attribute class:list as the : character doesn't seem to work in the eslint global settings regex.
Astro uses the html attribute class:list which is similar to clsx but as an html attribute. ref: https://docs.astro.build/en/reference/directives-reference/#classlist
To Reproduce
I've tried using the following config in my .eslintrc.json but it doesn't work.
"settings": {
    "tailwindcss": {
      "classRegex": "^class(:list)?$"
    }
  }

it seems to be an issue with using the : character.
Environment (please complete the following information):

OS: macOS
Softwares + version used:

[pnpm 7.17.1, node v16.18.1, eslint 8.31.0, eslint-plugin-tailwindcss 3.8.0]

Same here.

Same problem with Vue's dynamic :class binding :(

@ruridge
I made a quick patch on this beta release:
npm i<EMAIL_ADDRESS>You can test it out but I don't think it'll handle all the cases demonstrated on https://docs.astro.build/en/reference/directives-reference/#classlist
@nikolasdas I have tests using :class and they seem to pass, can you try this version as well and provide more details if it still fail ?

I tried the new version, with classRegex: '^:?class$', and without. But unfortunately it still does not work :/

@nikolasdas are you using vue-eslint-parser ? I tried additional test on my localproject and it is working fine.
Could you share a minimalist project that I could clone to examine your issue ?

@francoismassart here is an example repo: https://github.com/nikolasdas/tailwind-eslint-nuxt-test


Typo in Docu?

What does default value 1C in forkCount Parameter of integrationTests mean?
(File https://github.com/SAP/cloud-s4-sdk-pipeline/blob/master/configuration.md)
Typo?

The forkCount parameter is passed to the surefire test execution.
The meaning of C is explained in the surefire documentation for forkCount:
Option to specify the number of VMs to fork in parallel in order to execute the tests. When terminated with "C", the number part is multiplied with the number of CPU cores. Floating point value are only accepted together with "C". If set to "0", no VM is forked and all tests are executed within the main process.

https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#forkCount


Fix amendment paragraph numbering

fixes https://github.com/OpenSlides/OpenSlides/issues/6473
@MSoeb the export seems to just have been wrong. To test, you have to export the instance again with this fix and then import it in OS4. It should work now.

@m-schieder Need test instance.


Roll-forward: Expose cronet net error list

Reverts #24203
Rolls forward #24164
Fixes build failures: net_error_list.h can not be found in google3.

Known issue: #24218


support for NYSE

Hi, I noticed theres no way to download stocks traded on NYSE (that are not on SP500) like ChargePoint or SAP. Is there anyway to get that data?

@bma-diy
To download stock symbols traded on NYSE, which is in US market, simply use ss.get_symbol_list(market="US").
Hope it helps.

@bma-diy
Or, if you want to get data from NYSE only, you can perform a filter like so:


Nest plugin

Please vote on this issue if you're interested in Nest plugin.
This issue will serve as a to-do list during development. To help us release this feature as quickly as possible, feel free to share the minimum requirements for your use case.

Is this meant as a server or client generator? 😄

@hougesen by 'this', are you referring to the Nest plugin or the openapi-ts package?

The plugin/issue

@hougesen the original idea was to offer a similar plugin as we have for Fastify, where you start with the spec and make sure that your server code matches the specification (spec-first). What would be the client generator approach? If you're doing code-first and generating a spec from Nest, you can already use that to generate the clients. Would there be any difference to what you're thinking?


Scrutinizer Auto-Fixes

@ovac requested this pull request.
It consists of patches automatically generated for this project on Scrutinizer:
https://scrutinizer-ci.com/g/ovac/hubtel-payment/

Coverage remained the same at 99.265% when pulling f8d58f48e8bf3748acdd191b64aa09774393c362 on scrutinizer-patch-2 into b7b5d79165e1f4c327f625f180ce3031506e462c on master.


Add simulcast sending support

Adds support for specifying the RID when writing packets to str0m as well as for serialization of the VLA extended header.
There are a couple points that need to be resolved:

Carrying the active/inactive state of streams from simulcast specification (adding the media) to when the SDP is created
A couple of the VLA tests I wasn't sure about. Specifically the one that I did convert add the bidirectional serialization to (it says 3 active streams but it has no active spatial layers, which would end up being condensed to the shared bitmask)

I also thought that but just wanted your opinion first - will quickly refactor it

I figured since we are adding new code we could switch (or not!) to midrid, and possibly move the stats in another commit if we like it

I turned MidRid into a tuple because it seemed more natural and makes for tidier log messages for the fmt::Debug.
I also implemented in many more places. I think I'll break the whole MidRid refactoring out to a separate PR to make this PR focused on simulcast.

Heads up: I force pushed a rebase off latest main.

MidRid refactoring in #604

Didn't mean to elicit a review request with my drive-by comments :D
I am not familiar with these parts of the codebase so I am going to dismiss the review request.

Didn't mean to elicit a review request with my drive-by comments :D I am not familiar with these parts of the codebase so I am going to dismiss the review request.

All code must be scrutinized! :D

Didn't mean to elicit a review request with my drive-by comments :D I am not familiar with these parts of the codebase so I am going to dismiss the review request.

All code must be scrutinized! :D

Say no more!

I'll leave it to @k0nserv to say whether it's correct to run the pacer per-mid/rid combo. I think it is, but better check with the expert.

Yes it's fine. The pacer only uses mid as a lookup key, it could equally use SSRC or this new combo of (Mid, Option<Rid>).

@kc5nra I rebased/squashed commits into two commits. One for the simulcast sending support and one for the VLA serialization. This is how I want this PR to land in main. If we do more work, we can fixup to those two.
There are two places I think we need to address before this PR is complete:

https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L898
https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L1305

@kc5nra I will now leave this PR in peace (no more force pushing from my side) to let you catch up.

@kc5nra I rebased/squashed commits into two commits. One for the simulcast sending support and one for the VLA serialization. This is how I want this PR to land in main. If we do more work, we can fixup to those two.
There are two places I think we need to address before this PR is complete:

https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L898
https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L1305

For https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L898, you mean something different than this? Though I agree we currently hand wave the active state
https://github.com/algesten/str0m/pull/603/commits/ad2e78c798109ea0dbd4652ea96fba9330a600a9#diff-5fd5a802394cab016425ddca33d909c07672077403390ccafa359c7d55dcbed0R903-R907
The latter isn't totally necessary for simulcast + VLA (late binding rids to ssrc), but it's 4AM and I'm probably not thinking of all the other permutations

@kc5nra I rebased/squashed commits into two commits. One for the simulcast sending support and one for the VLA serialization. This is how I want this PR to land in main. If we do more work, we can fixup to those two.
There are two places I think we need to address before this PR is complete:

https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L898
https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L1305

For https://github.com/algesten/str0m/blob/main/src/change/sdp.rs#L898, you mean something different than this? Though I agree we currently hand wave the active state

ad2e78c#diff-5fd5a802394cab016425ddca33d909c07672077403390ccafa359c7d55dcbed0R903-R907
The latter isn't totally necessary for simulcast + VLA (late binding rids to ssrc), but it's 4AM and I'm probably not thinking of all the other permutations

Go to bed!
When we negotiate simulcast with Firefox, we get these rows:

There are two (three?) mechanisms at play, and we need to support them all, to some extent.

Old school, pre-communicated SSRC in the SDP. The last three group:FID are declared in the order of the a=simulcast, i.e. l, m, h in this case. However for Firefox this is incorrect, so we use mechanism 2 https://github.com/algesten/str0m/blob/21355864916ffc373f05aa3c1e90582719f41e17/src/change/sdp.rs#L1113-L1116
Dynamic SSRC mapping using RTP header extensions. https://github.com/algesten/str0m/blob/main/src/session.rs#L309-L311
(I'm unsure here) VLA?

For incoming simulcast, we should ideally handle 1, but we're currently relying only on 2 because of a bug in FF. For outgoing simulcast I think we should make both 1 and 2 work correctly.

I'll try to get to this soon - going on a family trip for 4 days. Thanks for the prompt attention and help :-)


Improve loss tracking

Redo of #406, should have all suggestions there addressed.
Change the stats that are tracked logged during training to include the compound and label associated with loss values, rather than just the loss values themselves. This will make it easier to figure out what's going on in training and isolate any specific molecules that might be difficult for the model.
Also some other minor changes that coincided with this, mainly a rearrangement of the code in train.py to be smarter about wandb initialization and letting it play better with CLI args.

Just cycling CI here.

Codecov Report

Merging #419 (5bd5934) into main (8fbbe8e) will decrease coverage by 0.10%.
Report is 1 commits behind head on main.
The diff coverage is 23.52%.


":Clap files" shows errors when opening a file before the preview is visible

Environment (please complete the following information):

OS: macOS 10.15.4
NeoVim version: 0.4.3
vim-clap version: master (currently on commit 894a6fb7a54a2108d013167627d53ff7384891c1)
Have you reproduced with a minimal vimrc: Yes
Have you updated to the latest plugin version: Yes
Have you upgraded to/compiled the latest Rust binary: Yes

Describe the bug
When i use :Clap files and I navigate through the files and open a file before the file preview shows up an error is shown after the file has been opened.
When I wait a short time for the preview to show up after navigating it does work without errors.
This also only happens the first time I use vim-clap when Vim has been opened.
It does not show an error when I do not navigate (i.e. only typing my search and only press Enter to open the first result)
Clap debug
            has cargo: 1
            has maple: ~/.local/share/nvim/plugged/vim-clap/target/release/maple
           maple info: version 0.1.10, built for x86_64-apple-darwin by rustc 1.41.0 (5e1a79984 2020-01-27).
         has +python3: 1
has py dynamic module: 0
     Current FileType:
Third Party Providers: []
       Global Options:
    let g:clap#autoload_dir = '~/.local/share/nvim/plugged/vim-clap/autoload'
    let g:clap#provider_alias = {'gfiles': 'git_files', 'hist:': 'command_history', 'hist/': 'search_history'}
    let g:clap_disable_bottom_top = 0
    let g:clap_enable_icon = 0
    let g:clap_forerunner_status_sign = {'done': '•', 'running': '!', 'using_cache': '*'}
    let g:clap_insert_mode_only = v:false
    let g:clap_no_matches_msg = 'NO MATCHES FOUND'
    let g:clap_open_action = {'ctrl-v': 'vsplit', 'ctrl-x': 'split', 'ctrl-t': 'tab split'}
    let g:clap_popup_border = 'rounded'
    let g:clap_search_box_border_style = 'nil'
    let g:clap_search_box_border_symbols = {'nil': ['', ''], 'curve': ['', ''], 'arrow': ['', '']}
  Provider Variables:
    let g:clap_providers_relaunch_code = '@@'

To Reproduce
Steps to reproduce the behavior:

Create the minimal vimrc min.vim:

set nocompatible
set runtimepath^=/path/to/vim-clap
syntax on
filetype plugin indent on

Start neovim with command: nvim -u min.vim

Type :Clap files

Navigate to any file using <C-j>, <C-k> or arrow keys and immediately press Enter before the file preview shows up

The file opens but vim shows errors

Expected behavior
No errors
Screenshots

Additional context
nvim -V1error.log logs the following:
Error detected while processing function clap#handler#sink[16]..clap#handler#internal_exit[3]..clap#exit[1]..clap#_exit[2]..clap#forerunner#stop[2]..clap#job#stop:
line    1:
E900: Invalid channel id
"INSTALL.md" 87L, 3798C
Reading ShaDa file "~/.local/share/nvim/shada/main.shada" marks
Error detected while processing function <lambda>4[1]..clap#provider#files#on_move_impl[1]..clap#preview#file[12]..<SNR>55_show_file_props[3]..clap#preview#highlight_header[3]..<SNR>27__goto_win:
line    1:
E716: Key not present in Dictionary: winid)
Error detected while processing function <lambda>4[1]..clap#provider#files#on_move_impl[1]..clap#preview#file[12]..<SNR>55_show_file_props[3]..clap#preview#highlight_header[3]..<SNR>27__goto_win:
line    1:
E116: Invalid arguments for function win_gotoid
Writing ShaDa file "~/.local/share/nvim/shada/main.shada"

It works now. Thanks! :)


add featured image paramater

It looks like the best way to do this is using frontmatter to define the featured image
featured_image: /path/to/image.jpg

But featured images should probably be thumbnails with the intent of using them in a list of articles. I don't think it should be used for the OG image (#2)

https://discourse.gohugo.io/t/displaying-featured-images/10520
https://makewithhugo.com/thumbnail-images-on-your-hugo-blog-posts/
https://babichmorrowc.github.io/post/adding-featured-images-to-posts/

c5b118d85536f41bb8530b9012b8e57f5c71faef
cbdf1cf88fc97da551ab921ea6ade9c106a2e6b5


File selector for local music doesn't show files

Nexus 6 on 7.1.1

👍 fixed it, will be deployed in the next minor release


A container containing containers

Some of my routes are getting quite large and I was wondering if it is possible to have a container that holds, say, four other containers which all have their own state/reducer/selectors etc.
In the main container I would just declare them without props or anything like so:
  <MainContainer>
    <SubContainer1 />
    <SubContainer2 />
    <SubContainer3 />
    <SubContainer4 />
  </MainContainer>

Can I get this functionality "out of the box"? Otherwise I'm thinking of having MainContainer just import the reducers from each SubContainer and use combinereducers with all sub reducers, would this be a good approach?

const rootRoute = {
  component: App,
  childRoutes: createRoutes(store),
};

const render = (messages) => {
  ReactDOM.render(
    <Provider store={store}>
      <LanguageProvider messages={messages}>
        <Router
          history={history}
          routes={rootRoute}
          render={
            // Scroll to top when going to a new page, imitating default browser
            // behaviour
            applyRouterMiddleware(useScroll())
          }
        />
      </LanguageProvider>
    </Provider>,
    document.getElementById('app')
  );
};

You can see here that we create a rootRoutes that itself contains  createRoutes
/app/routes.js
where createRoutes is basically
  return [
    {
      path: '/',
      name: 'home',
      getComponent(nextState, cb) {
        const importModules = Promise.all([
          import('containers/HomePage/reducer'),
          import('containers/HomePage/sagas'),
          import('containers/HomePage'),
        ]);

        const renderRoute = loadModule(cb);

        importModules.then(([reducer, sagas, component]) => {
          injectReducer('home', reducer.default);
          injectSagas(sagas.default);

          renderRoute(component);
        });

        importModules.catch(errorLoading);
      }
]
`

so you could either add more routes inside that list or create another object similar to `rootRoute` and add it inside the `<Router routes={rootRoute, customRoutes}`

@bentobenti Not sure if I follow. If I would want the index route (path: '/') to render four other containers, where in createRoutes would I inject the reducers, sagas and containers? Do I simply add another object in the array that createRoutes returns with the same path? Like so:
return [
  {
    path: '/',
    name: 'home',
    getComponent(nextState, cb) {
      const importModules = Promise.all([
        import('containers/HomePage/reducer'),
        import('containers/HomePage/sagas'),
        import('containers/HomePage'),
      ]);

      const renderRoute = loadModule(cb);

      importModules.then(([reducer, sagas, component]) => {
        injectReducer('home', reducer.default);
        injectSagas(sagas.default);

        renderRoute(component);
      });

      importModules.catch(errorLoading);
    },
  }, {
    path: '/',
    name: 'subContainer',
    getComponent(nextState, cb) {
      const importModules = Promise.all([
        import('containers/SubContainer/reducer'),
        import('containers/SubContainer/sagas'),
        import('containers/SubContainer'),
      ]);

      const renderRoute = loadModule(cb);

      importModules.then(([reducer, sagas, component]) => {
        injectReducer('subContainer', reducer.default);
        injectSagas(sagas.default);

        renderRoute(component);
      });

      importModules.catch(errorLoading);
    },
  },
]

Having the same problem, what ended up working out for you?

@MedElfadhelELHACHEMI I never received a reply to this and haven't been able to solve it, although I haven't had much time to look into it. I don't think we are the first ones who need this functionality, it seems rather unlikely that no one has done fully self-contained containers within another container before.
The problem for me with just having presentational components as children of large containers is that too much state concerning different parts of the page is added to the same container. This causes the container to be quite incohesive and also is a pain when parts of a container should be moved to another route, since parts of the reducer, actions, constants, selectors, index (imports, declarations, mapStateToProps, mapDispatchToProps and render logic) have to be copy pasted to the new component.

@williamgranli I'd also like to know a solution. I'm using material-ui-dialogs to provide a modal dialog that appears above the list, but am finding data handling trying, as unfortunately the subcontainer is defined within the parent container. At present I just pass data back and forth, but I would prefer that it has it's own tuple.

I face a problem that, I want access one child container's reducer in other container's
How do I register reducer like below :
parent reducer : A
child 1 reducer: A.child1
child 2 reducer: A.child2
PS: I am using react - router v4
need
  const withReducer = injectReducer({ key: key, reducer });
  const withSaga = injectSaga({ key: key, saga });

Please upgrade to the latest RBP version.
Containers can contain its own reducers, sagas, selecters and dispatch actions, if you want use them cross containers you should design them as global.
RBP use RR4 you can contain any container in another container and use react-loadable to load container asynchronously.
I will close it, if it is not what you want feel free to open a new discussion :)


Help ! - AttributeError: module 'azure.functions_worker' has no attribute 'start_async' error on >func host start

I am following the below documentation to create the first Python Http trigger function.
https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-python
I get an error :- AttributeError: module 'azure.functions_worker' has no attribute 'start_async'. when trying to run func host start.  I am unable to proceed further
I have the below versions installed
Python 3.6, node  v10.15.1, npm -- v6.4.1
Find below the detailed error :-
[07/02/2019 17:12:18] Traceback (most recent call last):
[07/02/2019 17:12:18] Traceback (most recent call last):
[07/02/2019 17:12:18]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:18]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 46, in
[07/02/2019 17:12:18]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:18]     main()
[07/02/2019 17:12:18] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:18]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:18]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:18] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:19] Language Worker Process exited.
[07/02/2019 17:12:19] python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.
[07/02/2019 17:12:19] Starting language worker process:python  "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py" --host <IP_ADDRESS> --port 63752 --workerId 4a387359-109a-4fb2-a9d1-bd1e857d2f02 --requestId 5689c9d4-f79b-4d22-b35c-22c757ba0d46 --grpcMaxMessageLength 134217728
[07/02/2019 17:12:19] python process with Id=15956 started
[07/02/2019 17:12:19] Traceback (most recent call last):
[07/02/2019 17:12:19] Traceback (most recent call last):
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 46, in
[07/02/2019 17:12:19]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:19]     main()
[07/02/2019 17:12:19] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:19]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:19] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:19] Language Worker Process exited.
[07/02/2019 17:12:19] python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.
[07/02/2019 17:12:19] Starting language worker process:python  "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py" --host <IP_ADDRESS> --port 63752 --workerId 31763193-3e9d-4105-a682-f2c4b63a922f --requestId e6e4f881-b974-4a97-af5a-3ffe2d0a9160 --grpcMaxMessageLength 134217728
[07/02/2019 17:12:19] python process with Id=17880 started
[07/02/2019 17:12:19] Traceback (most recent call last):
[07/02/2019 17:12:19] Traceback (most recent call last):
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 46, in
[07/02/2019 17:12:19]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:19]     main()
[07/02/2019 17:12:19] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:19]   File "C:\Users\Test\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[07/02/2019 17:12:19]     return aio_compat.run(azure.functions_worker.start_async(
[07/02/2019 17:12:19] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[07/02/2019 17:12:19] Language Worker Process exited.
[07/02/2019 17:12:19] python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.
[07/02/2019 17:12:23] Host lock lease acquired by instance ID '000000000000000000000000D8971BE3'.

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

ID: 4a509bdc-f8b8-8488-7ab4-2c03cae6bfb5
Version Independent ID: 3174a893-394c-c622-6c96-0b89955edfb5
Content: Create your first Python function in Azure
Content Source: articles/azure-functions/functions-create-first-function-python.md
Service: functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

Thanks for the feedback! We are currently investigating and will update you shortly.

Do i need to install additional modules - azure.functions_worker ? . Where can i find these modules ?

Any feedback on this please ?

@Infoseeker I assume you are running in a venv.

@asavaritayal who wrote this article.

Yes, it works only on a linux environment. I am trying to install the tools using choclatey for windows.

Meet the same error in Win 10, net core 2,2, python 3.6 environment! Need help!

UnInstall azure cli core tools and install using  choclatey
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#v2
It works fine !. Hope that helps.

@Infoseeker Glad to hear the issue is resolved and you're unblocked.
We will now proceed to close this thread for now. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

UnInstall azure cli core tools and install using choclatey
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#v2
It works fine !. Hope that helps.

Thanks for your reply but it doesn't help. I still get the message like followings:
System.Private.CoreLib: Exception while executing function: Functions.HttpTrigger. System.Private.CoreLib: Failed to start language worker for: python. One or more errors occurred. (python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async') (python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async') (python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'). python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.

Still failing.
Today I tried to run azure function in python.
I am working on Windows.

Python 3.6 32-Bit version
<EMAIL_ADDRESS>
Created project using:
func init pythonProject --worker-runtime python
Created python function using:
func new --language python --template "HttpTrigger" --name myFunction
All this steps succeed:
Next tried to host them using:
func host start
And when all succeed got message:
[14.02.2019 19:37:26] Traceback (most recent call last):
[14.02.2019 19:37:26] Traceback (most recent call last):
[14.02.2019 19:37:26]   File "C:\Users\powo\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[14.02.2019 19:37:26]   File "C:\Users\powo\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 46, in <module>
[14.02.2019 19:37:26]     return aio_compat.run(azure.functions_worker.start_async(
[14.02.2019 19:37:26]     main()
[14.02.2019 19:37:26] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[14.02.2019 19:37:26]   File "C:\Users\powo\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[14.02.2019 19:37:26]     return aio_compat.run(azure.functions_worker.start_async(
[14.02.2019 19:37:26] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[14.02.2019 19:37:26] Language Worker Process exited.
[14.02.2019 19:37:26] python exited with code 1
 AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.```

Any thoughts?

@asavaritayal any thoughts?

Hi @wolszakp I have gone through the steps again with specs below and didn't run into any issues:
Python v3.6.8
Node v10.15.3
Npm 6.4.1
Core Tools 2.4.419
Closing as no faulty steps were found. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

Thanks @mike-urnun-msft
So the problem was with python 3.6.0
Upgrading python to 3.6.8 solve the issue.
https://github.com/Azure/azure-functions-core-tools/issues/1050
It will be worth to have this information in the docs.

This issue appeared for me on a project that I've been working on for a while.
The only thing I changed was updating azure-functions-core-tools on Friday in another project.
I've been using python 3.7.2 and these packages:
asn1crypto==0.24.0
atomicwrites==1.3.0
attrs==19.1.0
azure-common==1.1.18
azure-functions==1.0.0b3
azure-functions-worker==1.0.0b4
azure-storage-blob==1.5.0
azure-storage-common==1.4.0
certifi==2019.3.9
cffi==1.12.2
chardet==3.0.4
colorama==0.4.1
coverage==4.5.3
cryptography==2.6.1
grpcio==1.14.2
grpcio-tools==1.14.2
idna==2.8
more-itertools==6.0.0
pluggy==0.9.0
protobuf==3.7.0
py==1.8.0
pycparser==2.19
pydevd==1.6.0
pytest==4.3.1
python-dateutil==2.8.0
pytz==2018.9
requests==2.21.0
six==1.12.0
urllib3==1.24.1
XlsxWriter==1.1.2

and
<EMAIL_ADDRESS><EMAIL_ADDRESS>

This is also an issue for me with the following version:
Python v3.6.8
Node v11.13.0
Npm 6.9.0
Core Tools 2.7.1158
[5/22/2019 2:15:10 PM] Traceback (most recent call last):
[5/22/2019 2:15:10 PM]   File "C:\Program Files (x86)\Nodist\bin\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[5/22/2019 2:15:10 PM]     return aio_compat.run(azure.functions_worker.start_async(
[5/22/2019 2:15:10 PM] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[5/22/2019 2:15:10 PM] Traceback (most recent call last):
[5/22/2019 2:15:10 PM]   File "C:\Program Files (x86)\Nodist\bin\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 46, in
[5/22/2019 2:15:10 PM]     main()
[5/22/2019 2:15:10 PM]   File "C:\Program Files (x86)\Nodist\bin\node_modules\azure-functions-core-tools\bin\workers\python\worker.py", line 37, in main
[5/22/2019 2:15:10 PM]     return aio_compat.run(azure.functions_worker.start_async(
[5/22/2019 2:15:10 PM] AttributeError: module 'azure.functions_worker' has no attribute 'start_async'
[5/22/2019 2:15:10 PM] Language Worker Process exited.
[5/22/2019 2:15:10 PM] python exited with code 1
AttributeError: module 'azure.functions_worker' has no attribute 'start_async'.

Hi @wolszakp I have gone through the steps again with version specs below and didn't run into any issues:
Python v3.6.8
Node v10.15.3
Npm 6.4.1
Core Tools 2.4.419
Closing as no faulty steps were found. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

It is worth mentioning core tools version in docs @mike-urnun-msft


add unittest for #243

Coverage decreased (-0.6%) to 80.501% when pulling c1ee30d57c070b1f127370e3cb1768017fa50550 on bugfix into 8929650e0f33b8499626e243ec620c5c9811c058 on master.


Presence list API response does not match m.presence schema

In r0.4.0 of the client-server spec, the schema of the m.presence event is shown as:
{
    "content": {
        "avatar_url": "mxc://localhost:wefuiwegh8742w",
        "currently_active": false,
        "last_active_ago": 2478593,
        "presence": "online"
    },
    "sender": "@example:localhost",
    "type": "m.presence"
}

However, the response of the presence list API is shown with a different structure for the event:
[
  {
    "content": {
      "last_active_ago": 395,
      "presence": "offline",
      "user_id": "@alice:matrix.org"
    },
    "type": "m.presence"
  },
  {
    "content": {
      "last_active_ago": 16874,
      "presence": "online",
      "user_id": "@marisa:matrix.org",
      "currently_active": true
    },
    "type": "m.presence"
  }
]

I think the latter is wrong and from an older version of the spec before "user_id" was changed to "sender". Notice that "user_id" is inside the "content" object in the API response whereas "sender" is in the top-level object in the event. "avatar_url" is also missing in the API response.

Presence lists were removed: https://github.com/matrix-org/matrix-doc/pull/1819


Gate manager doesn't see list of suppliers

Steps:

As an admin, go to supplier management, see list of suppliers
As a user with a gate_manager role, go to supplier management
See that list is not populated

Technical details:
I assume it's a permission on the server side, so might be an easy fix (use the multi-role for suppliers)

On it.

done


Investigate running batch_processing during CI

Objective: to run batch_processing.sh in the CI, preferably only on builds for the masterbranch in order to increase confidence in the software.
We would want:

To run concurrently as much as possible to avoid increasing the time of the build
Validate the results (other than exit code) of the script somehow.

TODO:

[x] How to run? Logic in .ci.sh vs build stages?
[x] When to run? master branch, release branch?
[ ] How to validate results of batch processing?

Started to look at this. Initially I added a background job inside the script right after the installation and collected the results at the end:
View diff

diff --git a/.ci.sh b/.ci.sh
index 883b2b5b..7fd1fa6a 100755
--- a/.ci.sh
+++ b/.ci.sh
@@ -14,6 +14,10 @@ ls -lA bin  # Make sure all binaries and aliases are there
 source python/etc/profile.d/conda.sh  # to be able to call conda
 conda activate venv_sct  # reactivate conda for the pip install below

+echo "*** Running batch_processing.sh in the background ***"
+./batch_processing.sh > batch_proc.log 2>&1 &
+bproc_pid=$!
+
 echo *** UNIT TESTS ***
 pytest

@@ -30,6 +34,20 @@ echo *** ANALYZE CODE ***
 pip install pylint
 bash -c 'PYTHONPATH="$PWD/scripts:$PWD" pylint -j3 --py3k --output-format=parseable --errors-only $(git ls-tree --name-only -r HEAD | sort | grep -E "(spinalcordtoolbox|scripts|testing).*\.py" | xargs); exit $(((($?&3))!=0))'

+echo "Waiting for batch_processing.sh to finish"
+wait $bproc_pid
+bproc_ret=$?
+
+echo "batch_processing.sh done. Results:"
+echo `tail -14 batch_proc.log`
+echo "Return code of batch_processing.sh: ${bproc_ret}"
+
+if [ $bproc_ret -ne 0 ]; then
+  echo "batch_processing.sh exited with non-zero! Full log:"
+  echo `cat batch_proc.log`
+  exit $bproc_ret
+fi
+
 #
 # echo *** BUILD DOCUMENTATION ***
 # pip install sphinx sphinxcontrib.programoutput sphinx_rtd_theme

While this works ok, it does add run time to the script since batch_processing.sh is quite long. Another issue is that managing the concurrent steps of the build from the .ci.sh script is not ideal for a few reasons:

This bash script will grow and become complex as build needs grow
Some dependencies live at a higher layer. For example if we want to run batch_processing only when building master (and not during PRs), there is no way straightforward way to know this from within the .ci.sh script (at least from a quick search)
Need to manage concurrency at script level (no concurrency at the moment)

I looked at Travis's capabilities and this problem is solved using build stages (https://docs.travis-ci.com/user/build-stages/). Build stages would make our build process a lot simpler, basically we would have:

First stage is installation
Second stage is running the test scripts (in parallel, managed by travis). This would include unit test, functional tests, batch_processing, linters etc
Potential third stage executed only for release builds (release branch). Would include building docs, deployment stuff etc. To be figured out.

With this scheme we would have one script to run unit tests, one script to run processing, etc. Also we would speed up the current build by parallelizing tests (right now we are running unit tests, functional tests and linting all sequentially, why?).
What do you think @jcohenadad? Was this considered in the past?
@kousu @joshuacwnewton @cfhammill thoughts?

Potential con:

It is nice to have a .ci.sh that contains all build logic and can be run locally in one step.
Too much travis specific logic can make it more difficult to transition to a different CI solution later

With this scheme we would have one script to run unit tests, one script to run processing, etc. Also we would speed up the current build by parallelizing tests (right now we are running unit tests, functional tests and linting all sequentially, why?).
What do you think @jcohenadad? Was this considered in the past?

nice suggestion. Speed might not necessarily increase though, because AFAIR Travis with free license limits to two simultaneous instances of macOS (so if we add more macOS instances, for unit testing, pylint, etc., they will probably run sequentially). Apart from that, this suggestion makes sense to me, but I might not be aware of all implications.

Stages run within the same job, so assuming a travis job has more than one CPU core available it would speed things things up to setup parallel stages.
It's not clear how many CPU cores are available for our jobs, but at a quick glance it seems like it's using google compute engine with 2vcpu. This may not yield significant improvements..

Based on an initial assessment it appears that trying to configure batch_processing to run in parallel may not yield significant improvements in the current build environment. I propose that for now we simply add it to the end of the ci script, configured to run only on the master branch. We can revisit the performance improvements later.
Are you ok with that @jcohenadad? Also what would be a good way to validate the results? If we have a set of "expected" values we could measure relative error and compare against a certain limit? As a first step it's already good to know that it runs without crashing.

Yes, I think this is a reasonable approach. And yes, definitely running it on the master branch only is the best decision: it will not hamper our rapid developments on a branch, it will test across more platforms, and once merged on master, CI time does not really matter (ie: it is already merged, so we can focus on something else while Travis is doing its thing).
Re: how to validate: yes, the set of expected values are presently listed at the end of the script (so far we only do a visual assessment). So that could be automatized. We should also take this opportunity to add more outputs (I can definitely help with that).

I looked at Travis's capabilities and this problem is solved using build stages (https://docs.travis-ci.com/user/build-stages/). Build stages would make our build process a lot simpler, basically we would have:
* First stage is installation

* Second stage is running the test scripts (in parallel, managed by travis). This would include unit test, functional tests, batch_processing, linters etc

* Potential third stage executed only for release builds (`release branch`). Would include building docs, deployment stuff etc. To be figured out.

To clarify a point, you can't really have an "install stage" because --  https://docs.travis-ci.com/user/build-stages/#data-persistence-between-stages-and-jobs

jobs do not share storage, as each job runs in a fresh VM or container.

So each test run needs to do its own full install. But you can get halfway there by using caching or maybe adding an external server for intermediate artifacts. ((Incidentally, Github Actions provides one).

(right now we are running unit tests, functional tests and linting all sequentially, why?).

Yeah! This seems silly. Split it up!

To clarify a point, you can't really have an "install stage" because -- https://docs.travis-ci.com/user/build-stages/#data-persistence-between-stages-and-jobs

:facepalm:  Good catch, completely missed this..

Small obversation I haven't seen mentioned yet: Since batch_processing.sh contains 6 separate processing pipelines (t1/t2/t2s/mt/dmri/fmri), could we split up batch_processing.sh itself and run each pipeline concurrently?

Since batch_processing.sh contains 6 separate processing pipelines (t1/t2/t2s/mt/dmri/fmri), could we split up batch_processing.sh itself and run each pipeline concurrently?

batch_processing was originally developed as a guideline for our users. The idea is that they would open the script and sequentially run each SCT call line by line, while trying to understand what they do and how they relate to each other. So while the script could in principle be parallelized, it would also introduce confusion for our users.
Moreover, some inputs (eg warp_* in mt, dwi) are generated by outputs from previous lines (eg register to template for t1). So parallelizing across contrasts is not that trivial.

Responding to https://github.com/neuropoly/spinalcordtoolbox/issues/2888#issuecomment-694247228:

Re: how to validate: yes, the set of expected values are presently listed at the end of the script (so far we only do a visual assessment). So that could be automatized. We should also take this opportunity to add more outputs (I can definitely help with that).

This more recent https://github.com/neuropoly/spinalcordtoolbox/issues/3163#issuecomment-759073007 from @kousu/@jcohenadad is relevant:

Julien doesn't think there's a safe way to automate comparing the numbers, but we can at least move it to cron so that we have a ready point of reference; maybe we can even make up some sort of badge or auto-committed "last output" file, which can then be automatically pulled into the changelog.

What if we still tried to automate comparing the values (and showed this on PRs), yet we don't make it a "Required" check. That way, in some cases it will display an error on CI checks, but it won't halt merging, so we can decide on a per-PR basis whether or not the difference is significant enough to address.

Responding to https://github.com/neuropoly/spinalcordtoolbox/issues/2888#issuecomment-694247228:

Re: how to validate: yes, the set of expected values are presently listed at the end of the script (so far we only do a visual assessment). So that could be automatized. We should also take this opportunity to add more outputs (I can definitely help with that).

This more recent https://github.com/neuropoly/spinalcordtoolbox/issues/3163#issuecomment-759073007 from @kousu/@jcohenadad is relevant:

Julien doesn't think there's a safe way to automate comparing the numbers, but we can at least move it to cron so that we have a ready point of reference; maybe we can even make up some sort of badge or auto-committed "last output" file, which can then be automatically pulled into the changelog.

What if we still tried to automate comparing the values (and showed this on PRs), yet we don't make it a "Required" check. That way, in some cases it will display an error on CI checks, but it won't halt merging, so we can decide on a per-PR basis whether or not the difference is significant enough to address.

Something else I came across that might be useful here: The Upload-Artifact v2 GitHub Action.

This uploads artifacts from your workflow allowing you to share data between jobs and store data once a workflow is complete.
See also download-artifact.

I think we could use this to cache batch_processing.sh results between tests and use that as a baseline for comparison.
See also: GitHub Actions > Guides > Storing workflow data as artifacts.

Something else I came across that might be useful here: The Upload-Artifact v2 GitHub Action.

This uploads artifacts from your workflow allowing you to share data between jobs and store data once a workflow is complete.
See also download-artifact.

I think we could use this to cache batch_processing.sh results between tests and use that as a baseline for comparison.
See also: GitHub Actions > Guides > Storing workflow data as artifacts.

What if we still tried to automate comparing the values (and showed this on PRs), yet we don't make it a "Required" check. That way, in some cases it will display an error on CI checks, but it won't halt merging, so we can decide on a per-PR basis whether or not the difference is significant enough to address.

Actually, thinking more about this: we could (should) verify the numbers and make it a requirement. As Nick pointed out (i forget when and where), we don't change segmentation/registration/extraction methods very often, and if we do, we can always update the ground truth data. It would feel safer to always verify those numbers.

What if we still tried to automate comparing the values (and showed this on PRs), yet we don't make it a "Required" check. That way, in some cases it will display an error on CI checks, but it won't halt merging, so we can decide on a per-PR basis whether or not the difference is significant enough to address.

Actually, thinking more about this: we could (should) verify the numbers and make it a requirement. As Nick pointed out (i forget when and where), we don't change segmentation/registration/extraction methods very often, and if we do, we can always update the ground truth data. It would feel safer to always verify those numbers.


Mirror front camera output

Hey again @enebin! I'd like to be able to mirror the front camera output but not the back camera (for the photo capture not the actual preview). With AVFoundation, I think you can do it using the AV connection. How can I do it using this library?

Managed to get it working with this piece of code. I think it would be good if you could expose photoOutput
extension VideoContentViewModel {
    struct MirrorTuner: AespaSessionTuning {
        func tune<T>(_ session: T) throws where T : AespaCoreSessionRepresentable {
            let output = session.avCaptureSession.outputs.first {
                $0 as? AVCapturePhotoOutput != nil
            }

            if let photoOutput = output as? AVCapturePhotoOutput {
                if let photoOutputConnection = photoOutput.connection(with: .video) {
                    photoOutputConnection.automaticallyAdjustsVideoMirroring = false
                    photoOutputConnection.isVideoMirrored = true
                }
            }
        }
    }
}

Hmm this doesn't quite work when I switch from the front camera to the back camera and then back to the front camera. It stops the mirroring on the photo output image


Smart quotes in footer links, to mirror those in buyer app

Doing @quis's dirty work for him... see https://github.com/alphagov/digitalmarketplace-buyer-frontend/pull/25 (already merged on buyer app).

You’re attention to detail is commendable, Kev.
👍


Use primary toggle on desired state page for Recompile

Currently there is no visual difference between a filter selection box and the recompile action. It should become a button with a dropdown. This is also the primary action, so it should be marked as such.
See this link for the patternfly component:
https://www.patternfly.org/v4/components/dropdown/#primary-toggle
The button should also be placed after the compare component.

Hey team! Please add your planning poker estimate with ZenHub @andraskvr @bartv @Stijnkool


My Boy! - GBA Emulator

MyBoy! was recently updated and the start arguments in Daijisho need a slight change to make it work again.
Change {file.path} to {file.uri}
EDIT
I was able to make it work in Android 12 but it shows an error Unable to find explicit activity on Android 13 even in the old version of My Boy!.

https://github.com/TapiocaFox/Daijishou/pull/420
thanks @Jetup13

Note that this doesn't fix the Android 13 issue. PPSSPP is having a similar issue when launching a game from a front-end on Android 13. Unfortunately I don't own an Android 13 device. Hopefully someone else knows that solution

Note that this doesn't fix the Android 13 issue. PPSSPP is having a similar issue when launching a game from a front-end on Android 13. Unfortunately I don't own an Android 13 device. Hopefully someone else knows that solution

oh shoot, issue reopened then.

Having the same issue with Myboy and MyOldBoy. Using andriod 13. Even changing the path to uri doesn't work

If you are using myBoy!
Go daijisho settings
Locate gba - com.fastemulator.gba
make sure it is file.path. It will read ur games in external SD card as well.
 - d {file.path}

This didn't work for me. I'm on android 13, Poco X3 PRO

I am also having this issue. Android 13, Samsung Galaxy S22. I've made sure the player has file.path as well as ensuring the ROMs are unzipped in the path.

I have the same problem in Android 13, i got a redmi note 10 pro and can't play GBA in My Boy! with daijisho.

Any fix? Having this issue on the Odin 2 Pro.

Still have the same problem
Any progression ?


Fix convertKilowattsToHorsepower function

There is currently a method called convertKilowattsToHorsepower that lives in /lib/convertKilowattsToHorsepower.js.
It is incomplete and needs to be fixed!
The method should take a number in kilowatts and return the equivalent in horsepower.
Acceptance Criteria:
Running yarn test convertKilowattsToHorsepower results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.
Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.

I'll work on this.


LFS data quota issues

Hi, thank you for open-sourcing your work with a permissive license. However, it appears the project is big and a lot of the files are stored in the LFS. Cloning the repository leads to the following error:
This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.

As far as I understand, right now it's impossible to clone the project from the GitHub servers. If the development for this project is stopped, could you please pack it and re-upload it to a cloud hosting service, such as Google Drive, MEGA, or even temporarily to something like gofile.io?

@ArakiSatoshi @Nokreb I do not know how to resolve this issue as Github LFS charges for bandwidth, and I do not wish to pay for bandwidth of downloads for all future downloads.
The primary code for this project lies in Source/StarlightWesternDemo with the respective cpp files there. A majority of the files in Content is Unreal Engine asset content that can be reacquired through the Epic Games Asset Store or Fab when it's released. There are a few Starlight specific blueprints hosted in LFS, and I'll look into how to retrieve those and host them normally without Github LFS as they should be small in filesize.

Thank you for answer. May be you can upload essential files on MEGA ?


HttpClientConfig setParams returns new HttpClientConfig object which does not respect other config settings

When configuring HttpClientConfig, methods such as httpClientFactory return a new HttpClientConfig object constructed using all current configuration options (params, multipart mode, instance reuse). However, setParam, addParams, and withParams return a new HttpClientConfig with only the new parameters set, other configurations are not persisted.
This means that if you want to configure multiple aspects of a HttpClientConfig you need to make sure setParams is the first call, otherwise it will wipe out all previous ones:
RestAssured.config = RestAssured.config()
                .httpClient(
                        HttpClientConfig.httpClientConfig()
                                .setParam("http.protocol.cookie-policy", "compatibility")
                                .httpClientFactory(new HttpClientConfig.HttpClientFactory() {
                                    @Override
                                    public HttpClient createHttpClient() {
                                        return httpClient;
                                    }
                                })
                );

It would make sense for this to work irrespective of order:
RestAssured.config = RestAssured.config()
                .httpClient(
                        HttpClientConfig.httpClientConfig()
                                .httpClientFactory(new HttpClientConfig.HttpClientFactory() {
                                    @Override
                                    public HttpClient createHttpClient() {
                                        return httpClient;
                                    }
                                })
                               .setParam("http.protocol.cookie-policy", "compatibility")
                );

However in this case, the configuration of a custom httpClientFactory is lost.

I also noticed there is a related bug in the addParams method, which causes only the new params to be added to the new HttpClientConfig object, rather than creating an object creating the existing params and the new ones


Create a gitbook-style website for the Rusoto project

Per the discussion in #353, we might want to establish a gitbook-style website for the project to host documentation/tutorials.
I'll start working on a prototype version shortly.

I attempted to create the GitBook through their website, but it looks like that through that method I can only publish the website to https://indiv0.gitbooks.io/rusoto/content/. Additionally, we can't get a custom domain on GitBooks unless we have a paid account. However, according to their website GitBooks offers the paid service to open source projects for free, so I've sent them an email asking about that.
In the meantime, I'm going to configure repo to use Github pages to publish the website, which means it should appear at https://rusoto.github.io/, and we should be able to set a CNAME so we can get a custom domain.
The only downside to this is that edits must be done locally via the gitbook-cli ruby gem (i.e., we can't use the GitBook-hosted WYSIWYG editor).
Once GitBook gets back to me, if we get the account then migrating back to using their service is easy (just re-link the repo to the book and delete the gh-pages code).

Success! A barebones site is up and running at https://rusoto.github.io/. I've configured it as mentioned above (GitBook-based, developed locally, deployed using GitHub Pages). Travis CI performs the build and publishes the built website. The source is on the source branch, and the published pages are on the master branch (due to a quirk of how GitHub handles organization pages). I'll stop force pushing since it's working :)
I'll be tweaking the configuration a bit (adding more code-specific plugins, analytics, etc) before writing any content, but I had a few questions first.

@matthewkmayer @adimarco @jimmycuadra how are we going to handle domains? Currently, the site gets published to https://rusoto.github.io, but we probably want to get our own domain (at least at some point). Both rusoto.rs and rusoto.org are available if you want to register them. If you choose to do so, please create two A records for the root domain, one for <IP_ADDRESS> and one for <IP_ADDRESS>. Additionally, if you go with a domain other than rusoto.rs let me know so I can update the CNAME file.
How do we plan to structure the repo? What's included? Is it just an overview of how to use rusoto in your project, or do we add documentation regarding codegen/helpers?

Anything else you want handled while I'm working on this? Any new issues should probably be opened on the repo's issues page.

Also, once the GitBook is ready, we probably want to add a link to it from the main README.md.

GitHub is currently doing something weird with the domain/CNAME stuff (got a 301 redirect to rusoto.rs from rusoto.github.io, even though the custom domain should be disabled).
Could just be some changes failing to propagate. I'll look into it in the morning.

FWIW, I've managed to keep the integration with GitBooks enabled. The modifications from the GitHub repo are synced to the GitBooks website and vice versa. We can also use the WYSIWYG editor on GitBooks (provided you specify the right branch), but I'd recommend against this since due to my having added linebreaks to the source markdown it appears weird in the editor (we should pick either using the editor or the CLI for changes because using both will be frustrating [I vote CLI]). That said, if any of you want collaborator access on GitBooks (to make changes through there) just link your GitHub account to GitBooks and let me know.

I've added some basic documentation to the barebones page (https://github.com/rusoto/rusoto.github.io/pull/7). I've also moved discussion of migrating back to GitBooks and domain name registration to issues in the new repo (https://github.com/rusoto/rusoto.github.io/issues/8, https://github.com/rusoto/rusoto.github.io/issues/9). So I'm going to close this issue now as the original scope (creating a basic documentation website) is done. Further discussion/issue management should occur at the new repo.


Add can, canivore, and low battery alerts

Need to add same battery alert with battery scanner

I am going to pull this into the led branch for the low battery alert


Alternative control scheme, potentially closes issue #65

In this implementation simply press the alternative control scheme button once for an overview of the new controls as well an actual control change. Then again to change them back to regular controls. For now its just a button that does some logic in the background to change the controls in a toggle like fashion; in the future(possibly this week) I'd like a pretty little checkbox. Currently there is no bugs with this pull just aesthetically I would like know what would fit best for this kind of change. Anyways this is my first bug fix, I figured I would pick a repo I actually like; so please, be as concise you want regarding edits to these changes. Thanks Ben! Thanks for letting me work on this repo 👍

Awesome! Thanks for the contribution.
I'm not sure I like the idea of a switch to a different set of controls. It seems very inelegant to me. Let me have a think though, because perhaps there is a better way.
I wonder how many people actually use the second player...

Thanks a bunch anyway! I needed to do a PR for my assignment! But to be honest I want to finish this to completion. Please tell me any changes you'd like from my code 💃 . Also I think anyone that uses a smaller laptop would appreciate this update :D (like me)

One of the ideas I had was adding a checkbox for alternative controls inside the display controls button

Amazing! I'll get started on this as soon as I can! I'm just swamped, thank you in advance for the opportunity! @bfirsh

@hibyguy Thank you for the contribution! In the end I merged #136, which is more generic solution to the problem. Hope you don't take it the wrong way - I do appreciate your help. :)
If you're still up for helping out, there are a few ways that pull request could have been done better, which I noted in #149.

@hibyguy Thank you for the contribution! In the end I merged #136, which is more generic solution to the problem. Hope you don't take it the wrong way - I do appreciate your help. :)
If you're still up for helping out, there are a few ways that pull request could have been done better, which I noted in #149.

Hey  its np thanks for giving me a chance! :)


Player is falling when resume pause

https://user-images.githubusercontent.com/21050233/182414705-841feac4-37c2-4cf4-80f5-528f650ac8a4.mov
When pause
msg.post(msg.url('player#walker'), hash 'pause', {is_paused = true})
then load level from monarch
unpause
and player is fall :(

Please, provide a minimal reproducing project based on the example in this repo 🙏

Please, provide a minimal reproducing project based on the example in this repo 🙏
pause_bug.zip


Module PATH does not export NAME (imported by PATH)

I'm trying to import an external NPM dependency with rollup. In my case — but I also tried it with other libraries — it's lory.js, which also uses jsnext:main in the package.json:
npm install --save lory.js

// main.js
import { lory } from 'lory.js';

const loryInstance = lory(document.querySelector('.js-carousel'));

My rollup.config.js looks very similar to what's described in the rollup-plugin-babel documentation:
import babel from 'rollup-plugin-babel';
import nodeResolve from 'rollup-plugin-node-resolve';

export default {
  entry: 'main.js',
  dest: 'bundle.js',
  plugins: [
    nodeResolve(),
    babel({
      exclude: 'node_modules/**'
    })
  ]
};

Then, whenever I run rollup --config rollup.config.js, I get this error message:
The `this` keyword is equivalent to `undefined` at the top level of an ES module, and has been rewritten
Module PATH/node_modules/lory.js/dist/lory.js does not export lory (imported by PATH/main.js)

Is this a bug or the expected behaviour?
As a side note: I also tried to bundle it with browserify and it works, so it doesn't seem to be a problem with lory itself.

@demrks jsnext should be enabled by an option. module alternative is enabled by default.
https://github.com/rollup/rollup-plugin-node-resolve#usage
Error causes because of umd
(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory();
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else {
		var a = factory();
		for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
	}
})(this, function() {

this is not allowed inside modules according spec. If you still need to have a bundle this this version you can use context option of rollup which was realeased in the last rollup version.

Thanks, I already saw the jsnext option, but that didn't work either for some libraries. This is what I already tried with rollup.

Just jsnext option

import nodeResolve from 'rollup-plugin-node-resolve';

export default {
  entry: 'main.js',
  dest: 'bundle.js',
  plugins: [
    nodeResolve({
        jsnext: true
    })
  ]
};

==>
Error parsing PATH/node_modules/lory.js/src/lory.js: Unexpected token (214:19) in PATH/node_modules/lory.js/src/lory.js

Since I thought this might be caused by ES6 in src/lory.js, I tried to run it through babel:

import babel from 'rollup-plugin-babel';
import nodeResolve from 'rollup-plugin-node-resolve';

export default {
  entry: 'main.js',
  dest: 'bundle.js',
  plugins: [
    babel(),
    nodeResolve({
        jsnext: true
    })
  ]
};

==>
Error transforming PATH/node_modules/lory.js/src/lory.js with 'babel' plugin: Couldn't find preset "stage-0" relative to directory "PATH/node_modules/lory.js"

Then, I just dropped the jsnext option and tried to do it with and without the common js plugin

import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';

export default {
  entry: 'main.js',
  dest: 'bundle.js',
  plugins: [
    nodeResolve(),
    commonjs({
        include: 'node_modules/**'
    })
  ]
};

==>
Module PATH/node_modules/lory.js/dist/lory.js does not export lory (imported by PATH/main.js)

Is there anything in the documentation that I missed? The lory was just an example. It happens to some libraries too that use the UMD format, and all of them work with browserify.
Sorry for the confusion.


Change camera info using yaml file

Changing camera info from a yaml file, instead of using argparse

Hello @miguelriemoliveira
This issue is regarding lardemua/atom#935, in which I needed to change the intrinsic parameters of the cameras in the bag file.
This was a function already available on this repo, however, it used arguments from argparse, instead of the official yaml files.
To achieve this, I created a folder named src to host dependencies, on which I placed this previously created function:
https://github.com/miguelriemoliveira/rosbag_tools/blob/99f5e859f3ad2c0bd6281fcec7e1653586d94d1e/src/rosbag_tools/config_camera_intrinsics.py#L9-L97
This function is now called from the old file config_camera_intrinsics and the new config_camera_intrinsics_yaml.
This a change in repository organization, so this is in a separate branch.
If you agree, I will merge it.

Sure. go ahead.


Can't install in windows

Can't install in windows ,because pyjq is not work well:
`Installing collected packages: win-inet-pton, pyjq, pyroute2, pyperf2
Running setup.py install for pyjq ... error
error: subprocess-exited-with-error
× Running setup.py install for pyjq did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.9
copying pyjq.py -> build\lib.win-amd64-3.9
running build_ext
RefactoringTool: Refactored C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\gperf_fold_key_conv.py
RefactoringTool: Files that were modified:
RefactoringTool: C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\gperf_fold_key_conv.py
RefactoringTool: Refactored C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\gperf_unfold_key_conv.py
RefactoringTool: Files that were modified:
RefactoringTool: C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\gperf_unfold_key_conv.py
RefactoringTool: Refactored C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_egcb_data.py
RefactoringTool: Files that were modified:
RefactoringTool: C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_egcb_data.py
RefactoringTool: Refactored C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_fold_data.py
RefactoringTool: Files that were modified:
RefactoringTool: C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_fold_data.py
RefactoringTool: Refactored C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_property_data.py
RefactoringTool: Files that were modified:
RefactoringTool: C:\Users\kayro\AppData\Local\Temp\pip-install-xsqkx9_j\pyjq_082081dff55d4e96ae9d530c553df93b\dependencies\onig-6.9.0\src\make_unicode_property_data.py
error: [WinError 2] 系统找不到指定的文件。
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> pyjq
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.`

This is not a real issue, because Windows is not supported as platform. Pyperf2 relates on the linux netlink interface to configure networking. I'll update the documentation to make it clear that this a Linux only software.


Config flag to disable SLDS problems in .css files

Is your feature request related to a problem? Please describe.
As of the latest version of sfdx, VSCode is showing problems in LWC CSS files when a style definition matches an SLDS utility class:

This is incredibly annoying.
What are you trying to do
Disable this so I can work on CSS in peace.
Describe the solution you'd like
A config flag enabled somewhere to disable these warnings. I see no mention of this new feature in the release notes.

Please weigh in here, I raised that some time ago.
Also you can disable the SLDS Extension separately in VS Code.


[Integration] Chats and Prompts jump if to close "Report an issue" or "Request API key"

EPAM AI DIAL chat version
0.5.3
What happened?

Create chats and prompts
Open Report an issue form -> close in on X
Note that chats and prompts are refreshed -> please see the video

https://github.com/epam/ai-dial-chat/assets/111180458/7a4211c0-f4ba-4027-a6e3-d08878285ce8
Confidential information

[X] I confirm that do not share any confidential information

Verified on staging successfully