UnexpectedValueException: Got unsupported type 0 'unknown'

Trying to insert a particular document into an existing collection. This is the error that I am getting:
PHP Fatal error:  Uncaught MongoDB\Driver\Exception\UnexpectedValueException: Got unsupported type 0 'unknown' in /home/live/daemon/coreClasses/vendor/mongodb/mongodb/src/Operation/InsertOne.php:98
Other documents are inserting fine.
This is the document that I am trying to insert:
pax Object
(
    [paxID] =><PHONE_NUMBER>
    [agencyID] => 91215644
    [bookings] => Array
        (
            [0] => Array
                (
                    [bookingID] => 1529267
                    [transactions] => Array
                        (
                            [0] => Array
                                (
                                    [tranType] => Air
                                    [tranDate] => 20170201
                                    [tranTime] =>
                                    [opCode] => 00000030cx
                                    [majOrig] =>
                                    [majDest] => hkg
                                    [hiFare] => 1737.00
                                    [loFare] => 1737.00
                                    [baseVal] => 1470.83
                                    [taxVal] => 266.17
                                    [ttlComm] => 86.83
                                    [reasonCode] => low
                                    [paxCount] => 1
                                    [tktNum] =><PHONE_NUMBER>015
                                    [confNum] => pklwev
                                    [advPur] => 0
                                    [tranID] => 922
                                    [segments] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [route] => lhr->hkg
                                                    [dep] => lhr
                                                    [dest] => hkg
                                                    [depDate] => 20170213
                                                    [arrDate] => 20170214
                                                    [opClass] => r
                                                    [depTime] => 0600
                                                    [arrTime] => 0150
                                                    [flightNum] => cx00250
                                                    [arClass] => r
                                                )
                                        )
                                )
                        )
                )
        )
)

Any ideas?

This error comes from phongo_bson_append() and hints at a corrupted PHP value outside of the control of the driver. A type of zero would be indicative of an uninitialized or undefined zval somewhere within this object.
Assuming this is reproducible, can you share a PHP script that creates this object (perhaps from unserialize()) and passes it to either MongoDB\BSON\fromPHP() or an insert to yield the exception?
I would also be curious if passing the very same object to json_encode() would result in json_last_error()](http://php.net/manual/en/function.json-last-error.php) returning JSON_ERROR_UNSUPPORTED_TYPE. In both the driver and the JSON extension, we use a switch to process different PHP types and this looks like it reaches the default case for an unsupported type.
Lastly, please follow up with full phpinfo() or php -i output so we can see some details about your environment (e.g. PHP version, driver version, OPcache).

PHP -i info:
phpinfo()
PHP Version => 7.0.15-0ubuntu<IP_ADDRESS>
System => Linux localhost.localdomain 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d
Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.0/cli/conf.d/10-opcache.ini,
/etc/php/7.0/cli/conf.d/10-pdo.ini,
/etc/php/7.0/cli/conf.d/15-xml.ini,
/etc/php/7.0/cli/conf.d/20-calendar.ini,
/etc/php/7.0/cli/conf.d/20-ctype.ini,
/etc/php/7.0/cli/conf.d/20-dom.ini,
/etc/php/7.0/cli/conf.d/20-exif.ini,
/etc/php/7.0/cli/conf.d/20-fileinfo.ini,
/etc/php/7.0/cli/conf.d/20-ftp.ini,
/etc/php/7.0/cli/conf.d/20-gd.ini,
/etc/php/7.0/cli/conf.d/20-gettext.ini,
/etc/php/7.0/cli/conf.d/20-iconv.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mbstring.ini,
/etc/php/7.0/cli/conf.d/20-mcrypt.ini,
/etc/php/7.0/cli/conf.d/20-mongodb.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-phar.ini,
/etc/php/7.0/cli/conf.d/20-posix.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini,
/etc/php/7.0/cli/conf.d/20-shmop.ini,
/etc/php/7.0/cli/conf.d/20-simplexml.ini,
/etc/php/7.0/cli/conf.d/20-sockets.ini,
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.0/cli/conf.d/20-sysvsem.ini,
/etc/php/7.0/cli/conf.d/20-sysvshm.ini,
/etc/php/7.0/cli/conf.d/20-tokenizer.ini,
/etc/php/7.0/cli/conf.d/20-wddx.ini,
/etc/php/7.0/cli/conf.d/20-xmlreader.ini,
/etc/php/7.0/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.0/cli/conf.d/20-xsl.ini
PHP API => 20151012
PHP Extension => 20151012
Zend Extension => 320151012
Zend Extension Build => API320151012,NTS
PHP Extension Build => API20151012,NTS
Debug Build => no
Thread Safety => disabled
Zend Signal Handling => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => provided by mbstring
IPv6 Support => enabled
DTrace Support => enabled
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
Registered Stream Filters => zlib., string.rot13, string.toupper, string.tolower, string.strip_tags, convert., consumed, dechunk, convert.iconv., mcrypt., mdecrypt.*
This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.15-0ubuntu<IP_ADDRESS>, Copyright (c) 1999-2017, by Zend Technologies

Configuration
calendar
Calendar support => enabled
Core
PHP Version => 7.0.15-0ubuntu<IP_ADDRESS>
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_prepend_string => no value => no value
error_reporting => 22527 => 22527
exit_on_timeout => Off => Off
expose_php => On => On
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
file_uploads => On => On
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
log_errors_max_len => 1024 => 1024
mail.add_x_header => On => On
mail.force_extra_parameters => no value => no value
mail.log => no value => no value
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
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 => 16K => 16K
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 => 17 => 17
short_open_tag => Off => Off
SMTP => localhost => localhost
smtp_port => 25 => 25
sql.safe_mode => Off => Off
sys_temp_dir => no value => no value
track_errors => Off => Off
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.multibyte => Off => Off
zend.script_encoding => no value => no value
ctype
ctype functions => enabled
date
date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => Europe/London
Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => no value => no value
dom
DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.9.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled
exif
EXIF Support => enabled
EXIF Version => 1.4 $Id: 8bdc0c8f27c2c9dd1f7551f1f9fe3ab57a06a4b1 $
Supported EXIF Version => 0220
Supported filetypes => JPEG,TIFF
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
fileinfo
fileinfo support => enabled
version => 1.0.5
libmagic => 522
filter
Input Validation and Filtering => enabled
Revision => $Id: 28fcca4bfda9c9907588a64d245b49cb398249d8 $
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
gd
GD Support => enabled
GD headers Version => 2.1.1
GD library Version => 2.1.1
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.6.1
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 8
PNG Support => enabled
libPNG Version => 1.2.54
WBMP Support => enabled
XPM Support => enabled
libXpm Version => 30411
XBM Support => enabled
WebP Support => enabled
Directive => Local Value => Master Value
gd.jpeg_ignore_warning => 0 => 0
gettext
GetText Support => enabled
hash
hash support => enabled
Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512 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 fnv132 fnv1a32 fnv164 fnv1a64 joaat 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.23
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
json version => 1.4.0
libxml
libXML support => active
libXML Compiled Version => 2.9.3
libXML Loaded Version => 20903
libXML streams => enabled
mbstring
Multibyte Support => enabled
Multibyte string engine => libmbfl
HTTP input encoding translation => disabled
libmbfl version => 1.3.2
oniguruma version => 5.9.6
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support => enabled
Multibyte regex (oniguruma) backtrack check => On
Multibyte regex (oniguruma) version => 5.9.6
Directive => Local Value => Master Value
mbstring.detect_order => no value => no value
mbstring.encoding_translation => Off => Off
mbstring.func_overload => 0 => 0
mbstring.http_input => no value => no value
mbstring.http_output => no value => no value
mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml+xml) => ^(text/|application/xhtml+xml)
mbstring.internal_encoding => no value => no value
mbstring.language => neutral => neutral
mbstring.strict_detection => Off => Off
mbstring.substitute_character => no value => no value
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
Version => 2.5.8
Api No => 20021217
Supported ciphers => cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Supported modes => cbc cfb ctr ecb ncfb nofb ofb stream
Directive => Local Value => Master Value
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
mongodb
MongoDB support => enabled
MongoDB extension version => 1.2.9
MongoDB extension stability => stable
libbson bundled version => 1.5.5
libmongoc bundled version => 1.5.5
libmongoc SSL => enabled
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => disabled
libmongoc SASL => enabled
Directive => Local Value => Master Value
mongodb.debug => no value => no value
mysqli
MysqlI Support => enabled
Client API library version => mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Directive => Local Value => Master Value
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => no value => no value
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
mysqli.rollback_on_cached_plink => Off => Off
mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $
Compression => supported
core SSL => supported
extended SSL => supported
Command buffer size => 4096
Read buffer size => 32768
Read timeout => 31536000
Collecting statistics => Yes
Collecting memory statistics => No
Tracing => n/a
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions => mysqli,pdo_mysql
mysqlnd statistics =>
bytes_sent => 0
bytes_received => 0
packets_sent => 0
packets_received => 0
protocol_overhead_in => 0
protocol_overhead_out => 0
bytes_received_ok_packet => 0
bytes_received_eof_packet => 0
bytes_received_rset_header_packet => 0
bytes_received_rset_field_meta_packet => 0
bytes_received_rset_row_packet => 0
bytes_received_prepare_response_packet => 0
bytes_received_change_user_packet => 0
packets_sent_command => 0
packets_received_ok => 0
packets_received_eof => 0
packets_received_rset_header => 0
packets_received_rset_field_meta => 0
packets_received_rset_row => 0
packets_received_prepare_response => 0
packets_received_change_user => 0
result_set_queries => 0
non_result_set_queries => 0
no_index_used => 0
bad_index_used => 0
slow_queries => 0
buffered_sets => 0
unbuffered_sets => 0
ps_buffered_sets => 0
ps_unbuffered_sets => 0
flushed_normal_sets => 0
flushed_ps_sets => 0
ps_prepared_never_executed => 0
ps_prepared_once_executed => 0
rows_fetched_from_server_normal => 0
rows_fetched_from_server_ps => 0
rows_buffered_from_client_normal => 0
rows_buffered_from_client_ps => 0
rows_fetched_from_client_normal_buffered => 0
rows_fetched_from_client_normal_unbuffered => 0
rows_fetched_from_client_ps_buffered => 0
rows_fetched_from_client_ps_unbuffered => 0
rows_fetched_from_client_ps_cursor => 0
rows_affected_normal => 0
rows_affected_ps => 0
rows_skipped_normal => 0
rows_skipped_ps => 0
copy_on_write_saved => 0
copy_on_write_performed => 0
command_buffer_too_small => 0
connect_success => 0
connect_failure => 0
connection_reused => 0
reconnect => 0
pconnect_success => 0
active_connections => 0
active_persistent_connections => 0
explicit_close => 0
implicit_close => 0
disconnect_close => 0
in_middle_of_command_close => 0
explicit_free_result => 0
implicit_free_result => 0
explicit_stmt_close => 0
implicit_stmt_close => 0
mem_emalloc_count => 0
mem_emalloc_amount => 0
mem_ecalloc_count => 0
mem_ecalloc_amount => 0
mem_erealloc_count => 0
mem_erealloc_amount => 0
mem_efree_count => 0
mem_efree_amount => 0
mem_malloc_count => 0
mem_malloc_amount => 0
mem_calloc_count => 0
mem_calloc_amount => 0
mem_realloc_count => 0
mem_realloc_amount => 0
mem_free_count => 0
mem_free_amount => 0
mem_estrndup_count => 0
mem_strndup_count => 0
mem_estndup_count => 0
mem_strdup_count => 0
proto_text_fetched_null => 0
proto_text_fetched_bit => 0
proto_text_fetched_tinyint => 0
proto_text_fetched_short => 0
proto_text_fetched_int24 => 0
proto_text_fetched_int => 0
proto_text_fetched_bigint => 0
proto_text_fetched_decimal => 0
proto_text_fetched_float => 0
proto_text_fetched_double => 0
proto_text_fetched_date => 0
proto_text_fetched_year => 0
proto_text_fetched_time => 0
proto_text_fetched_datetime => 0
proto_text_fetched_timestamp => 0
proto_text_fetched_string => 0
proto_text_fetched_blob => 0
proto_text_fetched_enum => 0
proto_text_fetched_set => 0
proto_text_fetched_geometry => 0
proto_text_fetched_other => 0
proto_binary_fetched_null => 0
proto_binary_fetched_bit => 0
proto_binary_fetched_tinyint => 0
proto_binary_fetched_short => 0
proto_binary_fetched_int24 => 0
proto_binary_fetched_int => 0
proto_binary_fetched_bigint => 0
proto_binary_fetched_decimal => 0
proto_binary_fetched_float => 0
proto_binary_fetched_double => 0
proto_binary_fetched_date => 0
proto_binary_fetched_year => 0
proto_binary_fetched_time => 0
proto_binary_fetched_datetime => 0
proto_binary_fetched_timestamp => 0
proto_binary_fetched_string => 0
proto_binary_fetched_json => 0
proto_binary_fetched_blob => 0
proto_binary_fetched_enum => 0
proto_binary_fetched_set => 0
proto_binary_fetched_geometry => 0
proto_binary_fetched_other => 0
init_command_executed_count => 0
init_command_failed_count => 0
com_quit => 0
com_init_db => 0
com_query => 0
com_field_list => 0
com_create_db => 0
com_drop_db => 0
com_refresh => 0
com_shutdown => 0
com_statistics => 0
com_process_info => 0
com_connect => 0
com_process_kill => 0
com_debug => 0
com_ping => 0
com_time => 0
com_delayed_insert => 0
com_change_user => 0
com_binlog_dump => 0
com_table_dump => 0
com_connect_out => 0
com_register_slave => 0
com_stmt_prepare => 0
com_stmt_execute => 0
com_stmt_send_long_data => 0
com_stmt_close => 0
com_stmt_reset => 0
com_stmt_set_option => 0
com_stmt_fetch => 0
com_deamon => 0
bytes_received_real_data_normal => 0
bytes_received_real_data_ps => 0
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.2g  1 Mar 2016
OpenSSL Header Version => OpenSSL 1.0.2g  1 Mar 2016
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 => 8.38 2015-11-23
PCRE JIT Support => enabled
Directive => Local Value => Master Value
pcre.backtrack_limit => 1000000 => 1000000
pcre.jit => 1 => 1
pcre.recursion_limit => 100000 => 100000
PDO
PDO support => enabled
PDO drivers => mysql
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $
Directive => Local Value => Master Value
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
Phar
Phar: PHP Archive support => enabled
Phar EXT version => 2.0.2
Phar API version => 1.1.1
SVN revision => $Id: bf89220e0ebdb68ebb5379ffc0a32997f94e77e7 $
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => disabled (install pecl/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
Revision => $Id: b691ca925e7a085e6929579c4eba8fed0732e0ef $
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
Version => $Id: 3054da9d8c9ebb2a7e0a7df1f0cdf3cbbe9f8bd8 $
session
Session Support => enabled
Registered save handlers => files user
Registered serializer handlers => php_serialize php php_binary wddx
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_secure => Off => Off
session.entropy_file => /dev/urandom => /dev/urandom
session.entropy_length => 32 => 32
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 0 => 0
session.hash_bits_per_character => 5 => 5
session.hash_function => 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.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 => 0 => 0
shmop
shmop support => enabled
SimpleXML
Simplexml support => enabled
Revision => $Id: b8b5c37931a53e50a937c0aef2a26d351e173215 $
Schema support => enabled
sockets
Sockets Support => enabled
SPL
SPL support => enabled
Interfaces => Countable, 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 => 1 => 1
assert.bail => 0 => 0
assert.callback => no value => no value
assert.exception => 0 => 0
assert.quiet_eval => 0 => 0
assert.warning => 1 => 1
auto_detect_line_endings => 0 => 0
default_socket_timeout => 60 => 60
from => no value => no value
url_rewriter.tags => a=href,area=href,frame=src,input=src,form=fakeentry => a=href,area=href,frame=src,input=src,form=fakeentry
user_agent => no value => no value
sysvmsg
sysvmsg support => enabled
Revision => $Id: dfb999763f95bfe9609fae60b4e07a492888ec7c $
sysvsem
Version => 7.0.15-0ubuntu<IP_ADDRESS>
sysvshm
Version => 7.0.15-0ubuntu<IP_ADDRESS>
tokenizer
Tokenizer Support => enabled
wddx
WDDX Support => enabled
WDDX Session Serializer => enabled
xml
XML Support => active
XML Namespace Support => active
libxml2 Version => 2.9.3
xmlreader
XMLReader => enabled
xmlwriter
XMLWriter => enabled
xsl
XSL => enabled
libxslt Version => 1.1.28
libxslt compiled against libxml Version => 2.9.3
EXSLT => enabled
libexslt Version => 1.1.28
Zend OPcache
Opcode Caching => Disabled
Optimization => Disabled
SHM Cache => Enabled
File Cache => 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.fast_shutdown => 0 => 0
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => 1 => 1
opcache.file_cache_only => 0 => 0
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.inherited_hack => On => On
opcache.interned_strings_buffer => 4 => 4
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 2000 => 2000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 64 => 64
opcache.optimization_level => 0x7FFFBFFF => 0x7FFFBFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
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.8
Linked Version => 1.2.8
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
TERM => xterm-256color
SHELL => /bin/bash
SSH_CLIENT => <IP_ADDRESS> 37360 22
SSH_TTY => /dev/pts/2
USER => live
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:.Z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=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:.jpg=01;35:.jpeg=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:
MAIL => /var/mail/live
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD => /home/live/daemon
LANG => en_US.UTF-8
SHLVL => 1
HOME => /home/live
LANGUAGE => en_US:
LOGNAME => live
SSH_CONNECTION => <IP_ADDRESS> 37360 <IP_ADDRESS> 22
_ => /usr/bin/php
OLDPWD => /home/live/daemon/coreClasses
PHP Variables
Variable => Value
$_SERVER['TERM'] => xterm-256color
$_SERVER['SHELL'] => /bin/bash
$_SERVER['SSH_CLIENT'] => <IP_ADDRESS> 37360 22
$_SERVER['SSH_TTY'] => /dev/pts/2
$_SERVER['USER'] => live
$_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:.Z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=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:.jpg=01;35:.jpeg=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['MAIL'] => /var/mail/live
$_SERVER['PATH'] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$_SERVER['PWD'] => /home/live/daemon
$_SERVER['LANG'] => en_US.UTF-8
$_SERVER['SHLVL'] => 1
$_SERVER['HOME'] => /home/live
$_SERVER['LANGUAGE'] => en_US:
$_SERVER['LOGNAME'] => live
$_SERVER['SSH_CONNECTION'] => <IP_ADDRESS> 37360 <IP_ADDRESS> 22
$SERVER[''] => /usr/bin/php
$_SERVER['OLDPWD'] => /home/live/daemon/coreClasses
$_SERVER['PHP_SELF'] =>
$_SERVER['SCRIPT_NAME'] =>
$_SERVER['SCRIPT_FILENAME'] =>
$_SERVER['PATH_TRANSLATED'] =>
$_SERVER['DOCUMENT_ROOT'] =>
$_SERVER['REQUEST_TIME_FLOAT'] =><PHONE_NUMBER>.4485
$_SERVER['REQUEST_TIME'] =><PHONE_NUMBER>
$_SERVER['argv'] => Array
(
)
$_SERVER['argc'] => 0

I'll try passing this object to json_encode() to see if I get any errors from it.
I was eventually able to insert the document - but only after erasing the collection in MongoDB that I was inserting it into and rebuilding it from scratch!

I was eventually able to insert the document - but only after erasing the collection in MongoDB that I was inserting it into and rebuilding it from scratch!

I can't imagine how clearing the connection would affect the driver's behavior in this case, as BSON encoding of the insert document happens before we send anything to the server. I'm not sure what version of the library you're using but I expect the exception is coming from this line, which is before we execute the write operation. This is why I suggested using MongoDB\BSON\fromPHP() above, as it exercises the same code path for BSON encoding without relying on a connection.

Closing this due to inactivity. Feel free to follow up if there are any new developments.


Please make a new release

In our setup, the mod does not work with LAN. Apparently https://github.com/notnotnotswipez/MoreCompany/commit/1d24ccec2071c0326eda15804fe1d4996bc13cf3 fixes it. We tried to compile master ourselves, but gave up because it is quite a hassle to set up everything.
I would like to kindly ask you to release a new version. Would especially appreciate it if you would publish it to both Thunderstore and GitHub.

@notnotnotswipez Could you, please?


Include previous hackathon work to our master

Summary:
We should include previous hackathon's task which is mostly ready to be merged to master, preferably before next hackathon :)

@neslihanturan Is https://github.com/commons-app/apps-android-commons/tree/wikimedia-hackathon-2018 this the hackathon branch?
The first task would be to bring this branch up to date with the master. Post that, we can identify the pending issues and merge it to master. :)

Have rebased the branch with master and have made a few minor changes to fix the build.
Great work @neslihanturan  @ejegg and @whym for building this during the hackathon.
Peer review functionality works for me but I think it's not ready for production yet.

The flow didn't feel intuitive for me and I didn't know what would happen on clicking Yes or No.
I would prefer to skip an image without reviewing. Later, I realized that the refresh button gives me a new image, but it would be nice to have this more prominently.
IMO, the image should be clickable and should open media details activity.
It's asking me to review the categories but it doesn't show the currently added categories. It should show the current categories on the same page.
On clicking Yes, a popup shows with some pre-written text. I didn't realize that it is editable. Maybe we could reuse #1824.

Yet, I feel that it would be okay to merge it to master in its current state and give our alpha users a chance to provide feedback.
cc: @misaochan @nicolas-raoul

I'm OK with merging it to master, but if it is not in a polished state, maybe we can control access to it. For instance, instead of making it a main nav bar item, we can instead have a link to it in About or such? And when the user accesses the activity, we mention that it is still a work in progress, and mostly only useful for power users.

And when the user accesses the activity, we mention that it is still a work in progress, and mostly only useful for power users.

This is a good point.
A similar idea might be to create a preference item for "Turn on experimental features" so that the user can (and have to) choose to see experimental features like this? If turned off, the link would be disabled or hidden. It can bring more complexity to the implementation, though.

A similar idea might be to create a preference item for "Turn on experimental features" so that the user can (and have to) choose to see experimental features like this? If turned off, the link would be disabled or hidden. It can bring more complexity to the implementation, though.

Interesting idea! Instead of a setting (which could indeed increase complexity), what about just having an "Experimental features" activity that would house features like this? Would reduce complexity and keep them all in one place.

A similar idea might be to create a preference item for "Turn on experimental features" so that the user can (and have to) choose to see experimental features like this? If turned off, the link would be disabled or hidden. It can bring more complexity to the implementation, though.

I like the idea of having something called experimental features in the app. This could indeed be another task in itself. Someone can help in building a simple framework for experimental features and this issue can leverage it.
For now, I like @misaochan's suggestion of having all experimental features accessible from a single activity.

Eventually, we can work on building a simple service/framework for handling experimental features/enabling certain features based on some checks. I have opened a new issue for discussing the framework. #2269.

I am willing to polish this changes and make them ready for production. But should I merge  #2257 and work top of it on master or should I work on the task branch and then merge all together? I think working on  master doesn't seem safe since we plan to have 2.10 soon. On the other hand these changes are not very related with current code base, it is an addition, if it is ok for @maskaravivek I suggest closing #2257 for now and working on that branch, then when it is ready we can merge to master.

Yes, please work on a separate branch and only merge it to master later, thanks! :)

Hello @nicolas-raoul, @maskaravivek, @misaochan
Started woking on this issue.
Shall I make the pull request for above mentioned changes to the hackathon branch (https://github.com/commons-app/apps-android-commons/tree/wikimedia-hackathon-2018)
or I shall update this branch with the master and make pull request to the master branch.

Pull request should be made to the master branch :-)
There might be conflicts to solve, good luck!
Then please fix at least the first point raised by https://github.com/commons-app/apps-android-commons/issues/2253#issuecomment-450715009 , for instance by replacing "Yes" with "In scope" and "No" with "Out of scope".
@neslihanturan I realize just now that you might have been working on this? I suggest pushing any commit now so that Silky can try them out :-)

Thank you @nicolas-raoul.
I think slight change in UI can fix both first and second point mentioned in #2253 (comment).
Shall I proceed for following changes?

In order to make the flow more intuitive -
Add "Next" button instead of "No" to move to next question.
Currently there is no way to so to previous question, so adding "Previous" button would be useful.
"Previous" button will be missing for the first question and similarly "Next" button will be missing for
the last question.

In order to make refreshing and getting new image more prominent -
Currently user get new image by clicking at refresh button at the top right corner or clicking at "No"
button for the last question. Instead of this, having one large button for getting new image for
reviewing would be nice.

Screenshot of layout close to the actual result :-)

Hi @silkypriya , thanks for your interest.
I think this issue needs some discussion before starting:)
Firstly, this feature is implemented during the hackathon by 3 people, so needs some more work.

The functionality works just fine
One of the main problem is it requires to have a new item on nav drawer, we need to discuss are we willing to implement it in that way or not.
The second problem is the UI should be pretty buggy, and redesign would be nice.

When we implemented peer review on hackathon, there wasn't such thing as explore in the app. Thus, we had a randomizer which randomly displays some images to review. But I think the ability to choose the image before review is better from user's point of view. Now we have the explore feature, so user can use explore, go to media details of the image that she wants to explore and review it too.
For simplicity my suggestion is let's merge this task with #2016 . I mean:
- Let's do not add a new item to nav bar
- Do not randomize images instead use the images from explore
Current UI and work flow is as:

Yes: horizontal arrows, No: vertical arrows
My suggestion for a new and simple UI is:

Yes/No: vertical arrows
Clicking outside cancels the flow.
What do you think?

There are so many mobile uploads each day, we need the review option to be
more visible, I would say.
I would argue in favor of an item in the navigation bar, that starts
reviews (potentially many) in the mobile uploads category only, by
last-uploaded order (or randomly if it is easier but only recent uploads).
I don't think we need a "Review other image" button, the "Next" button
should do that.
On Thu, Mar 14, 2019, 21:06 neslihanturan<EMAIL_ADDRESS>wrote:

Hi @silkypriya https://github.com/silkypriya , thanks for your interest.
I think this issue needs some discussion before starting:)
Firstly, this feature is implemented during the hackathon by 3 people, so
needs some more work.

The functionality works just fine
One of the main problem is it requires to have a new item on nav
drawer, we need to discuss are we willing to implement it in that way or
not.
The second problem is the UI should be pretty buggy, and redesign
would be nice.

When we implemented peer review on hackathon, there wasn't such thing as
explore in the app. Thus, we had a randomizer which randomly displays some
images to review. But I think the ability to choose the image before review
is better from user's point of view. Now we have the explore feature, so
user can use explore, go to media details of the image that she wants to
explore and review it too.
For simplicity my suggestion is let's merge this task with #2016
https://github.com/commons-app/apps-android-commons/issues/2016 . I
mean:

Let's do not add a new item to nav bar
Do not randomize images instead use the images from explore

Current UI and work flow is as:
[image: review1]
https://user-images.githubusercontent.com/3127881/54354246-323dd680-4667-11e9-88c9-64b85a7d8617.png
Yes: horizontal arrows, No: vertical arrows
My suggestion for a new and simple UI is:
[image: review2]
https://user-images.githubusercontent.com/3127881/54355636-a5951780-466a-11e9-862a-77cce098efee.png
Yes/No: vertical arrows
Clicking outside cancels the flow.
What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/2253#issuecomment-472825027,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBlXBNopeIBluGHCG1Yeit3mXmtMWks5vWjtMgaJpZM4ZlmyH
.

Actually, a complete review has 4 steps, user may want to review other image before completing all independent 4 steps too.
If we will keep it as separate item on nav bar, then we can redirect user from explore to review activity when they wanted to review an image in explore page. So that we ca both use randomization and explore+review thing.

If we decide to use it as a new item on nav bar, then I think current UI is quite material design friendly. Some problems are:
- When we switch to next one, whole page switches. Instead just question supposed to switch.
Problems on newly shared UI:
- I think only having "yes" feels weird.
- Previous design looks more material design friendly, let's keep the design more minimal (do not use colored buttons, just texts are fine.)
My design suggestion based on @maskaravivek 's comments:
- By adding some explanation we can emphasize what will happen if I click to Yes
- Yes and no are more clear now
- Next and prev buttons are for moving on questions, not images. You can use the button on the top to have a new image.
- We can include a long explanation along with review another image question mark

IMO, the image should be clickable and should open media details activity.
This can be a future enhancement, I think.

It's asking me to review the categories but it doesn't show the currently added categories. It should show the current categories on the same page.

Agreed, should be added to the transparent grey field as a new line.

On clicking Yes, a popup shows with some pre-written text. I didn't realize that it is editable. Maybe we could reuse #1824.

Strongly agreed.

How about renaming "Review another image?" to "Skip this image?"
I suggest showing the "Yes, out of scope" button in red and the "Seems fine" button in green, because it seems easy to get distracted and click "Yes" thinking "Yes it is on-topic"
I am not sure previous/next are really needed but if they are implemented already let's try with them.

Hello @nicolas-raoul , @neslihanturan
Made pull request implementing changes discussed above.
Would love your suggestions for improvement.
Thank you!

The latest mockup looks fantastic IMO! :)

Isn't it @misaochan ! I am on it for testing now, thanks for fast responses @silkypriya

Thank you! @neslihanturan @misaochan


Need a way to position the label of the TextField

Right now, there is no way to position the label the same level with the decorated TextField like this:
Label:  TextValue
It always put on top of the TextFiled, which is annoying when you need more space:
new TextField(
              textAlign: TextAlign.left,
              maxLines: 1,
              enabled: false,
              decoration: const InputDecoration(
                icon: const Icon(Icons.person),
                labelText: 'From:',
                labelStyle: const TextStyle(debugLabel: "From Label Style", ),
              ),
              controller: new TextEditingController(text: "$fromAddress"),
            ),

It would be nice if adding a property in decoration to control this something like:
labelAlign: TextAlign.left

I can't agree with you anymore. :)

I'm going to close this as I'm not quite sure what kind of solution is being asked for, and it hasn't attracted much activity in quite some time. If @benqethan or anyone else is still looking for something like this, please comment and we can reopen, or create a new issue.


[DLAB-1054]: Added possibility to retrieve custom images per project

Added possibility to retrieve custom images per project by adding project field to images collection.

Do not merge this pr until changes on front-end side will be promoted


ScrollView Insets wrong calculation when change first responder

When I change the first responder between cells in the same section the scrollview edge insets are wrong and the scroll view pulls up.

I have the same problem and your work around seems to work.


Add click to midi recorder

Fixes https://github.com/tensorflow/magenta-js/issues/130

Hey @tambien does this look ok re: how I am using Tone.Loop? Not super familiar with Tone.js so I want to make sure I'm not being a dummy and there's a better way


fix: show modelProvider in agent's model dropdown

Quick fix to display modelProvider in the model dropdown when selecting a model for an agent.
Note: Added quick question about the modelProvider in the related issue: #613

do you think you could make the provider text use the text-muted-foreground class? Might make it a bit easier to read

do you think you could make the provider text use the text-muted-foreground class? Might make it a bit less busy

Yeah of course, lemme add that in


property names and collisions

While trying to add the window operator windowTime, I ran into a name collision with windowTime on ReplaySubject... which isn't a big deal, I privatized and renamed the one on ReplaySubject to _windowTime. It did strike me, though, that we might want to look into renaming everything that is a privatized property to be prefixed with an underscore to prevent those sorts of collisions. Particularly anything on the Observable types.

I agree. It's a simple thing and it favors style.

Closing this for now. It's not really a priority.


Check for ReadyReplicas instead when waiting for StatefulSet

Wait till pod becomes ready in the prombench cli
Signed-off-by: Hrishikesh Barman<EMAIL_ADDRESS>

Should we do the same for the other commands?

The CurrentReplicas is working as expected with Deployment so I decided to leave it as is.


Wexflow Wishlist and Feature Requests

Hi,
If you want a new feature in Wexflow, feel free to add your feature request on this board with a description of what you want.
If you found a bug, please open a new issue and don't leave a message on this board.
Kind regards,

Hi, Just recently came across this project and it has a lot of potential!
I think it would be a nice feature if we had more control over the input/output of a Task. (if this is already possible please let me know)
Currently we can move around data between tasks using the Hashmap.
Let's say I have the following use case:
Step 1: Retrieve data from SQL
Step 2: Transform data to different data model
Step 3: Submit transformed data to external API
What I did now is create three custom Tasks that basically do what I want them to
Task 1: Custom Tasks with input for SQL server information & query
Task 2: Transform data from Task 1 to different model
Task 3: Send transformed data to API
Maybe it is possible to look at how the workflow system that NodeRED has functions, there a Task can have a input object and a output object. Within that task you can then transform the received data.
Maybe the way the output of one Tasks serves as the input for another could also work in this project?
If something isn't clear please let me know! :-)

@aelassas Makes sense and looks good, I didn't take a look at the selectEntities yet, seems to be the missing link in my use case!

I have a new suggestion. The addition of Jint https://github.com/sebastienros/jint
This will enable users of the workflow system to evaluate JavaScript expressions


Fix PAssert with empty collections

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

This branch attempts to fix this in a fairly canonical way, by actually inserting an empty iterable when the PCollection is empty and thus cannot be gathered via GBK.

R: @tgroh
There's a bit of an issue with the in-process runner in the case of accumulation mode, which could be a symptom that this approach does not work.

To be closed?

Yup. The conflicts are because its base has been rolled back. This will be merged in with a roll-forward of #457.


Provide docs for setting cloud provider credentials via the Management API

With the Rest API being deprecated and customers moving to the Management API and single sign-on, we need a documented method to set cloud credentials.

Sending to SIG product for a quick chat about the unknowns here

From @T-Kukawka - covered on Azure here

AWS documentation is now available at https://docs.giantswarm.io/ui-api/management-api/credentials/


Readme contains "Example Usage" code for the wrong project.

The code examples in the "Example Usage" section are for your Laravel Places repo, not the adobe sign repo.
Can you provide similar code samples for the adobe-sign-laravel repo?

+1

Sorry about that. I've updated the readme with a few examples. The rest of of the methods that are available should be within the documentation of adobe's website at https://secure.na1.echosign.com/public/docs/restapi/v5.


Does the audio player work for one path at a time?

Version of react-native-audio-recorder-player
version 2.6.0
Platforms you faced the error (IOS or Android or both?)
Both IOS and Android
Expected behavior
when using startPlayer() in a flatlist of items, when one audio path is playing and while one is playing if i start another player I am expecting other player to play.
Expecting multiple players to play at the same time.
Actual behavior
when using startPlayer() in a flatlist of items, when one audio path is playing and while one is playing if i start another player the other player does not play.
Steps to reproduce the behavior
Create a Flatlist with each item having its own audioRecordPlayer

Hi @hmhm2292 , how did you solve this? Can you please share how you've implemented it?

i'm also looking for this solution


Question: Is there a way to select all symbols in the document and swap together, rather than swapping each symbols one by one?

https://github.com/sonburn/symbol-instance-locator


Maya: Extract viewport thumbnail fails

Bug
Generation of thumbnails from viewport in Maya fails on Thumbnail plugin.

[cuID:2eqzt1f]

@antirotor do we have any more information about this? I didn't manage to reproduce

Not sure if it is not related to #2968


Update Stop-SPTaxonomyReplication.md

Fill in placeholder text.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Stop-SPTaxonomyReplication.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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.


The MonCommandTarget & MonCommandTargetWithInputBuffer functions behave differently on ceph octopus

This is mainly an issue created to help track (and motivate me to pursue the cause of) unexpected behavior when using MonCommandTarget* function calls on ceph octopus.
First, the "get_command_descriptions" returns different content when the server is octopus but the client libs are nautilus vs. octopus.

Nautilus output look similar to MonCommand output. JSON is "tightly packed" and prefixes look normal.
Octopus output looks different: the JSON is more "pretty printed" and there are commands with odd signatures like "0" and "1".

Similarly command json that functions on nautilus (for example "prefix":"df") fails to work on octopus.
This isn't strictly a go-ceph issue, but as we are "advertising" the functionality by putting it in our library, I would like to understand the issue better. Plus, users may come here first with similar questions in the future if these apis see use.

Possibly related:

https://github.com/ceph/ceph/pull/30217
https://github.com/ceph/ceph/pull/30859
https://github.com/ceph/ceph/pull/31138

Similarly: https://github.com/ceph/ceph/pull/30217/commits/215d267fa66f7d6e9ac04a82ef2331f68a09ffa3

Got some answers, here<EMAIL_ADDRESS>

I'm going to close this. If we need to handle the differences that should probably happen at a higher layer than the MonCommand* functions themselves, leaving the functions "thin" wrappers over the librados functions.


pynvml.nvml.NVMLError_Unknown

I met the following error when running inference, don't know how to fix it.
Traceback (most recent call last):
  File "inference.py", line 95, in <module>
    main()
  File "inference.py", line 40, in main
    set_affinity(args.local_rank)
  File "/mnt/c/Users/wongm/Desktop/Neural_Actor_Main_Code/imaginaire/imaginaire/utils/gpu_affinity.py", line 56, in set_affinity
    os.sched_setaffinity(0, dev.getCpuAffinity())
  File "/mnt/c/Users/wongm/Desktop/Neural_Actor_Main_Code/imaginaire/imaginaire/utils/gpu_affinity.py", line 37, in getCpuAffinity
    for j in pynvml.nvmlDeviceGetCpuAffinity(self.handle, device._nvml_affinity_elements):
  File "/home/finn/.local/lib/python3.6/site-packages/pynvml/nvml.py", line 1745, in nvmlDeviceGetCpuAffinity
    _nvmlCheckReturn(ret)
  File "/home/finn/.local/lib/python3.6/site-packages/pynvml/nvml.py", line 765, in _nvmlCheckReturn
    raise NVMLError(ret)
pynvml.nvml.NVMLError_Unknown: Unknown Error

Fixed

I have the same problem too,please tell  me how to fix it,I will be sincerely appreciate it if you can tell me!

Fixed
I have the same problem too,please tell me how to fix it,I will be sincerely appreciate it if you can tell me!


Partial CompletionItems?

Hi there! I'm wondering if there's a way to modify the CompletionItemProvider behavior so that provideCompletionItems doesn't have to provide the complete list of items (even using resolveCompletionItem it appears that the entire list needs to be provided on the first character of the word). I'm concerned about having to provide an enormous list of possible CompletionItems for cases like the Monaco Playground example in which the completion item could be any npm package.

I think there is a specific flag you can set in your result (if you return a CompletionList) where you can set the flag isIncomplete to true and fill up the items with the ones you have matching so far.
This will result in the subsequent typing in the editor to call provideCompletionItems again on each additional typed letter, rather than filtering locally.

@alexandrudima I may be missing here, but does that mean the flag using resolveCompletionItem with isIncomplete property on the items should somehow resolve issues when having a extremely large completion list? Right now I've tested that it doesn't show any completion at all if the items are at 100k.

@jrieken might have further insights.
AFAIK if you have very many items, isIncomplete can be used successfully to filter some of the items on your side and on subsequent typing the completion provider will be invoked again.

Yes, the isIncomplete flag is to signal to the editor that further typing needs further completion request. Usually, when having typed f and triggered intellisense further typing doesn't re-trigger but filters down the list of suggestions. However, when you query some database for suggestions, thing of all tags in your GitHub project, you might have more results as more characters are typed f -> top 100 results and fo -> top 100 results which are disjunct


Difficulty testing out PIMFlow on custom network.

Hi,
I am trying to run a custom network using your framework. In particular, I am using a modified version of resnet-18 (it's classifier layers have been modified to work with 10 classes instead of 1000). Furthermore, this network is expected to have an input shape of (3, 32, 32) instead of (3, 224, 224) as in the original resnet-18. Note that this removes the adaptive2d layer in the classified (as is present in the original torchvision model).
My first question is: What are the minimal modifications necessary for me to run this version of resnet-18 using your simulator?
I understand some modifications are necessary. I will list the modifications I made below such that the code works with my version of resnet-18 (let's call it resnet-18-mine).

I modified PIMFlow/pim/util.py. I defined my model here and modified the MODEL_LIST to include resnet-18-mine as well as modified get_torch_model to return my model when asked for resnet-18-mine.
I did the same in extract_layers.py.
I did the same in inspect_shape.py.
I modified get_random_input to return (1, 3, 32, 32) when asked for resnet-18-mine.

Is this all I need to do? I am facing some difficulty which I will elaborate below:
I first ran this for mobilenet-v2 to determine everything was installed correctly and working. I proceeded to follow the same commands for resnet-18-mine.
The following commands worked:
./pimflow -m=profile -t=split -n=resnet-18-mine
./pimflow -m=profile -t=pipeline -n=resnet-18-mine
./pimflow -m=stat --conv_only -n=resnet-18-mine
./pimflow -m=solve -n=resnet-18-mine
However, running the following command (TVM_BACKTRACE=1 ./pimflow -m=run --gpu_only -n=resnet-18-mine) afterwards gives an error which I have put in a file:
output.txt
In particular, the error seems to be that it is expecting 25088 and not 512. I do not know why it would be expecting 25088 (however, it is interesting to note that 25088 is the output to the linear layer if the input to the network is (3, 224, 224) and not (3, 32, 32)). Do you have any idea why this could be happening?
Is there some other place where I have to modify the expected input shape and/or am I missing something?
Also, does this imply that only square strides work in your simulator?

Hi,
I haven't tested a broad spectrum of CNN architectures, especially when input size changes. Could you share your model code in Python or an ONNX file? It would be good for me to inspect the problem first to locate where it arises.
For the last question, I assume input models have square stride (padding and dilation may have more strict restrictions). Some restrictions could be relieved, but I put assertion to prevent untested model testing which could possibly introduce silent performance bugs.
Thank you

Ah, fair. I will get back to you after I try to run some non-square stride layer. In the mean-time, here is the onnx file for the model. I uploaded it to google drive.
If that is not acceptable, here is the model:
class MyModelSimple(pl.LightningModule): #THIS IS NOT RELEVANT, PLEASE IGNORE
    def __init__(self, num_classes=100, **kwargs):
        super(MyModelSimple, self).__init__()
        self.model = models.resnet18()
        self.model.avgpool = nn.Dropout(p=0.333)
        self.model.fc = nn.Linear(512, num_classes)

    def forward(self, x):
        x = self.model(x)
        return x

I defined and trained it on a separate machine using pytorch-lightning before exporting it as an onnx.
Then I used onnx2pytorch to convert it to a torch model that is used by your simulator. Please let me know if I can be more helpful.

Hi,
I tried it with a non-square stride convolutional layer as well. It did not seem to create any errors (other than the one above).

Hi,
I was able to recreate the issue above with another neural network which I designed manually rather than using torchvision models. The onnx file for this neural network is here.
I realize that the error is not the difference in size (that is only a warning).
The error seems to be that this line results in a list index out of range, if I follow the steps above. Why would this list index be out of range and how does one fix it?

Apologies for the deluge of questions!
I can't seem to understand what the "get_kernel_start_and_end" function is supposed to do. It is supposed to upon a stats.csv file (I have attached mine). But what exactly is it supposed to output. Does my stats.csv file look okay?  I have noticed that there is no "forward_kernel_cuda_start" in this which your code seems to expect.
stats.csv

I'm really sorry for the late reply. I'm currently behind my working schedule... I'm reproducing your bug today, and I hope I find the source of the problem or at least locate where the problem occurs.
It seems that your stats.csv is malformed. It must have forward_kernel_cuda_start and forward_kernel_cuda_end kernels. The purpose of get_kernel_start_and_end function is to parse the name of the above kernels to find where the actually (target CONV) GPU kernels start and end.

No worries about the late reply! Thank you. I did manage to make it work with resnet-18 (that is slightly modified for cifar-10) using just those modifications listed above if I write a torch class in each of those three files. That is good news. I guess the issue is in the onnx file?
Is there a recommended way you would want for the onnx file to the exported or imported for your simulator to use?

I think your ONNX models are fine once it is constant-folded (e.g., batch normalization layer folded into weight) regardless of how they are created.
I'm not sure exactly what is the source of the previous errors, but I guess that NVBit may produce errors in the profiling phase, leading to missing some kernels. Have you checked split-<NET>.err or pipeline-<NET>.err?

Ah, those don't exist for me. I was following the instructions given in the readme and not in run.example.sh. I don't think .err files exist in that case.
(Also, you should change the --gpu-only command in the readme ./pimflow -m=run --gpu_only -n=mobilenet-v2 to include policy=None, it fails otherwise for me and I think that is expected as per run.example.sh).
But yes, let me run it again and try to catch something in those .err files. I did skim everything in stdout and didn't find any errors afaik but I could have missed something. I will get back to you on this soon.

It will take me a while to get back to you with those results since I am running the simulator on some large network already and don't want to stop it and lose progress. Apologies.
In the mean-time, I had a few high level questions. The first is:

The NEWTON architecture does not allow for anything other than GEMM operations. How are you computing the results of something like sigmoid (or other activations)? They must be done on the GPU SMs right? How exactly is this overhead catered for in your simulator if ramulator and accelsim are fed traces separately (if that is correct).
This is a slightly superficial question but what GPU are you using in accelsim? I understand the architecture is 2000 series but which particular one (2080 ti or 2060 etc)? Is there a place you have defined these where they could be easily modified? And if so, would your simulator still work with these modifications?
Thanks!

For the first question, you pointed out the weak point of our work. As we received the same question at the conference, I said that we haven't precisely modeled the data movement from the PIM device to the host. I calculated the bandwidth of the data transferred and concluded that it wasn't a serious problem as the original Newton paper argues that data movement of reduction and applying activation is effectively hidden during PIM computation. Actually, later versions of Newton architecture have native support of activation functions (native ReLU, LeakyReLU, and look-up-table-based others), so applying activation function is not a serious problem though it would lengthen the simulation time. But one caveat is that I haven't modeled the gather (or reduction) operation during CONV (or GEMV) for the same reason stated above. At that time I thought that it is a valid assumption, but it may be wrong or too aggressive.
For the second question, I used GeForce RTX 2080Ti GPU hardware for tracing (and simulation) but used the RTX 2060 config files provided/tested in the Accel-Sim configuration since they have the same architecture. You can modify the config files.
Thank you!

Thank you for your reply, @yongwonshin. I have another question (thanks again for answering these).
The newton architecture requires an inherent structuring of the data for it to be used in the PIM. This adds overhead (for example, you must do tiling and some sort of patching together on the "host"). Is the tiling and the patching together also considered negligible (just like the activation functions) or is it done on the GPU cores?

I would also like to discuss another thing with you. I was trying to plot the split for each layer. I took mobilenetv2 realized that, in a couple of places, some odd things were happening which I could not explain. If you could help me with that, I will be very grateful. Here are my questions:

Is max_performance_mobilenet-v2_16_4.csv in the pipeline folder a valid source of information?
If it isn't, how would I find the split per layer and gpu/pim cycles per layer?
Is it normal/expected for some layers to have a non-zero/non-100 split but have only GPU cycles (PIM cycles = 0) or vice versa?
Is it normal/expected for some layers to be entirely mapped to GPU while others are entirely mapped to PIM?
How are the gpu cycles calculated? If they're using accel-sim, is that approximate or using the actual physical gpu on my device?

I have attached an image. The blue line is the split (or RATIO). The green bars are the GPU cycles per layer and red bars are the PIM cycles per layer.
I will appreciate an answer to these question and already appreciate the detailed answers you have given me.

Thank you! I am looking forwards to your further replies.

Hi,
I am asking another question (apologies again for so many, your kindness in answering them is very valuable!).
Could you point me in the direction of where the matmul layers are split between PIM and GPU? The transform.py apply function here does it for conv layers because your satisfy function works for conv only. I want to investigate its effect on transformers like BERT as you have.

Hi, I am asking another question (apologies again for so many, your kindness in answering them is very valuable!). Could you point me in the direction of where the matmul layers are split between PIM and GPU? The transform.py apply function here does it for conv layers because your satisfy function works for conv only. I want to investigate PIMFlow's effect on transformers like BERT as you have done in your paper :)

You're right. I only do split for Conv. For MatMul/Gemm, I set the batch size manually from the script (batch_size = math.ceil(int(config[5]) * args.split_ratio / 100). Our primary focus is CNN, so we don't support BERT in the code since large matrix-matrix multiplication is more suitable for accelerators.

I would also like to discuss another thing with you. I was trying to plot the split for each layer. I took mobilenetv2 and realized that, in a couple of places, some odd things were happening which I could not explain. If you could help me with that, I will be very grateful. Here are my questions:

Is max_performance_mobilenet-v2_16_4.csv in the pipeline folder a valid source of information?
If it isn't, how would I find the split per layer and gpu/pim cycles per layer?
Is it normal/expected for some layers to have a non-zero/non-100 split but have only GPU cycles (PIM cycles = 0) or vice versa?
Is it normal/expected for some layers to be entirely mapped to GPU while others are entirely mapped to PIM?
How are the gpu cycles calculated? If they're using accel-sim, is that approximate or using the actual physical gpu on my device?

I have attached an image. The blue line is the split (or RATIO). The green bars are the GPU cycles per layer and red bars are the PIM cycles per layer.
I will appreciate an answer to these question and already appreciate the detailed answers you have given me.

2: Performance for each layer for all split ratios is saved as CSV files: {model}_{TERM}{i}_{args.n_channel}_{args.n_gwrite}{postfix}.csv. process_csv.py gathers each record and calculates optimal performance.
1: It's a valid source. to_full_layer.py calculates maximum performance. But its performance (cycle) information is "mixed", which means you should assemble the records of the other row to get the correct pipelined performance. Assembling is done at solving phase. CSV and script dependency is quite (maybe unnecessarily) complicated. I should have cleaned them up for usability and readability...
3: If that happens during the split/pipeline profiling phase, it could be a bug. But I think that happens during "stat", which assembles performance records. If you think that's a bug, then profiling and statistics results (.csv) may be helpful.
4: Yes. That's expected behavior.
5: I used Accel-Sim cycles using GPU traces obtained from the actual GPU (GeForce RTX 2080 Ti). But I used tested RTX 2060 configs in the Accel-Sim. If you use a GPU that has Turing architecture, then you could get similar performance trends. Simulation results could have some discrepancies with the actual GPU, but we used the simulator to investigate the performance impact of the number of memory channels.

Hi, I am slightly confused by this statement "Our primary focus is CNN, so we don't support BERT in the code since large matrix-matrix multiplication is more suitable for accelerators." I would imagine that FC layers would be suited for both PIM and GPU necessitating the use of data splitting?
Thank you for your answers, again.

We support the FC layer with batch size 1, but there's no splitting. But for BERT, (sequence length x batch size) corresponds to the batch size of FC, leading to matrix-matrix multiplication. For matrix-matrix multiplication (A x B), we split the B matrix in column dimension to make two matrix multiplications {AxB1, AxB2} without reduction. (in case of splitting row dimension, we need reduction: A x B1 + A x B2.
Thank you!

Hi,
I don't understand why you are multiplying the speed by 32 when latency hiding is enabled here.
Could you give me some insight?
Thank you for your previous (and future) replies.

Hi,
While GWRITE latency is not specified in the original paper, we assume GWRITE needs 32-column access for input data fetching.
Thank you.


How can I see destination url?

If I am hitting for example, www.google.com, I want to read it from the packet information. How can I do it?

There are two ways you can find a destination URL in your network traffic. DNS, and HTTP.
For HTTP check the payload of a GET request, and for DNS look inside the layer containing A record information.


Attributify doesn't work for arbitary class name.

[] does not meet the html attribute naming rules.
Use grid="rows-[38px_1fr]" or grid-rows="[38px_1fr]" instead of it. Another way back to use class.


Could I get the shooting time of those videos that have been transmitted by RTSP?

Is there any api or some other ways to get the shooting time of videos that transmitted by v4l2rtspserver？
Thank you！

Hi,
Did you try to use the RTP time ?
Best Regards,
Michel.


FitnessFunction fitness calculator

Simlilar to FitnessValue but takes a function which gets called on a molecule and returns  a value
For example

class FitnessFunction(FitnessCalculator):
    def __init__(self, fitness_fn, use_cache=False):
        self._fitness_fn = fitness_fn
        super().__init__(use_cache=use_cache)

    def get_fitness(self, mol):
        return self._fitness_fn(mol)

A use case can be generating random fitness values

a = FitnessFunction(lambda mol: np.random.uniform(0, 100))
b = FitnessFunction(lambda mol: np.random.normal())

# sample from uniform dist
f1= a.get_fitness(some_mol)
# sample from gaussian dist
f2 = b.get_fitness(some_mol)

Of course this is still useful if you just want define a simple fitness function in the input file and dont want to define your own fitness calculator.

@stevenbennett96
is this something like what you had in mind?

Yes, this is exactly what I had in mind!

I just realized this makes FitnessValue redundant as well.

Well it was nice while we had it.


filter packages by the existence of a package.json file

Running yarn 1.0 in the recompose repo causes the installNestedPackageDeps script to run forever in a loop because it tries to run yarn in the src/packages/rx-recompose directory, which doesn't have a package.json file, which causes the dependencies to be installed in the root project, triggering the already executing postinstall script again and again.
If you'd prefer I can just remove the src/packages/rx-recompose directory, but perhaps there's a reason it's still there.

Codecov Report

Merging #575 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #575   +/-   ##
=======================================
  Coverage   88.37%   88.37%
=======================================
  Files          49       49
  Lines         370      370
=======================================
  Hits          327      327
  Misses         43       43

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 f4745a0...7541b03. Read the comment docs.

Thank you!


Embedding the favicon in the meta data

Use "data:" to embed the favicon in the response from the server.

I think we've decided not to pursue this, as per #362?


attempt to accept multiple 'upstream' servers in nginx.conf

@erwinvaneyk I still haven't tested this but the idea is that  when we pass "localhost:6443,localhost:10250" the nginx.conf will be generated something like:
    upstream backend {
      localhost:6443 server1
     localhost:10250 server2
    }

Signed-off-by: jasmingacic<EMAIL_ADDRESS>

I see by the conflicts that you already added the same changes. Should I close this one out?


IAS API v3 is considered deprecated

FPC should transition to v4: https://api.trustedservices.intel.com/documents/sgx-attestation-api-spec.pdf

addressed in commit #77d5d5d9 as part of PR #444


Add stable diffusion onnx runtime pipeline

In this PR we add a stable diffusion pipeline enabling the ONNX export of stable diffusion models (export must be set to True) and ONNX Runtime inference.
from optimum.onnxruntime import ORTStableDiffusionPipeline

model_id = "runwayml/stable-diffusion-v1-5"
stable_diffusion = ORTStableDiffusionPipeline.from_pretrained(model_id , export=True)
prompt = "sailing ship in storm by Leonardo da Vinci"
images = stable_diffusion(prompt).images

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks for the review @regisss !! The documentation of ORTStableDiffusionPipeline was added in onnxruntime/usage_guides/models.mdx, which seems to appear on the generated documentation

Thanks for the review @regisss !! The documentation of ORTStableDiffusionPipeline was added in onnxruntime/usage_guides/models.mdx, which seems to appear on the generated documentation

Geez my bad :grin: I don't know why I thought it was a new file, I'll take a look at it!

@echarlaix Could you trigger manually these CI on main after merging this PR?
https://github.com/huggingface/optimum/actions/workflows/test_onnxruntime_gpu.yml
https://github.com/huggingface/optimum/actions/workflows/test_exporters_gpu.yml
https://github.com/huggingface/optimum/actions/workflows/test_exporters_slow.yml
I'd like to have them run on the latest commit before the release. Thanks!

@echarlaix Could you trigger manually these CI on main after merging this PR?

Will do !


Feat: can have the primary color visible on instance Tab visible in trsync

Expected
Show the primary color of instance on the name of instance visible in trsync.
Use case
Each tracim instance can have a specific primary color, so I want to show the name of instance with his primary color to distinguish instance quickly.

Tracim api /api/system/applications permit to get the primary color. Coloration of tab like more complicated (currently TKinter) : https://stackoverflow.com/questions/23038356/change-color-of-tab-header-in-ttk-notebook


Remove versions from README.rst

I've removed the dependency list, because it is constantly out of sync with the actual requirements. In addition, I don't think that we need to feature them that prominently in the README, since all the information is contained in the metadata anyway.

We already parse package metadata (ultimately from pyproject.toml) for syncing min python version in our docs:
https://github.com/mne-tools/mne-python/blob/53f258debb781aeee2c2e5cbf449f37822e3a898/doc/conf.py#L1297-L1300
We could do something similar with our README (i.e., a pre-commit hook that updates the README whenever min versions are changed in pyproject.toml)

I wouldn't do that, let's not add more magic to things that could be simple. If someone needs to know the exact requirements, they should refer to pyproject.toml, the canonical and standardized location for such information.

I guess we have different definitions of "magic" 🧙🏻 --- to me, this is "sensible automation to reduce the manual work needed to keep things from getting out of sync / inaccurate". I also think there are many users who might end up on our repo webpage and not know what pyproject.toml is (much less to know that it is where they should look for dependency info --- especially given that there's a file called "READ ME" that contains similar information!)
So I am +1 for automating the pyproject.toml -> README.md synchronization (for key dependencies only). If folks aren't on board with that, then I'd rather remove the info from README entirely than have to manually keep it in sync.

+1 for removing entirely from README.

To me pyproject.toml is a dev thing and README and our website are user-facing so it would be good to have the min deps listed in the README still. I don't think the magic to update would be all that complicated, and so far over the last few months the stuff we've added with autofix and via GHA have worked pretty well and reduced maintenance much more than they have added to it (net benefit), so I'm happy to have a bit more magic!


x/tools/gopls: errors when using with monaco-languageclient

What version of Go are you using (go version)?

$ go version
go version go1.15.6 linux/amd64

Does this issue reproduce with the latest release?
Yes, this is the latest release.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/Go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/Go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build619587994=/tmp/go-build -gno-record-gcc-switches"

What did you do?
I'm trying to use the latest version of gopls (0.6.1) to provide a language server for a browser-based instance of the Monaco editor, using vscode-ws-jsonrpc and monaco-languageclient with a React app. I've got this working with pyls and bash-language-server perfectly fine, but when I try it with gopls I get some errors.
Logs
View browser logs

A request has failed. See the output for more information.
lsp.palcode.dev: [Error - 18:21:01] Starting client failed
Couldn't start client lsp.palcode.dev
monaco-commands.ts:12 Uncaught (in promise) TypeError: Cannot read property 'addCommand' of undefined
at MonacoCommands.registerCommand (monaco-commands.ts:12)
at Object.registerCommand (vscode-api.ts:788)
at ExecuteCommandFeature.register (client.js:1650)
at ExecuteCommandFeature.initialize (client.js:1630)
at MonacoLanguageClient.initializeFeatures (client.js:2462)
at client.js:2147

These server logs were generated with the rpc.trace option turned on.
View server logs

0|lsp  | JSON Server: [Trace - 18:23:35.683 PM] Sending request 'initialize - (0)'.
0|lsp  | Params: {"clientInfo":{"name":"vscode"},"rootPath":null,"rootUri":null,"capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]}},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true}}},"trace":"off","workspaceFolders":null,"processId":1279748}
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.693 PM] Received response 'initialize - (0)' in 9ms.
0|lsp  | Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":""},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"executeCommandProvider":{"commands":["gopls.generate","gopls.fill_struct","gopls.regenerate_cgo","gopls.test","gopls.tidy","gopls.update_go_sum","gopls.undeclared_name","gopls.go_get_package","gopls.add_dependency","gopls.upgrade_dependency","gopls.remove_dependency","gopls.vendor","gopls.extract_variable","gopls.extract_function","gopls.gc_details","gopls.generate_gopls_mod"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"path\":\"golang.org/x/tools/gopls\",\"version\":\"v0.6.1\",\"sum\":\"h1:vD171EDBkyUVyp9B45IYXklV/VEfbHgX0FKw0Q0dO30=\",\"deps\":[{\"path\":\"github.com/BurntSushi/toml\",\"version\":\"v0.3.1\",\"sum\":\"h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\"},{\"path\":\"github.com/google/go-cmp\",\"version\":\"v0.5.1\",\"sum\":\"h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=\"},{\"path\":\"github.com/sergi/go-diff\",\"version\":\"v1.1.0\",\"sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\"},{\"path\":\"golang.org/x/mod\",\"version\":\"v0.3.0\",\"sum\":\"h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=\"},{\"path\":\"golang.org/x/sync\",\"version\":\"v0.0.0-20201020160332-67f06af15bc9\",\"sum\":\"h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=\"},{\"path\":\"golang.org/x/tools\",\"version\":\"v0.0.0-20201217163546-c88dec5c6b05\",\"sum\":\"h1:4hzTNH658xirWc4MvAx9HK2/2hY6z42i1+lRK8OzeJE=\"},{\"path\":\"golang.org/x/xerrors\",\"version\":\"v0.0.0-20200804184101-5ec99f83aff1\",\"sum\":\"h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\"},{\"path\":\"honnef.co/go/tools\",\"version\":\"v0.0.1-2020.1.6\",\"sum\":\"h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=\"},{\"path\":\"mvdan.cc/gofumpt\",\"version\":\"v0.0.0-20200927160801-5bfeb2e70dd6\",\"sum\":\"h1:z+/YqapuV7VZPvBb3GYmuEJbA88M3PFUxaHilHYVCpQ=\"},{\"path\":\"mvdan.cc/xurls/v2\",\"version\":\"v2.2.0\",\"sum\":\"h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=\"}]}"}}
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.741 PM] Sending notification 'initialized'.
0|lsp  | Params: {}
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.745 PM] Received request 'client/registerCapability - (1)'.
0|lsp  | Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"}]}
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.746 PM] Sending request 'shutdown - (1)'.
0|lsp  | Params:
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.815 PM] Sending response 'client/registerCapability - (1)' in 70ms.
0|lsp  | Result:
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:35.818 PM] Received response 'shutdown - (1)' in 71ms.
0|lsp  | Result: null
0|lsp  |
0|lsp  |
0|lsp  | [Trace - 18:23:35.818 PM] Received notification 'window/logMessage'.
0|lsp  | Params: {"type":3,"message":"2020/12/29 18:23:35 Shutdown session\n\tshutdown_session=1\n"}
0|lsp  |
0|lsp  |
0|lsp  | JSON Server: [Trace - 18:23:36.213 PM] Sending notification 'exit'.
0|lsp  | Params:

Here's the frontend code I'm using:
import {
    CloseAction,
    createConnection,
    ErrorAction,
    MonacoLanguageClient,
    MonacoServices,
} from 'monaco-languageclient';
import { listen, MessageConnection } from 'vscode-ws-jsonrpc';
import { editor } from 'monaco-editor';
import { TaskLanguage } from '../types';

function createLanguageClient(connection: MessageConnection) {
    return new MonacoLanguageClient({
        name: 'lsp.palcode.dev',
        clientOptions: {
            documentSelector: ['go'],
            errorHandler: {
                error: () => ErrorAction.Continue,
                closed: () => CloseAction.DoNotRestart,
            }
        },
        connectionProvider: {
            get(errorHandler, closeHandler) {
                return Promise.resolve(createConnection(
                    connection,
                    errorHandler,
                    closeHandler,
                ));
            }
        }
    })
}

    try {
        MonacoServices.get();
    } catch (e) {
        MonacoServices.install(editor);
    }

    const webSocket = new WebSocket(lspURL + '/' + language);
    webSocket.onerror = () => {};
    let pingInterval: number;
    listen({
        webSocket,
        onConnection: (connection) => {
            const client = createLanguageClient(connection);
            const disposable = client.start();
            connection.onClose(() => disposable.dispose());
            connection.onError(() => {});

            pingInterval = window.setInterval(() => {
                webSocket.send('ping');
            }, 20000);
        },
    });

And here's my backend code:
const http = require("http");
const rpc = require('vscode-ws-jsonrpc');
const server = require('vscode-ws-jsonrpc/lib/server');
const lsp = require('vscode-languageserver');
const ws = require("ws");
const languages = require("./languages");

function launch(socket) {
    const reader = new rpc.WebSocketMessageReader(socket);
    const writer = new rpc.WebSocketMessageWriter(socket);
    const socketConnection = server.createConnection(reader, writer, () => socket.dispose());
    const serverConnection = server.createServerProcess('JSON', '/root/Go/bin/gopls', ['-rpc.trace', 'serve']);
    server.forward(socketConnection, serverConnection, message => {
        if (rpc.isRequestMessage(message)) {
            if (message.method === lsp.InitializeRequest.type.method) {
                const initializeParams = message.params;
                initializeParams.processId = process.pid;
            }
        }
        return message;
    });
}

const server = http.createServer().listen(8080);
    const socket = new ws.Server({
        server,
        perMessageDeflate: false,
    });

    socket.on('connection', (client) => {
        const iWebSocket = {
            send: content => client.send(content),
            onMessage: cb => client.onmessage = event => {
                if (event.data !== 'ping') {
                    cb(event.data);
                }
            },
            onError: cb => client.onerror = event => {
                if ('message' in event) {
                    cb(event.message)
                }
            },
            onClose: cb => client.onclose = event => cb(event.code, event.reason),
            dispose: () => client.close(),
        };

        launch(iWebSocket);
    });

I realise this error may have very little to do with gopls and could be more related to the other libraries I'm using, but I'm not too sure what's causing it. Thanks for the help, and please let me know if you need any more logs/info.
What did you expect to see?
I'm expecting to see all features of Gopls functioning in my frontend Monaco editor.
What did you see instead?
The above JS errors are thrown on the frontend with (seemingly) no error message on the backend. The Monaco editor has no LSP functionality.

It looks like the client has a problem registering the commands the gopls sends in initialization request--do the other servers send commands in the list of capabilities? It looks like initialization fails and then the client sends gopls a shutdown request. Is it possible to add more error logging?
As you said, I don't think this is related to gopls itself.

Thanks for the reply! I've established that it's almost certainly not an issue with gopls but rather with monaco-languageclient. In case anyone else experiences issues like this, I've opened an issue here: https://github.com/TypeFox/monaco-languageclient/issues/244
Thanks again for the help


Incorrect time zones

I noticed that the real time/date of tweets returned when writing a json file has the timezone as eastern time, but the times are actually UTC.

The time of tweets as well as the timezone correspond to your system time.

Can you show me an example of it being written as eastern time? The timezones should be saved as GMT (UTC +0)