Standalone Binary not serving content

What happened?
I've been following instructions on how to build docker and generate an standalone binary from symfony project, then move it out to my local machine and then try to make it serve content. But as much I try it, it seems that source symfony project is not in the executable and also it seems to be serving my local paths, not the content in the executable itself.
I've even tried the demo project at https://github.com/dunglas/frankenphp-demo and still the same result...
When I try to execute console, this neither works:
./my-app php-cli bin/console
XXXX@PC-1003234:~/projects$ ./my-app php-cli bin/console

Warning: Unknown: Failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Failed opening required 'bin/console' (include_path='.:') in Unknown on line 0

what am I missing ? if instructions are wrong, they should be corrected.

Thanks !
Commands:
docker build -t static-app -f static-build.Dockerfile .

docker cp $(docker create --name static-app-tmp static-app):/go/src/app/dist/frankenphp-linux-x86_64 my-app ; docker rm static-app-tmp

./my-app php-server -l <IP_ADDRESS>:8081
neither
./my-app php-server -l <IP_ADDRESS>:8081 --worker public/index.php

static-build.Dockerfile:
FROM --platform=linux/amd64 dunglas/frankenphp:static-builder

# Copy your app
WORKDIR /go/src/app/dist/app
COPY . .

RUN apk update \
    && apk add php82-ctype \
    php82-iconv \
    php82-openssl \
    php82-session \
    php82-sodium \
    php82-dom \
    php82-xml \
    php82-tokenizer \
    php82-xmlwriter \
    php82-simplexml \
    php82-gd \
    php82-fileinfo

#RUN sed -i 's/php82/php83/g' /usr/bin/composer

RUN echo APP_ENV=prod > .env.local ; \
    echo APP_DEBUG=0 >> .env.local ;

RUN set -eux; \
    mkdir -p var/cache var/log; \
    chmod +x bin/console; sync;

RUN composer install  --no-dev -a
# --ignore-platform-reqs

COPY ./build-static.sh build-static-test.sh

# Build the static binary, be sure to select only the PHP extensions you want
WORKDIR /go/src/app/
RUN ./dist/frankenphp-linux-x86_64 version \
    export FRANKENPHP_VERSION=1.1.2 \
    export PHP_VERSION=8.2 \
    export EMBED=dist/app/ \
    export PHP_EXTENSIONS=ctype,iconv,pdo_sqlite,php82-simplexml \
    ./build-static-test.sh

Build Type
Standalone binary
Worker Mode
No
Operating System
GNU/Linux
CPU Architecture
x86_64
PHP configuration
phpinfo()
PHP Version => 8.2.17

System => Linux PC-1003234 <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64
Build Date => Mar 16 2024 08:41:44
Build System => Linux
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/8.2/cli
Loaded Configuration File => /etc/php/8.2/cli/php.ini
Scan this dir for additional .ini files => /etc/php/8.2/cli/conf.d
Additional .ini files parsed => /etc/php/8.2/cli/conf.d/10-opcache.ini,
/etc/php/8.2/cli/conf.d/10-pdo.ini,
/etc/php/8.2/cli/conf.d/20-calendar.ini,
/etc/php/8.2/cli/conf.d/20-ctype.ini,
/etc/php/8.2/cli/conf.d/20-exif.ini,
/etc/php/8.2/cli/conf.d/20-ffi.ini,
/etc/php/8.2/cli/conf.d/20-fileinfo.ini,
/etc/php/8.2/cli/conf.d/20-ftp.ini,
/etc/php/8.2/cli/conf.d/20-gettext.ini,
/etc/php/8.2/cli/conf.d/20-iconv.ini,
/etc/php/8.2/cli/conf.d/20-phar.ini,
/etc/php/8.2/cli/conf.d/20-posix.ini,
/etc/php/8.2/cli/conf.d/20-readline.ini,
/etc/php/8.2/cli/conf.d/20-shmop.ini,
/etc/php/8.2/cli/conf.d/20-sockets.ini,
/etc/php/8.2/cli/conf.d/20-sysvmsg.ini,
/etc/php/8.2/cli/conf.d/20-sysvsem.ini,
/etc/php/8.2/cli/conf.d/20-sysvshm.ini,
/etc/php/8.2/cli/conf.d/20-tokenizer.ini

PHP API => 20220829
PHP Extension => 20220829
Zend Extension => 420220829
Zend Extension Build => API420220829,NTS
PHP Extension Build => API20220829,NTS
Debug Build => no
Thread Safety => disabled
Zend Signal Handling => enabled
Zend Memory Manager => enabled
Zend Multibyte Support => disabled
Zend Max Execution Timers => disabled
IPv6 Support => enabled
DTrace Support => available, disabled

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

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

 _______________________________________________________________________

Configuration

calendar

Calendar support => enabled

Core

PHP Version => 8.2.17

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/lib/php/20220829 => /usr/lib/php/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/share/php => .:/usr/share/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 => -1 => -1
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
zend.signal_check => Off => Off

ctype

ctype functions => enabled

date

date/time support => enabled
timelib version => 2022.10
"Olson" Timezone Database Version => 0.system
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

exif

EXIF Support => enabled
Supported EXIF Version => 0220
Supported filetypes => JPEG, TIFF
Multibyte decoding support using mbstring => disabled
Extended EXIF tag formats => Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson

Directive => Local Value => Master Value
exif.decode_jis_intel => JIS => JIS
exif.decode_jis_motorola => JIS => JIS
exif.decode_unicode_intel => UCS-2LE => UCS-2LE
exif.decode_unicode_motorola => UCS-2BE => UCS-2BE
exif.encode_jis => no value => no value
exif.encode_unicode => ISO-8859-15 => ISO-8859-15

FFI

FFI support => enabled

Directive => Local Value => Master Value
ffi.enable => preload => preload
ffi.preload => no value => no value

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

ftp

FTP support => enabled
FTPS support => enabled

gettext

GetText Support => enabled

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 => glibc
iconv library version => 2.31

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.9.14
libXML Loaded Version => 20910
libXML streams => enabled

openssl

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.1.1f  31 Mar 2020
OpenSSL Header Version => OpenSSL 1.1.1f  31 Mar 2020
Openssl default config => /usr/lib/ssl/openssl.cnf

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

pcntl

pcntl support => enabled

pcre

PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 10.42 2022-12-11
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 =>

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.17

readline

Readline Support => enabled
Readline library => EditLine wrapper

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

Reflection

Reflection => enabled

session

Session Support => enabled
Registered save handlers => files user
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 => 0 => 0
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => /var/lib/php/sessions => /var/lib/php/sessions
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

shmop

shmop support => enabled

sockets

Sockets Support => enabled

sodium

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

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

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

sysvmsg

sysvmsg support => enabled

sysvsem

sysvsem support => enabled

sysvshm

sysvshm support => enabled

tokenizer

Tokenizer Support => enabled

Zend OPcache

Opcode Caching => Disabled
Optimization => Disabled
SHM Cache => Enabled
File Cache => Disabled
JIT => Disabled
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 => no value => no value
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

zlib

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

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
SHELL => /bin/bash
COLORTERM => truecolor
WSL2_GUI_APPS_ENABLED => 1
TERM_PROGRAM_VERSION => 1.88.0
WSL_DISTRO_NAME => Ubuntu-20.04
NAME => PC-1003234
PWD => /home/XXXX/projects/wound-monitoring
LOGNAME => XXXX
VSCODE_GIT_ASKPASS_NODE => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/node
HOME => /home/XXXX
LANG => C.UTF-8
WSL_INTEROP => /run/WSL/489108_interop
LS_COLORS => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
WAYLAND_DISPLAY => wayland-0
GIT_ASKPASS => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/extensions/git/dist/askpass.sh
VSCODE_GIT_ASKPASS_EXTRA_ARGS =>
LESSCLOSE => /usr/bin/lesspipe %s %s
TERM => xterm-256color
LESSOPEN => | /usr/bin/lesspipe %s
USER => XXXX
VSCODE_GIT_IPC_HANDLE => /run/user/1000/vscode-git-81edcfd8ec.sock
DISPLAY => :0
SHLVL => 1
XDG_RUNTIME_DIR => /run/user/1000/
WSLENV => VSCODE_WSL_EXT_LOCATION/up:VSCODE_SERVER_TAR/up
VSCODE_GIT_ASKPASS_MAIN => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/extensions/git/dist/askpass-main.js
XDG_DATA_DIRS => /usr/local/share:/usr/share:/var/lib/snapd/desktop
PATH => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/i.lopezmorales/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/GitHubDesktop/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/gitkraken/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/Programs/Python/Python311:/snap/bin
DBUS_SESSION_BUS_ADDRESS => unix:path=/run/user/1000/bus
HOSTTYPE => x86_64
PULSE_SERVER => unix:/mnt/wslg/PulseServer
TERM_PROGRAM => vscode
VSCODE_IPC_HOOK_CLI => /run/user/1000/vscode-ipc-09e90db0-2549-4bdc-aef0-41d903738ff3.sock
_ => /usr/bin/php
OLDPWD => /home/XXXX/projects

PHP Variables

Variable => Value
$_SERVER['SHELL'] => /bin/bash
$_SERVER['COLORTERM'] => truecolor
$_SERVER['WSL2_GUI_APPS_ENABLED'] => 1
$_SERVER['TERM_PROGRAM_VERSION'] => 1.88.0
$_SERVER['WSL_DISTRO_NAME'] => Ubuntu-20.04
$_SERVER['NAME'] => PC-1003234
$_SERVER['PWD'] => /home/XXXX/projects/wound-monitoring
$_SERVER['LOGNAME'] => XXXX
$_SERVER['VSCODE_GIT_ASKPASS_NODE'] => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/node
$_SERVER['HOME'] => /home/XXXX
$_SERVER['LANG'] => C.UTF-8
$_SERVER['WSL_INTEROP'] => /run/WSL/489108_interop
$_SERVER['LS_COLORS'] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
$_SERVER['WAYLAND_DISPLAY'] => wayland-0
$_SERVER['GIT_ASKPASS'] => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/extensions/git/dist/askpass.sh
$_SERVER['VSCODE_GIT_ASKPASS_EXTRA_ARGS'] =>
$_SERVER['LESSCLOSE'] => /usr/bin/lesspipe %s %s
$_SERVER['TERM'] => xterm-256color
$_SERVER['LESSOPEN'] => | /usr/bin/lesspipe %s
$_SERVER['USER'] => XXXX
$_SERVER['VSCODE_GIT_IPC_HANDLE'] => /run/user/1000/vscode-git-81edcfd8ec.sock
$_SERVER['DISPLAY'] => :0
$_SERVER['SHLVL'] => 1
$_SERVER['XDG_RUNTIME_DIR'] => /run/user/1000/
$_SERVER['WSLENV'] => VSCODE_WSL_EXT_LOCATION/up:VSCODE_SERVER_TAR/up
$_SERVER['VSCODE_GIT_ASKPASS_MAIN'] => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/extensions/git/dist/askpass-main.js
$_SERVER['XDG_DATA_DIRS'] => /usr/local/share:/usr/share:/var/lib/snapd/desktop
$_SERVER['PATH'] => /home/XXXX/.vscode-server/bin/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/i.lopezmorales/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/GitHubDesktop/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/gitkraken/bin:/mnt/c/Users/i.lopezmorales/AppData/Local/Programs/Python/Python311:/snap/bin
$_SERVER['DBUS_SESSION_BUS_ADDRESS'] => unix:path=/run/user/1000/bus
$_SERVER['HOSTTYPE'] => x86_64
$_SERVER['PULSE_SERVER'] => unix:/mnt/wslg/PulseServer
$_SERVER['TERM_PROGRAM'] => vscode
$_SERVER['VSCODE_IPC_HOOK_CLI'] => /run/user/1000/vscode-ipc-09e90db0-2549-4bdc-aef0-41d903738ff3.sock
$_SERVER['_'] => /usr/bin/php
$_SERVER['OLDPWD'] => /home/XXXX/projects
$_SERVER['PHP_SELF'] =>
$_SERVER['SCRIPT_NAME'] =>
$_SERVER['SCRIPT_FILENAME'] =>
$_SERVER['PATH_TRANSLATED'] =>
$_SERVER['DOCUMENT_ROOT'] =>
$_SERVER['REQUEST_TIME_FLOAT'] =><PHONE_NUMBER>.2175
$_SERVER['REQUEST_TIME'] =><PHONE_NUMBER>
$_SERVER['argv'] => Array
(
)

$_SERVER['argc'] => 0

PHP License
This program is free software; you can redistribute it and/or modify
it under the terms of the PHP License as published by the PHP Group
and included in the distribution in the file:  LICENSE

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any
questions about PHP licensing, please contact<EMAIL_ADDRESS>
Relevant log output
XXXX@PC-1003234:~/projects/wound-monitoring$ ./my-app php-server -l <IP_ADDRESS>:8081
2024/04/10 19:15:45.321 WARN    admin   admin endpoint disabled
2024/04/10 19:15:45.321 INFO    tls.cache.maintenance   started background certificate maintenance      {"cache": "0xc0001f1400"}
2024/04/10 19:15:45.323 INFO    http.log        server running  {"name": "php", "protocols": ["h1", "h2", "h3"]}
2024/04/10 19:15:45.323 INFO    FrankenPHP started 🐘   {"php_version": "8.3.4"}
2024/04/10 19:15:45.323 INFO    Caddy serving PHP app on <IP_ADDRESS>:8081
2024/04/10 19:15:45.330 WARN    tls     storage cleaning happened too recently; skipping for now        {"storage": "FileStorage:/home/XXXX/.local/share/caddy", "instance": "e0aa4d7c-5ae4-454b-bcdc-676299003287", "try_again": "2024/04/11 19:15:45.330", "try_again_in": 86399.999999549}
2024/04/10 19:15:45.330 INFO    tls     finished cleaning storage units
^C2024/04/10 19:16:07.988       INFO    shutting down   {"signal": "SIGINT"}
2024/04/10 19:16:07.988 WARN    exiting; byeee!! 👋     {"signal": "SIGINT"}
2024/04/10 19:16:07.988 INFO    http    servers shutting down with eternal grace period
^C2024/04/10 19:16:08.829       WARN    force quit      {"signal": "SIGINT"}

./my-app php-cli bin/console

I believe this isn't running code INSIDE the binary, but in whatever shell you are currently running in. So wherever you are running it, there is no bin/console.
Currently, static builds are broken for just about everyone (#709, #710) so it'll probably be a minute before we can try helping out more in-depth.
I believe though, that you just need to run:
./my-app

as
./my-app php-server

will start a PHP server from your current directory.
Either way, I like the way you're thinking and agree that it probably should work the way you're trying to use it.

@dunglas what do you think about this (pseudocode):
if is_embedded():
  embedded_dir := extract()
  chdir(embedded_dir)

// continue as normal

for all cli commands?

I didn't do that in the beginning on purpose for a reason that I cannot remember 😅 I'll try to figure out.
Using php-server looks safer to me. This allows to use Caddy as usual in other contexts. I don't want to highjack too much standard Caddy behaviors.

Hi @dunglas , but in your website you claim that the php code is embed in the binary, also I can see in the builder script that all the app code is tarred in .tar file, why when I run the command ./my-app php-server -l <IP_ADDRESS>:8081 this is serving my localhost storage content instead of the app itself ?
Thanks !

I didn't do that in the beginning on purpose for a reason that I cannot remember

I mean, it makes sense logically that you did it that way. It's regular 'ole frankenphp that knows how to serve the embedded app...
Just to scope creep a bit, it'd be really cool if you could embed a "command manifest" in the composer.json or a frankenphp.json file that the cli would embed separately during the build (maybe just using regular go embeds?) and then allow you to do something like:
{
  "console": { "run": "bin/console", "description": "Symfony console" }
}

Then the output of the embedded app:
Available Commands:
  adapt          Adapts a configuration to Caddy's native JSON
  add-package    Adds Caddy packages (EXPERIMENTAL)
  build-info     Prints information about this build
  completion     Generate completion script
  console        Symfony console                     <-----
  environ        Prints the environment
  file-server    Spins up a production-ready file server
  fmt            Formats a Caddyfile
  ...

Then other commands would/could behave like normal. Even allow overriding existing commands with either a custom command or null to "strip" it out of the possible commands:
{ "adapt": null }

I dunno though, at this point I'm thinking this scope creep has creeped far and away from caddy anything. So maybe not... Interesting idea though.

@logosur it is! I'll try to figure out what's your issue tomorrow.
@withinboredom Ok got it! Indeed that would be nice. I'm working on extension auto detection for standalone binaries, that Ill parse the composer.json file, so composer.json would be a good place to add such features!

./my-app php-cli bin/console

I believe this isn't running code INSIDE the binary, but in whatever shell you are currently running in. So wherever you are running it, there is no bin/console.
Currently, static builds are broken for just about everyone (#709, #710) due to an upstream library so it'll probably be a minute before we can try helping out more in-depth.
I believe though, that you just need to run:
./my-app run

as
./my-app php-server

will start a PHP server from your current directory.
Either way, I like the way you're thinking and agree that it probably should work the way you're trying to use it.

Can I run an ftp server inside my binary? I need to figure out how to upload some image files to my public folder like we can do normally with apache and php fpm.

Can I run an ftp server inside my binary?

Um, technically yes, if you write an ftp server (or use a caddy module, if there is one) and carefully compile it ... anything is theoretically possible; it's software afterall. We're (probably, very) unlikely to create such a feature.

I need to figure out how to upload some image files to my public folder like we can do normally with apache and php fpm.

Using an embedded php app probably isn't the best way to go about that. If you just need to add some images, you can add them to the app before embedding the app. If while running the app, you need to mutate the app (add images, change files, etc) then an embedded app is NOT a proper solution for your app. The files live "inside" the executable and are mostly immutable.

Hello, I created the binary file and tried to run it.
I used ./my-app php-server command to run it. In the terminal, it looks like it started but in the browser localhost, I can't see my app is running.

But in browser

I also tried run and start but not work.
here I used run

but sill nothing on localhost

also visited localhost:2019 but got page not found

I am not an expert on it and also not as much expert on Linux.
here is the loom video that I tried. If you could help me I will be blessed.
Loom video:  https://www.loom.com/share/a8c46cd7756148b3bad634d9b6b7bc03

The Dockerfile seems broken and not similar to the official one: https://frankenphp.dev/docs/embed/#creating-a-linux-binary
Especially, the call to export mixed in the build command cannot work.
Also, the app should be prepared on your host, using the proper PHP version, not in the Docker image.
I tried to bundle an app by following the docs, and it works.
Closing for now, feel free to re-open if you still have issue by using the documented and recommended way.

@skmirajbn try http://localhost in your browser (notice that there is no s in http://). Modern browsers always use HTTPS by default, so you have to explicitly add the HTTP scheme.

First I tried this docker file as in the document but got error about on git
like this issue: https://github.com/dunglas/frankenphp/issues/680
Then I get solved as instructed on this issue to add a new line  export FRANKENPHP_VERSION=1.1.2 \
I followed that binery is successfully created. but then this issue here occurred.
Ok, I will create a new issue let see. If this can be fixed. 😒

Please copy your entire Dockerfile. #680 was because the second WORKDIR directive was missing in the Dockerfile of the user, and it is mandatory.

If I use this docker file then got error about git.

And so I tried this of #680 from this person dockerfile

But this time get stack on this place.

here is the terminal logs
skmiraj@skmiraj-VirtualBox:~/Desktop/projectsourcecode/laravelfranken$ sudo docker build -t static-app -f static-build.Dockerfile .
[sudo] password for skmiraj:
[+] Building 2776.3s (11/12)                                     docker:default
=> [internal] load build definition from static-build.Dockerfile          0.2s
=> => transferring dockerfile: 504B                                       0.1s
=> [internal] load metadata for docker.io/dunglas/frankenphp:static-buil  2.7s
=> [internal] load .dockerignore                                          0.2s
=> => transferring context: 2B                                            0.0s
=> [1/8] FROM docker.io/dunglas/frankenphp:static-builder@sha256:4cb4088  0.0s
=> [internal] load build context                                          2.3s
=> => transferring context: 736.26kB                                      2.2s
=> CACHED [2/8] WORKDIR /go/src/app/dist/app                              0.0s
=> [3/8] COPY . .                                                         5.7s
=> [4/8] RUN rm -rf tests/                                                1.4s
=> [5/8] WORKDIR /go/src/app/                                             0.6s
=> [6/8] RUN git clone https://github.com/dunglas/frankenphp              5.9s
=> [7/8] WORKDIR /go/src/app/frankenphp                                   0.6s
=> [8/8] RUN EMBED=../dist/app/     ./build-static.sh                  2756.3s
=> => # PKG_CONFIG='pkg-config'
=> => # GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=
=> => # 0 -ffile-prefix-map=/tmp/go-build4142773356=/tmp/go-build -gno-record-
=> => # gcc-switches'
=> => #                        Ultimate Packer for eXecutables
=> => #                           Copyright (C) 1996 - 2023


Added MATLAB and SciLab

Added hello world program for MATLAB and SciLab, numerically oriented programming languages.

Thanks for the beautiful pull requests. Although we only accept one language in one pr, could you create an extra pr for the scilab program, and delete the scilab file. Your co-operation is appreciated.

Please look at these issues #192 #190


Fix: Use constant

This PR

[x] uses a constant instead of a magic number

Thank you, @chartjes!


Need a context menu in the reader view

Some libraries that could be used:

https://www.npmjs.com/package/semantic-ui-react-context-menu
https://github.com/fkhadra/react-contexify
https://www.npmjs.com/package/react-contextmenu

Kinda old
https://medium.com/frontendweb/how-to-add-custom-context-menu-in-react-js-e53afc6692b2

https://codesandbox.io/examples/package/react-contextmenu

Also this: https://www.npmjs.com/package/semantic-ui-react-context-menu

The existing system I have for showing popups is based upon the location of the item clicked, not the location of the mouse cursor.

[ ] Position the menus better
[ ] Improve listener such that the menus hide by clicking away better

The menu currently appears next to the item clicked, not in the position where the click happened. You can see this when you click a work in English since it doesn't break out the words into separate divs.

See https://www.delftstack.com/howto/react/react-portal-functional-component/


Upload domain verification for security

Summary
This change is temporary. This is file is required for the security team to pass the control for new domains until we don't have the official ones.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.David Garcia seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

I'm going to hold this until #1054


cannot focus message response via keyboard

Note that both of these scenarios used to work.
In the terminal inine chat, run a command like slkfjsdkjf which yields just a chat message response.
Try to tab to it. 🐛  one cannot
Run a command like ls which yields a code block response. Try to use cmd+up/down arrow to go from the input box to a code block response and vice versa. 🐛 one cannot

Try to tab to it. 🐛 one cannot

This works for me, I do the following with success

cmd+i, paste slkfjsdkjf, press Enter
wait for the response
press tab repeatedly and reach the response

https://github.com/microsoft/vscode/assets/1794099/c56d7560-a92a-4a76-b2b2-0dc0c716706a

the tabbing part works for me in today's insider's

I'm able to spam Ctrl+Up on Windows to focus between the inputbox and the chat response, but I'm not able to spam Ctrl+Down to do the same.
I'm unable to use either to focus from the inputbox directly into a code block within the chat response.

I haven't tried windows yet. This won't directly focus the code editor, just the response.

@Tyriar this works on mac, could you pls try on windows?

The behavior seems wrong now and is quite disorienting:

Input:

ctrl+up will focus the response list
ctrl+down will focus the response list

Response list:

ctrl+up does nothing
ctrl+down does nothing

Response code block:

ctrl+up focuses the input
ctrl+down focuses the response list

I would expect:

Input:

ctrl+up does nothing
ctrl+down will focus the response code block

Response list:

ctrl+up focuses the input
Not sure?

Response code block:

ctrl+up focuses the input
ctrl+down focuses the next code block, otherwise not sure

This issue was about ctrl+up/down going between the response list and the input.
Input:

ctrl+up will focus the response list

This is unexpected, but unlikely to be attempted by the user IMO.
I didn't implement this yet, but can in April.
Response code block:

ctrl+up focuses the input
ctrl+down focuses the response list

@Tyriar verified that this does work. I'm making a new issue about focusing the code block(s) and the bug with ctrl+up in the input focusing the list


Change axios to be a peer dependency

The usage of axios in this repository is very basic, but its versioning
is defined very tightly. This causes problems, because the interface
IOptions uses AxiosInstance as its property, preventing the clients of
this library from updating their axios version beyond the limits set in
this library. Typescript compiler gives type error when giving higher
version AxiosInstance for IOptions.
By setting axios as a peer dependency, we would allow the clients of
this library to install other versions of axios if they so choose.

axios-ntlm (dependency of this project) also has "axios": "^0.21.3"
similar PR could be made there


Fix clipbox bug.

ClipBox should recurse events if any of its children are active, not just its immediate child.

Closes #1436 .


Add support for PowerShell.

Highlight.js supports a very large number of languages which is great. I would really be ecstatic if support for Windows PowerShell would be added. For more information about PowerShell have a look here.

PowerShell support was added with  #588 / 480946018e99435be288e345be9beb23ad52d0fa.


 Quarkus Issue 26014 has been fixed, thus changes made in PR 483 should be reverted.
Please check the relevant options

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Dependency update
[x] Refactoring
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change requires a documentation update

Checklist:

[x] Example scenarios has been updated / added
[x] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

Ah, quarkus create extension -S 2.10 must be used. I'll have reflect changes.

Checked, no changes required.


Specific list of approvers

Hello, we are exploring using this where I work and we have some concerns about allowing peers to approve each others requests.
Is there any appetite for allowing a configurable list of approvers instead? I appreciate this isn't an issue more of a feature request.
I'm happy to try and contribute this in my spare time if you think this is something that would be accepted as a PR.

I think it's an interesting idea and I'm sure there's a use case for it. What I'm unsure about is how the configuration might look like: I suppose one option would be to specify the (group or list of) approvers in the IAM condition itself somehow. I think that would work, but as the number of eligible role bindings grow, it might become quite difficult though to keep track of and manage who can approve which roles.
Another option would be to maintain the configuration (who can approve which role on which resource) in some sort of configuration database that's separate from IAM. But having such a database is something I've been seeking to avoid as it would be difficult to secure and could create a possible avenue for privilege escalations.
I'm sure there are other options I haven't thought of yet... if you have some ideas, please let us know.

This is something I was trying to figure out yesterday when I suggested this, but wasn't particularly sure of the best way. There's two things I can think of:

Building on what you suggested, if Bob can escalate up to Project IAM Admin and has the MPA IAM condition applied to his user, however only Alice and John can approve, could they they have the Project IAM Admin with a new condition applied: has({}.multiPartyAccessApprover). This way it doesn't need to be embedded within the role, it only needs to be embedded in the approvers. It could still get messy to manage on large orgs though.
The other option I was thinking of was some sort of YAML or JSON configuration object, however I don't particularly like the idea of loading configurations in from files as deploying it becomes more difficult.

Sorry for not replying earlier.
If I understand your comment correctly, then you're suggesting two things:

Project IAM Admins (or really, anybody with resourcemanager.projects.setIamPolicy permissions on a project) should be allowed to approve any actviation request in that project, because they can modify the IAM policy anyway.
This would apply to users that have been granted the Project IAM Admin role either permanently or with a has({}.jitAccessConstraint) constraint.

Introduce a has({}.multiPartyAccessApprover) condition that:

Entitles a user to approve requests for this role, but
Doesn't allow the user to request access to that role for themselves

So in some sense, a role binding with a has({}.multiPartyAccessApprover) condition only gives you half the power of a role binding with a has({}.multiPartyApprovalConstraint) condition.
In combination with (1), that means: By granting a user Project IAM Admin with a has({}.multiPartyAccessApprover) condition, you allow them to approve any any actviation requests for that project without allowing them to request any access for themselves.

That's actually very smart.
I am a bit worried about the extra complexity introduced by having a third kind of condition, and what that means for managing IAM policies. So I wonder if the following might be sufficient:

Users that have been granted the Project IAM Admin role with a has({}.multiPartyApprovalConstraint) condition...

can approve any requests in that project, for any role
always show up in the list of available peers (in that project)

If you grant two users the Project IAM Admin role with a has({}.multiPartyApprovalConstraint) condition, they can still approve each other access. That's different from what you proposed -- but it avoids the extra condition.

Wdyt?

No problem.
I have to admit thinking about this in more depth, and taking a look at how our projects are setup, I am concerned that this could really complicate how permissions are managed and it might appear quite messy in the IAM console.
What you're suggesting is a good middle ground, this feels a lot cleaner and much more scalable. This will work well for us aswell.

Great. I still have to double-check whether this approach will work properly with the Policy Analyzer API, but I'd be happy to move ahead with this.

Let's not overlook the scenario where IAM admin is done entirely via service accounts, where no users of the project have the IAM Admin role.

That's a good point. However, I'm a bit wary of introducing dependencies between roles or imposing some hierarchy among them as that might create subtle paths to escalate privileges and could make it difficult to reason about who has access to which resources.
I think Project IAM Admin (or more precisely, the resourcemanager.projects.setIamPolicy permission) is special in that regard as somebody who has been unconditionally  granted that role can freely modify the IAM policy anyway. Allowing Project IAM Admins to approve requests for other roles therefore seems to be in line with the general access model.

Yeah I guess the only comment is that we would love to set Product owners/managers as approvers, but would not want them to actually have any access.

Hello @jpassing  @duxbuse @duxbuse @RickB-2840 @proppy  Can anyone help me where to set the peer approvers so that its visible on JIT application . Do we have any steps to do it

@rajat2911, I assume you're asking how that works currently?
This doc has more details:

Multi-party approval is handled on a peer-to-peer basis::
If two users are granted an MPA-eligible role binding for, say roles/compute.admin on project-1, then they can approve each other’s requests.

So there's no explicit step to "set peer approvers" -- if you grant the same role to multiple users, and add the has({}.multiPartyApprovalConstraint) condition to each role binding, then these users can approve each other's request for this specific role.
This thread here is about an alternative way to designate approvers that's  not implemented yet.

Had a thought, would be interesting to be able to give someone iam.admin which would then allow them to be an approver.
But add the constraint that they cant call any methods on the iam.googleapis.com This would functionally make them only an approver without giving away any real permissions.

JIT Groups now takes a different approach and lets you choose which users can request vs. which users can approve requests.
For example:
  # ACL, defines who can view, join, approve.
  access:
    # Ann can join and doesn't need approval from anyone
    - principal<EMAIL_ADDRESS>      allow: "JOIN, APPROVE_SELF"

    # Ben can also join, but needs approval from someone else
    - principal<EMAIL_ADDRESS>      allow: "JOIN"

    # Everybody in the managers group can approve requests, but can't join themselves
    - principal<EMAIL_ADDRESS>      allow: "APPROVE_OTHERS"

Note that JIT Groups supersedes the JIT Access project, which has largely outlived its purpose as privileged access management is now available as a platform feature in Google Cloud . JIT Groups addresses an adjacent, but different use case -- self-service access management, or entitlement management, for all types of Google Cloud access, not only privileged access.

Thanks @jpassing I though PAM was going to supersede JIT. Or is that only privileged access rather than all access?

Yes, exactly. For managing short-term privileged access, PAM should be the preferred choice going forward. This project is shifting its focus away from the privileged access use case towards enabling self-service access management for all kinds of access, based on groups. I described this in a bit more detail in JIT Access vs Privileged Access Manager, and what's next for JIT Access.


Created offcanvas component for navbar collapse example

Hello,
the new offcanvas is a stand-alone component, but it should be able to display collapsed navbar as well. Created a navbar example which shows menu <992px (class navbar-expand-lg) in offcanvas component instead of the top open default navbar. navbar-expand{-sm|-md|-lg|-xl|-xxl} class can be used to set the breakpoints.
Demo: https://examples.bootscore.me/bootstrap-offcanvas-navbar/
Code: https://github.com/craftwerkberlin/bootstrap-offcanvas-navbar

@devhoussam @mdo I created a PR https://github.com/twbs/bootstrap/pull/33537, so this Issue can be closed.
Thank you


Commit a88f6b23f62c broke the python3 setup.py install && py.test workflow

Installation method/steps
I'm packaging pyproj for openSUSE project. The build and installation steps boil down to python3 setup.py install and py.test. Example build log can be found at https://build.opensuse.org/package/live_build_log/Application:Geo/python-pyproj/openSUSE_Tumbleweed/x86_64. Until v2.6.0 this installation procedure worked fine. Trying to upgrade to v2.6.1 resulted in tests failing to start. The corresponding log part is:
...
[   17s] + py.test-3.8 --ignore=_build.python2 --ignore=_build.python3 --ignore=_build.pypy3 -v
[   17s] ImportError while loading conftest '/home/abuild/rpmbuild/BUILD/pyproj-2.6.1.post1/test/conftest.py'.
[   17s] test/conftest.py:4: in <module>
[   17s]     from pyproj.datadir import get_data_dir
[   17s] pyproj/__init__.py:50: in <module>
[   17s]     from pyproj import _datadir
[   17s] E   ImportError: cannot import name '_datadir' from partially initialized module 'pyproj' (most likely due to a circular import) (/home/abuild/rpmbuild/BUILD/pyproj-2.6.1.post1/pyproj/__init__.py)
[   17s] error: Bad exit status from /var/tmp/rpm-tmp.BRrH1g (%check)
...

Git bisect led to commit a88f6b23f62c ("TST: Update tests with behavior with new PROJ grids (#594)"). How to fix pyproj so that the above build procedure completes again, please?
Environment Information

pyproj v2.6.1rel
PROJ 7.0.0
Python 3.8.2
Operation System Linux-5.6.11-1-default-x86_64-with-glibc2.2.5 (openSUSE Tumbleweed - rolling distro)

It seems it is attempting to access the local files that don't exist in your pyproj directory since they were not built there. To resolve this, one option would be to move the test folder to another directory to run tests from. This will ensure the correct pyproj files are imported.

We do this when building/testing wheels: https://github.com/pyproj4/pyproj-wheels/blob/3399397ad58394f3c40a0e9d69d36714201c5fce/config.sh#L70-L78

Thanks, Alan, for your assistance. Your comments helped me look in the right direction. The package is now building fine in openSUSE Build Service.
In the end, the solution was to download v2.6.1.post1 from PyPi, which also fixes the manifest. The isolation of local files, which you suggested, is already happening in the build, so the package built right away after adding python-testsuite to the mix. The rest was my lack of experience with the test suite and inability to efficiently diagnose the problems found. The issue is closed on my side. Thanks!

Glad to hear that you have it figured out 👍


Generated Registers space smaller than the defined address range

Hi Caliptra team,
There is a potential issue in the current generated registers module: the address range of generated register module is smaller than the defined address range.
    For example, DOE space range is defined as 0x1000_0000 to 0x1000_7FFF, address width is 15 bits.
    But generated DOE register module only use address bit [11:0].

    So if CPU is accessing address 0x1000_1000, it is accessed the reserved space of DOE registers, but actually it will corrupt the register 0x1000_0000.

     This will be a potential issue, right ? Because software could go wrong somewhere, and it will be hard to debug if software write some reserved register address.

     Pls help to comment.

Best Regards
Derek Wang

Thanks for the feedback Derek. Labeled as enhancement for possible future implementation.


chore: upload code coverage to codecov

This PR enables the upload of coverage to codecov using the codecov's new bash uploader
Signed off by<EMAIL_ADDRESS>

/ok-to-test

@sawood14012 Will there be a dashboard where we can view this code coverage?

We are working on a dashboard we may get it up soon


Adding new regions to list of available regions

In preparations of the new regions going public

/azp run


initialValues and invalid form on field

I have a form with a mandatory field, with a required rule applied as a field level validation. This field should display an initial value, but at the same time it should throw an error if the user deletes that initial value from it and does not add anything back. The problem is that it throws a validation when submitting for that field if the user does not interact in any way with the field (eg. focusing and blurring it). Is there a workaround around this without solutions like calling onBlur on the Field's component componentDidMount ?
const required = (value) => value ? undefined : 'required'

const Form = (props) => (
  ...
 <form onSubmit={props.handleSubmit(props.onSubmit)}>
   ....
   <Field name="myField" component="input" validate={[required]}
  ...
)

const RForm = reduxForm({
  form: 'myForm',
  initialValues: { myField: 'myInitialValue' }
})

Edit:
I resolved this issue, actually I have been passing an integer number to the myField, passing a string seems to work.

@teod close issue? :-)


how to pass attribute override in json for chef-client local mode and chef-solo

I have a cookbook and roles.son and environment.json file available. I run them through both chef-solo and chef-client -z (local mode).
Both give the ability to add -j flag to pass the roles.json but doesn't provide any easy way of attribute overriding using environment.json. I am not using a server so not pushing it any where.
Am I missing something ?
I have something like this :
cookbooks  environment.json  file.txt  local-mode-cache  nodes  roles.json
and I'm running the following
1 : chef-client local mode with client.rb:
log_level               :info
log_location            "/var/log/chef/client.log"
node_name       "ip-10-201-38-78"
cookbook_path           "/tmp/cookbooks/"
json_attribs        "/tmp/roles.json"
chef-client -z -c client.rb -j roles.json
chef-solo -c client.rb -j roles.json

Thanks for filing a GitHub Issue.
At Chef, we use GitHub Issues to track bugs and feature requests. Questions like "How do I .... with Chef?" are better answered by our awesome community on the Chef mailing lists, or on StackOverflow. (Please pick only one place to ask your question, however, as it's considered impolite to post the same question to multiple forums.)
You can find information about joining and asking questions on our mailing lists here. On StackOverflow, please tag your question with the "chef" label so that it shows up in this list.
We will be closing your issue. Please get in touch with the community via the above mechanisms in order to find a solution to your problem.


Test result is incorrect in TestRail in case of parametrized test failing for some params. Another sorting is desired

Is your feature request related to a problem? Please describe.
Test status for test in TestRail is pass, when parametrized test fails for some parameteres, but the last test param was successful.
I have found that sorting by status_id was removed due to another request where rerun-failures was used, and in that case desired sequence of test cases was different.
Describe the solution you'd like
I would love to have an ability to turn sorting by status_id on, so that if at least one param in parametrized test fails, the whole test is marked as fail in TestRail.
Describe alternatives you've considered
I've googled if it is possible to change behaviour of TestRail, but it seems, that currently TestRail decides what is the final test status based on the last test result it receives. And there is no way to change behaviour on TestRail side.
Additional context
I'll make a PR that keeps current behaviour, but adds an option to sort by status_id

Any chance this PR can be merged?


use ayende's solution to deal with date/time in tests

http://ayende.com/blog/3408/dealing-with-time-in-tests

worng repo.


[BACKEND] Consider mask alignment in memory coalescing

Mask alignment is considered during vectorization in ttgir lowering. This could cause inconsistency with the memory coalescing pass where mask alignment is not considered, which could lead to performance issue. I'm fixing this by having the coalescing pass also take the mask alignment into consideration.
For example, if the memory coalescing pass decides that one thread should go with 8 consecutive elements, but later on the vectorization pass rejects that because of the unaligned mask. Then the 8 consecutive elements will end up with 8 individual scalar loads, and each load access non-consecutive addresses across threads, breaking memory coalescing.

This tanks some of our kernel's perf somehow. Did you run it on pytorch benchmarks? Is there no regressions on the workloads you have?
If not I'll have to try to figure why it affects our kernels.

This tanks some of our kernel's perf somehow :(. Did you run it on pytorch benchmarks? Is there no regressions on the workloads you have? If not I'll have to try to figure why it affects our kernels.

Thanks for giving it a shot! Interesting. Yes, I did a torch inductor benchmark run, it improves one benchmark in particular but neutral overall:
https://hud.pytorch.org/benchmark/dynamic/inductor_with_cudagraphs?startTime=Fri, 22 Mar 2024 18:52:33 GMT&stopTime=Fri, 29 Mar 2024 18:52:33 GMT&granularity=hour&mode=training&dtype=amp&lBranch=hoy/triton-coalescing-vec&lCommit=14e03e560931d6353c4e129ac3e39cb342438615&rBranch=main&rCommit=a697d972b16c5c9c938f7422e1cb2dcec129ca97
I also see a little regression (about 4%) on one small kernel as discussed here: https://github.com/pytorch/pytorch/issues/122840#issuecomment-2027545288, I'm still figuring out. Codegen looks better though.
How much regression did you see?

This tanks some of our kernel's perf somehow :(. Did you run it on pytorch benchmarks? Is there no regressions on the workloads you have? If not I'll have to try to figure why it affects our kernels.

Thanks for giving it a shot! Interesting. Yes, I did a torch inductor benchmark run, it improves one benchmark in particular but neutral overall:
https://hud.pytorch.org/benchmark/dynamic/inductor_with_cudagraphs?startTime=Fri, 22 Mar 2024 18:52:33 GMT&stopTime=Fri, 29 Mar 2024 18:52:33 GMT&granularity=hour&mode=training&dtype=amp&lBranch=hoy/triton-coalescing-vec&lCommit=14e03e560931d6353c4e129ac3e39cb342438615&rBranch=main&rCommit=a697d972b16c5c9c938f7422e1cb2dcec129ca97
I also see a little regression (about 4%) on one small kernel as discussed here: pytorch/pytorch#122840 (comment), I'm still figuring out. Codegen looks better though.

Ok, would be interesting to track the regressions as I don't understand why those happen.

How much regression did you see?

The regressions was very large, > 50% which points to something bad like spilling or others. I need to look at the IR but probably won't get to it right away

This tanks some of our kernel's perf somehow :(. Did you run it on pytorch benchmarks? Is there no regressions on the workloads you have? If not I'll have to try to figure why it affects our kernels.

Thanks for giving it a shot! Interesting. Yes, I did a torch inductor benchmark run, it improves one benchmark in particular but neutral overall:
https://hud.pytorch.org/benchmark/dynamic/inductor_with_cudagraphs?startTime=Fri, 22 Mar 2024 18:52:33 GMT&stopTime=Fri, 29 Mar 2024 18:52:33 GMT&granularity=hour&mode=training&dtype=amp&lBranch=hoy/triton-coalescing-vec&lCommit=14e03e560931d6353c4e129ac3e39cb342438615&rBranch=main&rCommit=a697d972b16c5c9c938f7422e1cb2dcec129ca97
I also see a little regression (about 4%) on one small kernel as discussed here: pytorch/pytorch#122840 (comment), I'm still figuring out. Codegen looks better though.

Ok, would be interesting to track the regressions as I don't understand why those happen.

So in my kernel there are two loads and one store. Since the store does not access aligned addresses, it's never vectorized, thus same behavior before and after this diff. The only difference is for those two loads which have same access pattern and from NCU I see the L1 cache miss is dramatically high for the new version.
Let's look at one of them:
Before:
     #blocked = #triton_gpu.blocked<{sizePerThread = [1, 8], threadsPerWarp = [1, 32], warpsPerCTA = [1, 8], order = [1, 0]}>
      %25 = tt.load %24, %22, %cst_1 {cache = 1 : i32, evict = 3 : i32, isVolatile = false} : tensor<1x2048xf16, #blocked> loc(#loc28)

After:
    #blocked = #triton_gpu.blocked<{sizePerThread = [1, 1], threadsPerWarp = [1, 32], warpsPerCTA = [1, 8], order = [1, 0]}>
    %23 = tt.load %22, %20, %cst {cache = 1 : i32, evict = 3 : i32, isVolatile = false} : tensor<1x2048xf16, #blocked> loc(#loc10)

I suspect that since this is a fp16 load, loading 2 bytes per thread consecutively would cause a 64-byte memory transaction issued each time for a warp.  On the contrary, loading 2 bytes in a strided way would cause a 128-byte memory transaction issued, which loses memory coalescing and is exactly being fixed by this patch. However, the 64 bytes out of the 128 bytes that are not used by the current load can be reused by next load instruction, if luckily enough that the cache is not polluted. I guess that's what happened. In the first case, the next load instruction would not benefit from caching.
I hacked the compiler to generate a sizePerThread = [1, 2] encoding and the performance was back.
Does the theory sound reasonable to you, especially for the first case that a 64-byte instead of a 128-byte memory transaction is used?

@ThomasRaoux is there a way to share your benchmarks regressed by this patch for me to investigate? We see this could be a general fix and we would like to keep it going. Thanks!

@ThomasRaoux is there a way to share your benchmarks regressed by this patch for me to investigate? We see this could be a general fix and we would like to keep it going. Thanks!

Unfortunately I cannot do that.

I do think it is good patch in general but it would be great if you could fix the regression in torch benchmarks, then I can check if it fixes our internal workload

I do think it is good patch in general but it would be great if you could fix the regression in torch benchmarks, then I can check if it fixes our internal workload

Actually the latest version fixes the torch bench regression by ensuring a 32-byte memory transaction for loads even if they are not vectorizable. The loaded data that are not used by the current load instructions will be in cache for the next load instructions. This is motivated by the higher cache misses seen from the NCU profile of the regressed test run.

I do think it is good patch in general but it would be great if you could fix the regression in torch benchmarks, then I can check if it fixes our internal workload

Actually the latest version fixes the torch bench regression by ensuring a 32-byte memory transaction for loads even if they are not vectorizable. The loaded data that are not used by the current load instructions will be in cache for the next load instructions. This is motivated by the higher cache misses seen from the NCU profile of the regressed test run.

ok thanks. I'll give running that on our benchmarks another shot. It might be only next week though

So the load is vectorized but not coalesced prior to the fix. The initial fix has sizePerThread = [1, 1], which means 2 bytes per thread and 64 bytes per warp. Prior to the fix, each thread accesses 16 bytes in a vectorized way?

Before the fix, each thread still accessed 2 bytes because of the unaligned mask. And each thread did eight consecutive loads. This means neighboring thread did not load consecutive bytes such appeared to be wasting an 128-byte memory transaction. However, the performance wasn't bad and actually better and I suspect that the memory transaction was still beneficial, not to this round of load but next round, as the data could be cached.

So the latest fix will generate sizePerThread=[1,2]?

Yes.

@ThomasRaoux @htyu  any news on this?

sorry looks like I dropped the ball on trying this on our benchmarks. Let me try that later today

I still see functional and perf failures in our internal tests. Did you expect this to be done? Unfortunately I didn't have time to check the reason for those

I still see functional and perf failures in our internal tests. Did you expect this to be done? Unfortunately I didn't have time to check the reason for those

Thanks for giving it a shot! Hmm, correctness issues are not expected. I'll see if I can repro it on my side.

closing this PR due to no activity. Feel free to reopen.

@sfzhu93 the proposed fix had a mixed impact, perhaps instead of fixing it we could issue a performance warning so that user can fix their unaligned mask to get the load vectorized.


feat(home): implement No Wallets screen

Description:
Add homepage layout for when there are no wallets or no active wallet.
Motivation and Context:
Provide a better experience for when no wallets are selected.
How Has This Been Tested?

Within yarn storybook
Within the app

You can view the 2 different scenarios within the storybook by toggling the Has wallets checkbox in the knobs addon pane.
Screenshots (if appropriate):
No active wallet:

No wallets:

Types of changes:
New Feature
Checklist:

[x] My code follows the code style of this project.
[x] I have reviewed and updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes where needed.
[ ] All new and existing tests passed.
[x] My commits have been squashed into a concise set of changes.

@JimmyMow that issue should be resolved now.


RFC: Add vagrant to docker group

I like to have vagrant user part of the docker group, so you don't have to sudo every time.

We should also update the README.md file; I'm going to approve this and update README as well.


Adjust designation field

Make designation field mandatory in GET /accounts endpoint

Will be added in next mayor release

Designation field will not be made mandatory in V4.0. The proposition with the strong recommendation in the API specs (for V4) and the raising request at SIX ISO working group for documentation in SIX SPS 2025 November was agreed.


Create content card 13 black

One need to make this component using HTML and Tailwind CSS. I would suggest to use Tailwind Playgrounds to make things faster and quicker.
Here is a reference to the component.

After building the component please raise a PR with a screenshot of the component and add the component in content-card-13-black.
If you need to use any icon please use it from Hero Icons
Good luck.

I would like to work on this.

I have completed my previous issue (#1888), so please assign it to me under jwoc.

I want to work on this issue under jwoc

@RavindraP04 ASSIGN IT TO ME, under JWOC

I would like to work on this issue under JWOC

@RavindraP04 Raised PR: https://github.com/Clueless-Community/seamless-ui/pull/1971


Add "Batch Scoring with R" to TOC and landing page

Docs Build status updates of commit 7f52a05:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit c71273c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference-architectures/ai/batch-scoring-R-models.md
:white_check_mark:Succeeded
View

docs/reference-architectures/index.json
:white_check_mark:Succeeded

docs/reference-architectures/index.md
:white_check_mark:Succeeded
View

docs/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 24ac8ab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference-architectures/ai/batch-scoring-R-models.md
:white_check_mark:Succeeded
View

docs/reference-architectures/ai/batch-scoring-databricks.md
:white_check_mark:Succeeded
View

docs/reference-architectures/ai/batch-scoring-deep-learning.md
:white_check_mark:Succeeded
View

docs/reference-architectures/ai/batch-scoring-python.md
:white_check_mark:Succeeded
View

docs/reference-architectures/ai/realtime-scoring-r.md
:white_check_mark:Succeeded
View

docs/reference-architectures/index.json
:white_check_mark:Succeeded

docs/reference-architectures/index.md
:white_check_mark:Succeeded
View

docs/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


enable aur again

since 1.9.0 goreleaser was released with the openssh-client to work https://github.com/goreleaser/goreleaser/releases/tag/v1.9.0
Signed-off-by: Chmouel Boudjnah<EMAIL_ADDRESS>
Changes

Submitter Checklist

[ ] ♽  Run make test lint before submitting a PR (ie: with pre-commit, no need to waste CPU cycle on CI
[ ] 📖 If you are adding a user facing feature or make a change of the behavior, please verify that you have documented it
[ ] 🧪 100% coverage is not a target but most of the time we would rather have a unit test if you make a code change.
[ ] 🎁 If that's something that is possible to do please ensure to check if we can add a e2e test.
[ ] 🔎 If there is a flakiness in the CI tests then don't necessary ignore it, better get the flakyness fixed before merging or if that's not possible there is a good reason to bypass it. (token rate limitation may be a good reason to skip).

/retest

Codecov Report

Merging #692 (3a9f95f) into main (8ecc800) will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #692      +/-   ##
==========================================
- Coverage   69.47%   69.41%   -0.06%
==========================================
  Files          62       62
  Lines        3816     3819       +3
==========================================
  Hits         2651     2651
- Misses        905      907       +2
- Partials      260      261       +1

Impacted Files
Coverage Δ

pkg/hub/get.go
82.85% <0.00%> (-4.10%)
:arrow_down:

pkg/templates/templating.go
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8ecc800...3a9f95f. Read the comment docs.


Error Invalid return character or leading space in header:Authorization

Hello,
I'm getting the error provided in the screen when running the script.

Regards

pip install requests
and try again.

I'm not sure why but at the end of bearer token '\r' was added.
I removed it with:
headers = {'Authorization': 'Bearer ' + bt.replace('\r',''), 'Content-Type': 'application/json'}
and script started working

Thanks - coded that in now.


Returning data through the command bus

Hey brother! I want to first thank you for this awesome boilerplate. It's helped me immensely in starting my ES project. You are awesome!
I hope this isn't too naive a question (I've been working with golang for maybe 5 months or so), but I'm trying to return data to the user upon successful command executions (particularly an EventStoreDB commit position and sometimes the ID of a new aggregate root), and I can't seem to figure out how to return data to the user once it's been published to the command bus through the dispatch handler. I can figure out how to send errors, but if there's no error, how can I return a 200 with something like
{
  "id":5849
}

Perhaps I'm just missing something..

Hi @SDPyle sorry for late reply, I just noticed the issue. With the correct setup the flow is meant to be optimistic, which means that you return response to the user before event handler fires.

Thank you sir!


make table responsive

closes https://github.com/webpack/webpack.js.org/issues/4200
Before

After

ERROR in ./content/plugins/_eslint-webpack-plugin.md
Module build failed (from ../node_modules/remark-loader/dist/cjs.js):
NonErrorEmittedError: (Emitted value instead of an instance of Error) TypeError: Cannot read property 'value' of undefined

It is also a good practice to give credits to the original author, once again I reiterate that these changes have to be outside of the repo, in external dependencies.

It is also a good practice to give credits to the original author, once again I reiterate that these changes have to be outside of the repo, in external dependencies.


Conflict between espMqttClient.h and HTTPClient.h and update.h which use WiFiClientSecure.h SORTED

Hello @luebbe  and @bertmelis
I am happy because thanks to espMqttClient library I have finally managed to add TLS to MQTT to my ESP32  project and it is working great.
I have started from the example for TLS MQTT fo ESP32  and while I tested it isolated it was working great but when I included TLS in my code I had 3 big issues. I am reporting the issues and how I was able to go around with some strategies.
My ESP32 includes:

Webserver implemented with this method called ESP32-data-to-local-webpage
OTA  implemented with this repository, called ESP32-update-both-OTA-Firmware-and-OTA-SPIFFS-with-Arduino
HTTPS POST requests to some php scripts on my server implemented with this repository called ESP32-Arduino-HTTPS-POST-request-to-PHP-MySQL-database

To introduce the TLS code I had to make some changes to my MQTT code that I had from async-mqtt-client library
The changes made are below:
#include "espMqttClient.h"    //instead than AsyncMqttClient.h

/*add your real certificate here*/
const char rootCA[] PROGMEM = "-----BEGIN CERTIFICATE-----\n" \
"MIIDwzCCAqugAwIBAgIUbTivEoSEFfAFAFWfzwFSFSFESFESFSEFSEQYJKoZIhvcNAQEL\n"\
"BQAwcTELMAkGA1UEBhMCSVQxDzANBgNVBADSF4EFAEFAEFMA0GA1UEBwDVmVy\n"\
"bouESFSFESFSEChNw==\n"\
"-----END CERTIFICATE-----\n";

espMqttClientSecure mqttClient;			//insted of  AsyncMqttClient mqttClient

 // before it was void onMqttDisconnect(AsyncMqttClientDisconnectReason reason)   now it changed as below
void onMqttDisconnect(espMqttClientTypes::DisconnectReason reason)  ;

//before the function was  void onMqttSubscribe(uint16_t packetId, uint8_t qos)  now it is
void onMqttSubscribe(uint16_t packetId, const espMqttClientTypes::SubscribeReturncode* codes, size_t len) ;

// before the function was void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)   now it is as below
void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total);

void launchMQTT() {

	mqttReconnectTimer = xTimerCreate("mqttTimer", pdMS_TO_TICKS(2000), pdFALSE, (void*)0, reinterpret_cast<TimerCallbackFunction_t>(connectToMqtt));   //I make sure MQTT will reconnect if it loses connection

 	mqttClient.setCACert(rootCA);     //added line
	mqttClient.setCredentials(MQTT_USERNAME, MQTT_PASSWORD);
	mqttClient.onConnect(onMqttConnect);
	mqttClient.onDisconnect(onMqttDisconnect);
	mqttClient.onSubscribe(onMqttSubscribe);
	mqttClient.onUnsubscribe(onMqttUnsubscribe);
	mqttClient.onPublish(onMqttPublish);
	mqttClient.onMessage(onMqttMessage);
	mqttClient.setServer(MQTT_HOST, MQTT_PORT);
	mqttClient.setCleanSession(true);            //added line

	connectToMqtt();
}

Once I uploaded the code with these variations I had many other things that stopped working:
ISSUE 1: web server gave me back a blank page, I had already experience with it. For details look at this my old issue.
The string for the webpage from now started to go into overflow. I did't have enough heap because TLS MQTT was taking I think 52KB  of RAM while connecting
I have sorted like this. sending the webpage in pieces
server.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
server.sendHeader("Pragma", "no-cache");
server.sendHeader("Expires", "-1");
server.setContentLength(CONTENT_LENGTH_UNKNOWN);

server.send(200, "text/html", "");         // here begin chunked transfer
server.sendContent("<html> <head> <title> ...................");   //put a piece of your webpage here
server.sendContent("<body> <row> ...................</html>"); //put another piece of your webpage here
server.client().stop();

Serial.printf("Free heap: %u\n", ESP.getFreeHeap());

ISSUE 2: OTA HTTPS call stopped to work and I could not update my ESP32 wirelessly, error below

I have solved disconnecting MQTT just before OTA and putting a delay before launching the update function
disconnectMQTT()
delay(3000);
handleUpdate();
setFlagUpdate(false);

I have the timer to reconnect MQTT so I just disconnected than it will automatically reconnect
ISSUE 3:
The more problematic issues. Post request returned error -1 as in the picture

I have solved disconnecting MQTT before each post request and putting a small delay
setPostInProgress(true);
disconnectMQTT();
delay(100);

This is the full code for the post request.
#include <HTTPClient.h>
#include <WiFiClientSecure.h>

bool sendCounterDataPhp()
{
	setPostInProgress(true);
	disconnectMQTT();
	delay(100);
	bool successFlag = false;
	WiFiClientSecure *client3 = new WiFiClientSecure;
	if (client3) {
		client3->setCACert(rootCACert);
		{ // Add a scoping block for HTTPClient https to make sure it is destroyed before WiFiClientSecure *client is
			HTTPClient https;

				Serial.print("[HTTPS] begin...\n");
				if (https.begin(*client3, "PUT_YOUR_WEBLINK_TO_YOUR_phpScript.php")) {
					/*start POST request*/
					https.addHeader("Content-Type", "application/x-www-form-urlencoded");

					String sendCounters = "my data";
					Serial.println(sendCounters);
					int httpResponseCode = https.POST(sendCounters);
					if (httpResponseCode > 0) {
						String response = https.getString();     //Get the response to the request
						Serial.println(httpResponseCode);        //Print return code
						Serial.println(response);                //Print request answer
						response.trim();                         //remove spaces and carrige return from string
						setMyResponse(response);
						successFlag = true;
					}
					else {
						Serial.print("Error on sending POST: ");
						Serial.println(httpResponseCode);
					}
					/*end POST request*/
					https.end();
				}
				else {
					Serial.printf("[HTTPS] Unable to connect\n");
				}
			}//for loop

		} // End extra scoping block
		delete client3;
	}
	else {
		Serial.println("Unable to create client");
	}
	if (successFlag) {
		setPostInProgress(false);
		return true;
	}
	else {
		setPostInProgress(false);
		return false;
	}
}

So my conclusion is that setting the MQTT TLS certificate was going into conflict with my other certificates that I use for HTTPS OTA to retrive my .bin file and for HTTPS POSTs. All the libraries from what I understand use WiFiClientSecure.h
The certificates were not the same and not on the same server. My MQTT mosquitto server has a certificate, my other server - where I have the .bin files - have another certificate.
I believe having two certificates was making the situation messy so I just disconnected MQTT every time I made another call.
I hope this helps as I have worked a lot to sort my code out. Now all works great, MQTT is encrypted and everything I had is working as before.

I think it all comes down to optimizations here. As I understand it basically works but only with a few 'hacks'.
A few remarks here:

Yes, the API has changed. It's not a drop-in replacement. But apart  fromcallback signatures it's the same. The "flow" of the program should be the same.
Total length: 1892816 --> is this the size of your firmware? Seems very big. Especially if your free heap is only 150k.
With some code reshuffling, you can use the onDisconnect callback instead of the delay when disconnecting. It might clutter the code though. ~Alternatively, you can poll with espMqttClient::connected()~ --> should I add status()?
Do you have heap problems or stack? I saw an increase in stack memory when using TLS. You might want to tweak (lower) the stack size to increase the available heap: https://github.com/bertmelis/espMqttClient/blob/gh-pages/index.md#emc_task_stack_size-10000
You are using the same CA certificate for both connections? Shouldn't be a problem but I really don't know why it doesn't get validated. You are sure this certificate is valid for both servers?

Yes with those hacks I made all work great now. It took me a while to figure them out though.

Yes I have seen you have basically maintained the same functions of async-mqtt-client. I really needed that so I didn't have to change anything in my publish, subscribe functions.
Yes. It is the size of a .bin I need to update another 16-bits PIC microcontroller. Anyway also when esp updates itself still it is 1.2MB of .bin because I am using ESP32 with 16MB (partition 6.25 APP / OTA / 3.25MB SPIFFs)
I prefer not to use the delay inside the onDisconnect() function it would be called too much. Adding a status like it is for WiFi (wifi.status=WL_CONNECTED) could be useful, but not mandatory. I made my own MQTT connection flag anyway.
I believe I have put so many function inside my ESP that I have problems for both heap and stack. I use PROGMEM when I can, which is filled with strings and I have 80KB of HTML webpage. I prefer to keep stack and heap as they are even if I believe is heap the more problematic.
I am using two different certificates. One for the MQTT connection, one for the rest (HTTPS POST and OTA). They are different and the certificates are validated now I have introduced the delays and I disconnected. I believe that ESP32 can manage only one certificate connection per time as both MQTT TLS and HTTPclient libraries use the Mbed TLS embedded in the ESP32 core. But now sure about it. It is the only explanation because it is rejecting me the certificate if I have MQTT active publishing TLS data in the background. Anyway now it works

I see. Nice to hear it is working.
As in the other issue #11 , memory usage is a bit higher. I guess it's the price we have to pay for secure connections.
I'm going to close this issue as the conflict lies somewhere in the underlying framework. I'm happy to help and improve the library where possible. Feel free to reopen this issue.

I believe I have put so many function inside my ESP that I have problems for both heap and stack. I use PROGMEM when I can, which is filled with strings and I have 80KB of HTML webpage. I prefer to keep stack and heap as they are even if I believe is heap the more problematic.

Mind that stack size is set per FreeRTOS task. Also for espMqttClient there is an exclusive stack. You can probably lower this, I haven't spent time on optimizing this. Lower the stack size and you gain heap.


Imgix path is missing in URL ?

Support for imgix has caught my attention! I have upgraded imager to the latest version and deployed my s3 bucket with the original images to imgix.
(in the examples below bucket and source have been replaced)
This is my s3 url:
https://s3-us-west-1.amazonaws.com/my-bucket/work-summary/work1.jpg
This is an imgix url that delivers the image just fine:
https://mysource.imgix.net/work-summary/work1.jpg
This is what imager spits out on my page:
https://mysource.imgix.net/work1.jpg
As you can see the path work-summary/ is missing in the imager URLs. Any idea why?
Here is my imager config:
  'imgixEnabled' => true,
  'imgixDomains' => ['mysource.imgix.net'],
  'imgixUseHttps' => true,
  'imgixSourceIsWebProxy' => false,
  'imgixShardStrategy' => 'cycle',
  'imgixGetExternalImageDimensions' => true

I have not set imgixUseCloudSourcePath. So the default true should be applied. Not sure why but the 'subfolder' is not added to the url for me..

imgixUseCloudSourcePath [bool]
Default: true
If enabled, Imager will prepend the Craft source path to the asset path, before passing it to the Imgix URL builder. This makes it possible to have one Imgix source pulling images from many Craft sources when they are on the same S3 bucket, but in different subfolder.

I have peeked a little into your code and have found this:
                if ((craft()->imager->getSetting('imgixUseCloudSourcePath', $transform) === true) && in_array($image->getSource()->type, array("S3", "Rackspace", "GoogleCloud"), true)) {
                    $path = implode("/", [$image->getSource()->settings['subfolder'], $image->getPath()]);
                } else {
                    $path = $image->path;
                }

So this means that the source needs to be an S3 source. This is the cause of my issues. I am using local sources and then upload the imager files via imager to S3!
Hmm.. do I have to convert all my sources to S3 sources... ?

Hi,
You don't have to have the files on S3, if the files are on a local server, you could set up a "Web Folder" source in Imgix and point it to you server. But that makes it a bit harder to use Imgix when developing locally.

I am using local sources and then upload the imager files via imager to S3!

Not sure what you mean by this, but generally, if you use Imgix, all the transforms happen on Imgix' side, so all the settings for paths/urls/aws/etc in Imager, isn't really relevant anymore.

Hmm.. do I have to convert all my sources to S3 sources... ?

You need to create a new source in Craft, set it up as you old one (don't forget custom fields), and move all the images over (which can be a problem if you have alot of images).

Not sure what you mean by this, but generally...
What I wanted to say is that up to now I am using Local Folders for image sources. The transform would happen on my server and the result would be uploaded to S3 via imager.

You need to create a new source in Craft, set it up as you old one (don't forget custom fields), and move all the images over (which can be a problem if you have alot of images).
Okay I think this is the best solution. Will try that!

Thank you so much for creating this neat little library.

I have figured out a faster way:

Upload all original images to S3 manually (I have used Transmit for that)
Change the asset source to S3 and point it to the right folder (from step 1)

That's it :) Works
(Please don't try this on a staging server first)


Merge in upstream changes

This PR brings in the upstream changes from AfterShip/phone@fecd687a1345e36777aa4ffd08eee811fd3ff73e.
@dllh @southp Would you mind giving this a sanity check before I merge?
Also fixes p2UL9c-2Z7-p2

Besides the latest problem reported by p2UL9c-2Z7It, it had addressed several Caribbean countries we didn't address previously as I noted in p2UL9c-2Uz. Also, I didn't spot any changes we made were obviously broken or reverted by this merge.
LGTM 🚢

Awesome, thanks for taking a look! I've done a bit more testing too. I'll go ahead and merge this in


Regression in type inference?

TypeScript Version:  2.1.1, 2.1.4
Code
declare function func(callback: () => void): any;
declare function func(callback: (arg: number) => void): any;

func(argx => { });

Expected behavior:
Successfully compile, even if --noImplicitAny is set. This is the behavior we saw until 2.0.10 (which appears reasonable, the second overload of func allows inferring that argx: number).
Actual behavior:
error TS7006: Parameter 'argx' implicitly has an 'any' type

Previously the compiler silently gave argx a type any. The reason is how the compiler resolves function expressions while doing overload resolution. the change in https://github.com/Microsoft/TypeScript/pull/11905 just exposed the error. So there is no change in what types were inferred, the change is the new error being reported.
you can work around this by specifying an explicit type annotation on argx , or removing the first signature, since it does not add value here.

Thanks! I'm surprised the compiler silently gave argx type any, after all the tools (e.g. VSCode) show argx: number on hover, so there seems to be a difference between the TypeScript language server and compiler?!
Wait, as I understand #11905, it should skip func(callback: () => void) now during resolution? Doesn't that precisely mean that number instead of any should be inferred?
The workaround is no problem, just thought I'd let you know since this broke the unit tests of https://github.com/Azure/autorest/ today (thousands of errors). Note that we can not remove "the first signature", in our case this is owned by mochajs!
For example, see https://github.com/Azure/autorest/blob/master/src/generator/AutoRest.NodeJS.Tests/AcceptanceTests/validationTests.ts#L34
done is the thing that now supposedly has type any (while VSCode reports MochaDone), it has a number of overloads including the one that "does not add any value" (but that is mochajs code, not ours).
We based all our tests on https://mochajs.org/#asynchronous-code which worked great without type annotations so far, now everything broke.
Cheers from building 18.

Wait, as I understand #11905, it should skip func(callback: () => void) now during resolution? Doesn't that precisely mean that number instead of any should be inferred?

that was an earlier iteration of the fix. the final change did not do that.

The workaround is no problem, just thought I'd let you know since this broke the unit tests of https://github.com/Azure/autorest/ today (thousands of errors). Note that we can not remove "the first signature", in our case this is owned by mochajs!

I would change the definition in mocha.d.ts and send a PR to DT. so that other ppl do not have to run int this.
the issue is the compiler does not handle overload on arity for callbacks now, which is this case.

Ahhh I see, thanks!


1.20.1 Support

Most big mods in 1.20 are for 1.20.1.
Would love to see a backport for it

The 1.19.4 branch is already compatible with 1.20.1.
Are you having trouble running it ?

oh I didn't know that sorry. I just tried it and it works perfectly! great mod


Problem with saving form / field values

First of all, thank you for the great extension!
I noticed that when I create an extension... It works just fine, but when I edit it and add other attribute fields these new fields dont work.
Basically I do these steps:

I create extension, prepare all fields, click on Save.
Download extension and install it on website. Everything works fine.
Go back in Module Creator, add some new fields in extension.
Uninstal the extension from both folders and Database
Instal a new version of extension with new fields.

On the website, in extension, I do see these new fields in both backend, and in Database as well... but when I click on save, the values are not saved, and I just get empty fields. in DB the values are NULL.
I tried different field types, Image, WYSIWYG, Text etc...
Always the same issue, after I add new fields on already created extension - the values dont get saved.
I use UMC <IP_ADDRESS> with Magento CE <IP_ADDRESS>
Regards,
Archie

Sorry for the late response. You were write, somehow it was cached even though I had cache disabled.
Anyways, if someone else will have the same issue, just clear the cache as tzyganyu recommended, it should work just fine.
Again, thanks for the GREAT GREAT extension :))

@ArchieWalker Just some additional information here, this is native behavior of Magento, not Marius' extension.
If you were to say, write your own installer script to add a column to the cms_page table for example, the cache would have to be flushed before seeing this new column reflected in your cms/page model objects. Even if all cache types listed under System -> Cache Management have been turned off at the time that the installer script executed.
While I haven't reviewed what is all continued to be cached, one can see by looking at the var/cache directory that there are yet many items cached still when we have all the "registered" cache types, so to speak, turned off.


rotateEncryption action is not available on the cluster in the UI

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):

Enable secret encryption on the cluster
Secrets are encrypted with a key
API has rotateEncryptionKey option.
On the cluster UI, there is NO option to Rotate Encryption Keys

Expected Result:
An action to rotate the encryption keys should be available on the UI
Other details that may be helpful:
Happens on 2.5.5 also
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.5.5 and 2.5-head - commit id: 8201e08
Installation option (single install/HA): single

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): rke do/custom
Kubernetes version (use kubectl version):

any

For now, let's move this out of v2.5.6 as I'm not sure if we want to view this in the UI.

This cluster had default recurring etcd backup set as 12 hours. But the default safe backup time interval for showing this action on the UI is 6 hours.

@deniseschannon to be clear are we moving this ticket out of 2.5.6? or are we rolling back the UI functionality completely?

@westlywright as per an offline discussion with @deniseschannon we will have this feature from UI and backend as is for now.


Move DeltaTime from property to Update method

Suggestion
Instead of public double DeltaTime { get; } -> Update(in NexusInputCollection inputs, in double deltaTime)
Additional context
No response

DeltaTime should be kept as property if the user want;s to use it outside of Update


nushellPlugins.skim: init at 0.7.0

Added package for nu_plugin_skim. It includes a simple test that the passed in nushell can load the plugin.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Updated PR to use hash instead of sha256 in fetchFromGitHub.

Thank you!


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20231027154103091 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20231027154103091 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
5 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.009%) to 41.568%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/book/bookTreeView.ts
1
36.91%

extensions/notebook/src/common/ports.ts
4
74.14%

Totals

Change from base Build<PHONE_NUMBER>:
-0.009%

Covered Lines:
30784

Relevant Lines:
69356

💛  - Coveralls


Fix support of AVX2.

@jcarpent You probably have a explanation for why this patch is fixing memory alignment issues when converting Eigen::matrix3d from python to c++. I just noticed it was fixing it.

The reason lies in Eigenpy 2.9.0 in fact. AVX support only works fully with Eigenpy 2.9.0 since I've forced the proper alignment of Eigen objects with Boost.Python.
The fix you provided here is just calling properly ordering the call to <eigenpy/fwd.hpp>. AVX-2 works well with Pinocchio 3x where all the Python bindings have been cleaned to operate with extra scalar exposition like Casadi types, etc.
Thanks for the fix, which should help other people to have vectorization support with Pinocchio 2x.

Ok make sense, thanks for the explanation. I will try to fix any similar import ordering issue I can find while running my own test suite.