[libmysql] build failure

Host Environment

OS: Windows
Compiler: 16.10.0 Preview 2.1
Vcpkg package management program version: 2021-01-13-d67989bce1043b98092ac45996a8230a059a2d7e

To Reproduce
Steps to reproduce the behavior:
./vcpkg install libmysql
Failure logs
>vcpkg install libmysql
Computing installation plan...
The following packages will be built and installed:
  * boost-algorithm[core]:x86-windows -> 1.75.0
  * boost-align[core]:x86-windows -> 1.75.0
  * boost-any[core]:x86-windows -> 1.75.0
  * boost-array[core]:x86-windows -> 1.75.0
  * boost-assert[core]:x86-windows -> 1.75.0
  * boost-atomic[core]:x86-windows -> 1.75.0#1
  * boost-bimap[core]:x86-windows -> 1.75.0
  * boost-bind[core]:x86-windows -> 1.75.0
  * boost-build[core]:x64-windows -> 1.75.0
  * boost-chrono[core]:x86-windows -> 1.75.0#1
  * boost-compatibility[core]:x86-windows -> 1.75.0
  * boost-concept-check[core]:x86-windows -> 1.75.0#2
  * boost-config[core]:x86-windows -> 1.75.0
  * boost-container[core]:x86-windows -> 1.75.0#1
  * boost-container-hash[core]:x86-windows -> 1.75.0
  * boost-conversion[core]:x86-windows -> 1.75.0
  * boost-core[core]:x86-windows -> 1.75.0
  * boost-date-time[core]:x86-windows -> 1.75.0#1
  * boost-detail[core]:x86-windows -> 1.75.0
  * boost-dynamic-bitset[core]:x86-windows -> 1.75.0
  * boost-endian[core]:x86-windows -> 1.75.0
  * boost-exception[core]:x86-windows -> 1.75.0#1
  * boost-foreach[core]:x86-windows -> 1.75.0
  * boost-format[core]:x86-windows -> 1.75.0
  * boost-function[core]:x86-windows -> 1.75.0
  * boost-function-types[core]:x86-windows -> 1.75.0
  * boost-functional[core]:x86-windows -> 1.75.0
  * boost-fusion[core]:x86-windows -> 1.75.0
  * boost-geometry[core]:x86-windows -> 1.75.0
  * boost-graph[core]:x86-windows -> 1.75.0#1
  * boost-integer[core]:x86-windows -> 1.75.0
  * boost-intrusive[core]:x86-windows -> 1.75.0
  * boost-io[core]:x86-windows -> 1.75.0
  * boost-iterator[core]:x86-windows -> 1.75.0
  * boost-lambda[core]:x86-windows -> 1.75.0
  * boost-lexical-cast[core]:x86-windows -> 1.75.0
  * boost-math[core]:x86-windows -> 1.75.0#1
  * boost-modular-build-helper[core]:x64-windows -> 1.75.0#9
  * boost-move[core]:x86-windows -> 1.75.0
  * boost-mp11[core]:x86-windows -> 1.75.0
  * boost-mpl[core]:x86-windows -> 1.75.0
  * boost-multi-index[core]:x86-windows -> 1.75.0
  * boost-multiprecision[core]:x86-windows -> 1.75.0
  * boost-numeric-conversion[core]:x86-windows -> 1.75.0
  * boost-optional[core]:x86-windows -> 1.75.0
  * boost-parameter[core]:x86-windows -> 1.75.0
  * boost-phoenix[core]:x86-windows -> 1.75.0
  * boost-polygon[core]:x86-windows -> 1.75.0
  * boost-pool[core]:x86-windows -> 1.75.0
  * boost-predef[core]:x86-windows -> 1.75.0
  * boost-preprocessor[core]:x86-windows -> 1.75.0
  * boost-property-map[core]:x86-windows -> 1.75.0
  * boost-property-tree[core]:x86-windows -> 1.75.0
  * boost-proto[core]:x86-windows -> 1.75.0
  * boost-qvm[core]:x86-windows -> 1.75.0
  * boost-random[core]:x86-windows -> 1.75.0#1
  * boost-range[core]:x86-windows -> 1.75.0
  * boost-ratio[core]:x86-windows -> 1.75.0
  * boost-rational[core]:x86-windows -> 1.75.0
  * boost-regex[core]:x86-windows -> 1.75.0#2
  * boost-serialization[core]:x86-windows -> 1.75.0#1
  * boost-smart-ptr[core]:x86-windows -> 1.75.0
  * boost-spirit[core]:x86-windows -> 1.75.0
  * boost-static-assert[core]:x86-windows -> 1.75.0
  * boost-system[core]:x86-windows -> 1.75.0#1
  * boost-test[core]:x86-windows -> 1.75.0#1
  * boost-thread[core]:x86-windows -> 1.75.0#1
  * boost-throw-exception[core]:x86-windows -> 1.75.0
  * boost-tokenizer[core]:x86-windows -> 1.75.0
  * boost-tti[core]:x86-windows -> 1.75.0
  * boost-tuple[core]:x86-windows -> 1.75.0
  * boost-type-index[core]:x86-windows -> 1.75.0
  * boost-type-traits[core]:x86-windows -> 1.75.0
  * boost-typeof[core]:x86-windows -> 1.75.0
  * boost-uninstall[core]:x86-windows -> 1.75.0
  * boost-uninstall[core]:x64-windows -> 1.75.0
  * boost-unordered[core]:x86-windows -> 1.75.0
  * boost-utility[core]:x86-windows -> 1.75.0
  * boost-variant[core]:x86-windows -> 1.75.0
  * boost-vcpkg-helpers[core]:x86-windows -> 7#2
  * boost-winapi[core]:x86-windows -> 1.75.0
  * boost-xpressive[core]:x86-windows -> 1.75.0
  * icu[core]:x64-windows -> 69.1#9
  * icu[core]:x86-windows -> 69.1#9
  * libevent[core,thread]:x86-windows -> 2.1.12#1
    libmysql[core]:x86-windows -> 8.0.20#2
  * lz4[core]:x86-windows -> 1.9.3
  * openssl[core]:x86-windows -> 1.1.1k
  * xxhash[core]:x86-windows -> 0.8.0#1
  * zlib[core]:x86-windows -> 1.2.11#10
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x86-windows...

Exits with %ERRORLEVEL% = 1

Could you try rerunning with --debug on the command line?

Certainly.
C:\>vcpkg --debug install libmysql
[DEBUG] Feature flag 'binarycaching' unset
[DEBUG] Feature flag 'manifests' unset
[DEBUG] Feature flag 'compilertracking' unset
[DEBUG] Feature flag 'registries' unset
[DEBUG] Feature flag 'versions' unset
[DEBUG] BuiltinRegistry initialized with: ""
[DEBUG] Using vcpkg-root: C:\Program Files\vcpkg
[DEBUG] Using installed-root: C:\Program Files\vcpkg\installed
[DEBUG] BuiltinRegistry initialized with: ""
[DEBUG] Using buildtrees-root: C:\Program Files\vcpkg\buildtrees
[DEBUG] Using downloads-root: C:\Program Files\vcpkg\downloads
[DEBUG] Using packages-root: C:\Program Files\vcpkg\packages
[DEBUG] Using scripts-root: C:\Program Files\vcpkg\scripts
[DEBUG] Using ports-root: C:\Program Files\vcpkg\ports
[DEBUG] Using versions-root: C:\Program Files\vcpkg\versions
[DEBUG] Default binary cache path is: C:\Users\P.JBoy\AppData\Local\vcpkg\archives
Computing installation plan...
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    28746 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" "-DVCPKG_ROOT_DIR=C:/Program Files/vcpkg" "-DPACKAGES_DIR=C:/Program Files/vcpkg/packages" "-DBUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees" "-D_VCPKG_INSTALLED_DIR=C:/Program Files/vcpkg/installed" "-DDOWNLOADS=C:/Program Files/vcpkg/downloads" -DVCPKG_MANIFEST_INSTALL=OFF -P "C:\Program Files\vcpkg\buildtrees\0.vcpkg_dep_info.cmake")
[DEBUG] cmd_execute_and_stream_data() returned 0 after    20977 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" "-DVCPKG_ROOT_DIR=C:/Program Files/vcpkg" "-DPACKAGES_DIR=C:/Program Files/vcpkg/packages" "-DBUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees" "-D_VCPKG_INSTALLED_DIR=C:/Program Files/vcpkg/installed" "-DDOWNLOADS=C:/Program Files/vcpkg/downloads" -DVCPKG_MANIFEST_INSTALL=OFF -P "C:\Program Files\vcpkg\buildtrees\0.vcpkg_tags.cmake")
[DEBUG] cmd_execute_and_stream_data() returned 0 after    60358 us
The following packages will be built and installed:
  * boost-algorithm[core]:x86-windows -> 1.75.0
  * boost-align[core]:x86-windows -> 1.75.0
  * boost-any[core]:x86-windows -> 1.75.0
  * boost-array[core]:x86-windows -> 1.75.0
  * boost-assert[core]:x86-windows -> 1.75.0
  * boost-atomic[core]:x86-windows -> 1.75.0#1
  * boost-bimap[core]:x86-windows -> 1.75.0
  * boost-bind[core]:x86-windows -> 1.75.0
  * boost-build[core]:x64-windows -> 1.75.0
  * boost-chrono[core]:x86-windows -> 1.75.0#1
  * boost-compatibility[core]:x86-windows -> 1.75.0
  * boost-concept-check[core]:x86-windows -> 1.75.0#2
  * boost-config[core]:x86-windows -> 1.75.0
  * boost-container[core]:x86-windows -> 1.75.0#1
  * boost-container-hash[core]:x86-windows -> 1.75.0
  * boost-conversion[core]:x86-windows -> 1.75.0
  * boost-core[core]:x86-windows -> 1.75.0
  * boost-date-time[core]:x86-windows -> 1.75.0#1
  * boost-detail[core]:x86-windows -> 1.75.0
  * boost-dynamic-bitset[core]:x86-windows -> 1.75.0
  * boost-endian[core]:x86-windows -> 1.75.0
  * boost-exception[core]:x86-windows -> 1.75.0#1
  * boost-foreach[core]:x86-windows -> 1.75.0
  * boost-format[core]:x86-windows -> 1.75.0
  * boost-function[core]:x86-windows -> 1.75.0
  * boost-function-types[core]:x86-windows -> 1.75.0
  * boost-functional[core]:x86-windows -> 1.75.0
  * boost-fusion[core]:x86-windows -> 1.75.0
  * boost-geometry[core]:x86-windows -> 1.75.0
  * boost-graph[core]:x86-windows -> 1.75.0#1
  * boost-integer[core]:x86-windows -> 1.75.0
  * boost-intrusive[core]:x86-windows -> 1.75.0
  * boost-io[core]:x86-windows -> 1.75.0
  * boost-iterator[core]:x86-windows -> 1.75.0
  * boost-lambda[core]:x86-windows -> 1.75.0
  * boost-lexical-cast[core]:x86-windows -> 1.75.0
  * boost-math[core]:x86-windows -> 1.75.0#1
  * boost-modular-build-helper[core]:x64-windows -> 1.75.0#9
  * boost-move[core]:x86-windows -> 1.75.0
  * boost-mp11[core]:x86-windows -> 1.75.0
  * boost-mpl[core]:x86-windows -> 1.75.0
  * boost-multi-index[core]:x86-windows -> 1.75.0
  * boost-multiprecision[core]:x86-windows -> 1.75.0
  * boost-numeric-conversion[core]:x86-windows -> 1.75.0
  * boost-optional[core]:x86-windows -> 1.75.0
  * boost-parameter[core]:x86-windows -> 1.75.0
  * boost-phoenix[core]:x86-windows -> 1.75.0
  * boost-polygon[core]:x86-windows -> 1.75.0
  * boost-pool[core]:x86-windows -> 1.75.0
  * boost-predef[core]:x86-windows -> 1.75.0
  * boost-preprocessor[core]:x86-windows -> 1.75.0
  * boost-property-map[core]:x86-windows -> 1.75.0
  * boost-property-tree[core]:x86-windows -> 1.75.0
  * boost-proto[core]:x86-windows -> 1.75.0
  * boost-qvm[core]:x86-windows -> 1.75.0
  * boost-random[core]:x86-windows -> 1.75.0#1
  * boost-range[core]:x86-windows -> 1.75.0
  * boost-ratio[core]:x86-windows -> 1.75.0
  * boost-rational[core]:x86-windows -> 1.75.0
  * boost-regex[core]:x86-windows -> 1.75.0#2
  * boost-serialization[core]:x86-windows -> 1.75.0#1
  * boost-smart-ptr[core]:x86-windows -> 1.75.0
  * boost-spirit[core]:x86-windows -> 1.75.0
  * boost-static-assert[core]:x86-windows -> 1.75.0
  * boost-system[core]:x86-windows -> 1.75.0#1
  * boost-test[core]:x86-windows -> 1.75.0#1
  * boost-thread[core]:x86-windows -> 1.75.0#1
  * boost-throw-exception[core]:x86-windows -> 1.75.0
  * boost-tokenizer[core]:x86-windows -> 1.75.0
  * boost-tti[core]:x86-windows -> 1.75.0
  * boost-tuple[core]:x86-windows -> 1.75.0
  * boost-type-index[core]:x86-windows -> 1.75.0
  * boost-type-traits[core]:x86-windows -> 1.75.0
  * boost-typeof[core]:x86-windows -> 1.75.0
  * boost-uninstall[core]:x86-windows -> 1.75.0
  * boost-uninstall[core]:x64-windows -> 1.75.0
  * boost-unordered[core]:x86-windows -> 1.75.0
  * boost-utility[core]:x86-windows -> 1.75.0
  * boost-variant[core]:x86-windows -> 1.75.0
  * boost-vcpkg-helpers[core]:x86-windows -> 7#2
  * boost-winapi[core]:x86-windows -> 1.75.0
  * boost-xpressive[core]:x86-windows -> 1.75.0
  * icu[core]:x64-windows -> 69.1#9
  * icu[core]:x86-windows -> 69.1#9
  * libevent[core,thread]:x86-windows -> 2.1.12#1
    libmysql[core]:x86-windows -> 8.0.20#2
  * lz4[core]:x86-windows -> 1.9.3
  * openssl[core]:x86-windows -> 1.1.1k
  * xxhash[core]:x86-windows -> 0.8.0#1
  * zlib[core]:x86-windows -> 1.2.11#10
Additional packages (*) will be modified to complete this operation.
[DEBUG] CreateProcessW("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -all -prerelease -legacy -products * -format xml)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    59055 us
Detecting compiler hash for triplet x86-windows...
[DEBUG] Found path: C:\Program Files\Git\cmd\git.exe
[DEBUG] Found path: C:\Program Files\Git\mingw64\bin\git.exe
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\git-2.26.2-1-windows\mingw32\bin\git.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    14092 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\powershell-core-7.1.3-windows\pwsh.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after   196720 us
[DEBUG] CreateProcessW(cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Auxiliary\Build\vcvarsall.bat" -vcvars_ver=14.2 amd64_x86   2>&1 <NUL  & echo cdARN4xjKueKScMy9C6H & set)
[DEBUG] cmd_execute_and_stream_data() returned 255 after  1197027 us
[DEBUG] C:\A\1\70\s\src\vcpkg\base\system.process.cpp(592)
[DEBUG] Exiting after 1668410 us (1667465 us)

@PJBoy ,It seems that libmsql currently does not support x86 triplet, you can try x64triplet
Stored binary cache: C:\Users\vzhli17\AppData\Local\vcpkg\archives\fa\fa4c0f82bdf58a22cd391f0005c3221ba8b3b9c5.zip
Building package libmysql[core]:x64-windows... done
Installing package libmysql[core]:x64-windows...
Installing package libmysql[core]:x64-windows... done
Elapsed time for package libmysql:x64-windows: 4.315 min

Total elapsed time: 16.39 min

The package libmysql provides CMake targets:

    find_package(libmysql REQUIRED)
    target_link_libraries(main PRIVATE ${MYSQL_LIBRARIES})

I got the same result for the x64-windows triplet:
>vcpkg --debug install libmysql:x64-windows
[DEBUG] Feature flag 'binarycaching' unset
[DEBUG] Feature flag 'manifests' unset
[DEBUG] Feature flag 'compilertracking' unset
[DEBUG] Feature flag 'registries' unset
[DEBUG] Feature flag 'versions' unset
[DEBUG] BuiltinRegistry initialized with: ""
[DEBUG] Using vcpkg-root: C:\Program Files\vcpkg
[DEBUG] Using installed-root: C:\Program Files\vcpkg\installed
[DEBUG] BuiltinRegistry initialized with: ""
[DEBUG] Using buildtrees-root: C:\Program Files\vcpkg\buildtrees
[DEBUG] Using downloads-root: C:\Program Files\vcpkg\downloads
[DEBUG] Using packages-root: C:\Program Files\vcpkg\packages
[DEBUG] Using scripts-root: C:\Program Files\vcpkg\scripts
[DEBUG] Using ports-root: C:\Program Files\vcpkg\ports
[DEBUG] Using versions-root: C:\Program Files\vcpkg\versions
[DEBUG] Default binary cache path is: C:\Users\P.JBoy\AppData\Local\vcpkg\archives
Computing installation plan...
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    26084 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" "-DVCPKG_ROOT_DIR=C:/Program Files/vcpkg" "-DPACKAGES_DIR=C:/Program Files/vcpkg/packages" "-DBUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees" "-D_VCPKG_INSTALLED_DIR=C:/Program Files/vcpkg/installed" "-DDOWNLOADS=C:/Program Files/vcpkg/downloads" -DVCPKG_MANIFEST_INSTALL=OFF -P "C:\Program Files\vcpkg\buildtrees\0.vcpkg_dep_info.cmake")
[DEBUG] cmd_execute_and_stream_data() returned 0 after    19921 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\cmake-3.20.1-windows\cmake-3.20.1-windows-i386\bin\cmake.exe" "-DVCPKG_ROOT_DIR=C:/Program Files/vcpkg" "-DPACKAGES_DIR=C:/Program Files/vcpkg/packages" "-DBUILDTREES_DIR=C:/Program Files/vcpkg/buildtrees" "-D_VCPKG_INSTALLED_DIR=C:/Program Files/vcpkg/installed" "-DDOWNLOADS=C:/Program Files/vcpkg/downloads" -DVCPKG_MANIFEST_INSTALL=OFF -P "C:\Program Files\vcpkg\buildtrees\0.vcpkg_tags.cmake")
[DEBUG] cmd_execute_and_stream_data() returned 0 after    54849 us
The following packages will be built and installed:
  * boost-algorithm[core]:x64-windows -> 1.75.0
  * boost-align[core]:x64-windows -> 1.75.0
  * boost-any[core]:x64-windows -> 1.75.0
  * boost-array[core]:x64-windows -> 1.75.0
  * boost-assert[core]:x64-windows -> 1.75.0
  * boost-atomic[core]:x64-windows -> 1.75.0#1
  * boost-bimap[core]:x64-windows -> 1.75.0
  * boost-bind[core]:x64-windows -> 1.75.0
  * boost-build[core]:x64-windows -> 1.75.0
  * boost-chrono[core]:x64-windows -> 1.75.0#1
  * boost-compatibility[core]:x64-windows -> 1.75.0
  * boost-concept-check[core]:x64-windows -> 1.75.0#2
  * boost-config[core]:x64-windows -> 1.75.0
  * boost-container[core]:x64-windows -> 1.75.0#1
  * boost-container-hash[core]:x64-windows -> 1.75.0
  * boost-conversion[core]:x64-windows -> 1.75.0
  * boost-core[core]:x64-windows -> 1.75.0
  * boost-date-time[core]:x64-windows -> 1.75.0#1
  * boost-detail[core]:x64-windows -> 1.75.0
  * boost-dynamic-bitset[core]:x64-windows -> 1.75.0
  * boost-endian[core]:x64-windows -> 1.75.0
  * boost-exception[core]:x64-windows -> 1.75.0#1
  * boost-foreach[core]:x64-windows -> 1.75.0
  * boost-format[core]:x64-windows -> 1.75.0
  * boost-function[core]:x64-windows -> 1.75.0
  * boost-function-types[core]:x64-windows -> 1.75.0
  * boost-functional[core]:x64-windows -> 1.75.0
  * boost-fusion[core]:x64-windows -> 1.75.0
  * boost-geometry[core]:x64-windows -> 1.75.0
  * boost-graph[core]:x64-windows -> 1.75.0#1
  * boost-integer[core]:x64-windows -> 1.75.0
  * boost-intrusive[core]:x64-windows -> 1.75.0
  * boost-io[core]:x64-windows -> 1.75.0
  * boost-iterator[core]:x64-windows -> 1.75.0
  * boost-lambda[core]:x64-windows -> 1.75.0
  * boost-lexical-cast[core]:x64-windows -> 1.75.0
  * boost-math[core]:x64-windows -> 1.75.0#1
  * boost-modular-build-helper[core]:x64-windows -> 1.75.0#9
  * boost-move[core]:x64-windows -> 1.75.0
  * boost-mp11[core]:x64-windows -> 1.75.0
  * boost-mpl[core]:x64-windows -> 1.75.0
  * boost-multi-index[core]:x64-windows -> 1.75.0
  * boost-multiprecision[core]:x64-windows -> 1.75.0
  * boost-numeric-conversion[core]:x64-windows -> 1.75.0
  * boost-optional[core]:x64-windows -> 1.75.0
  * boost-parameter[core]:x64-windows -> 1.75.0
  * boost-phoenix[core]:x64-windows -> 1.75.0
  * boost-polygon[core]:x64-windows -> 1.75.0
  * boost-pool[core]:x64-windows -> 1.75.0
  * boost-predef[core]:x64-windows -> 1.75.0
  * boost-preprocessor[core]:x64-windows -> 1.75.0
  * boost-property-map[core]:x64-windows -> 1.75.0
  * boost-property-tree[core]:x64-windows -> 1.75.0
  * boost-proto[core]:x64-windows -> 1.75.0
  * boost-qvm[core]:x64-windows -> 1.75.0
  * boost-random[core]:x64-windows -> 1.75.0#1
  * boost-range[core]:x64-windows -> 1.75.0
  * boost-ratio[core]:x64-windows -> 1.75.0
  * boost-rational[core]:x64-windows -> 1.75.0
  * boost-regex[core]:x64-windows -> 1.75.0#2
  * boost-serialization[core]:x64-windows -> 1.75.0#1
  * boost-smart-ptr[core]:x64-windows -> 1.75.0
  * boost-spirit[core]:x64-windows -> 1.75.0
  * boost-static-assert[core]:x64-windows -> 1.75.0
  * boost-system[core]:x64-windows -> 1.75.0#1
  * boost-test[core]:x64-windows -> 1.75.0#1
  * boost-thread[core]:x64-windows -> 1.75.0#1
  * boost-throw-exception[core]:x64-windows -> 1.75.0
  * boost-tokenizer[core]:x64-windows -> 1.75.0
  * boost-tti[core]:x64-windows -> 1.75.0
  * boost-tuple[core]:x64-windows -> 1.75.0
  * boost-type-index[core]:x64-windows -> 1.75.0
  * boost-type-traits[core]:x64-windows -> 1.75.0
  * boost-typeof[core]:x64-windows -> 1.75.0
  * boost-uninstall[core]:x64-windows -> 1.75.0
  * boost-unordered[core]:x64-windows -> 1.75.0
  * boost-utility[core]:x64-windows -> 1.75.0
  * boost-variant[core]:x64-windows -> 1.75.0
  * boost-vcpkg-helpers[core]:x64-windows -> 7#2
  * boost-winapi[core]:x64-windows -> 1.75.0
  * boost-xpressive[core]:x64-windows -> 1.75.0
  * icu[core]:x64-windows -> 69.1#9
  * libevent[core,thread]:x64-windows -> 2.1.12#1
    libmysql[core]:x64-windows -> 8.0.20#2
  * lz4[core]:x64-windows -> 1.9.3
  * openssl[core]:x64-windows -> 1.1.1k
  * xxhash[core]:x64-windows -> 0.8.0#1
  * zlib[core]:x64-windows -> 1.2.11#10
Additional packages (*) will be modified to complete this operation.
[DEBUG] CreateProcessW("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -all -prerelease -legacy -products * -format xml)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    56532 us
Detecting compiler hash for triplet x64-windows...
[DEBUG] Found path: C:\Program Files\Git\cmd\git.exe
[DEBUG] Found path: C:\Program Files\Git\mingw64\bin\git.exe
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\git-2.26.2-1-windows\mingw32\bin\git.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after    13215 us
[DEBUG] CreateProcessW("C:\Program Files\vcpkg\downloads\tools\powershell-core-7.1.3-windows\pwsh.exe" --version)
[DEBUG] cmd_execute_and_stream_data() returned 0 after   183257 us
[DEBUG] CreateProcessW(cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Auxiliary\Build\vcvarsall.bat" -vcvars_ver=14.2 amd64   2>&1 <NUL  & echo cdARN4xjKueKScMy9C6H & set)
[DEBUG] cmd_execute_and_stream_data() returned 255 after   877614 us
[DEBUG] C:\A\1\70\s\src\vcpkg\base\system.process.cpp(592)
[DEBUG] Exiting after 1331518 us (1326439 us)

See #17319, there are some bugs with Visual Studio 2017 / 2019 preview version. And I've output message when this happend.


Footer section is not organized.

The footer section is not organized/ aligned properly. I would like to work on this issue

Hello @Pranjal-Yadav17 ,
I am a participant of GSSoC, and i would like to work on this issue.
please assign me this issue

@harikesh409 @ravikr126 I also want to work on this issue. Please assign it to me.

this is duplicate issue


Add dynamic parsing module

Closes #3
Closes #4
Closes #6
Closes #7
Overview
This PR adds a Dynamic module with two functions, create_bgc_struct and add_bgc_methods. This enables the following workflow:
using Agate

parameters = (α=2/3, β=4/3,  δ=1, γ=1) #NamedTuple or Dict
tracers = Dict("R" => :(α*R - β*R*F), "F" => :(-γ*F + δ*R*F))

# the create_struct method creates an Agate.Models.Dynamic.LV object so here
# we assign it to a local LV variable - a bit annoying to have to do this
LV = create_bgc_struct(:LV, parameters)
add_bgc_methods(LV, tracers)

# the model is instantiated with the default parameter values unless other values are provided here
model = LV()

The model object can then be passed to Oceananigans.
There is an option for the user to pass functions to add_bgc_methods which are used within the tracer expressions (these could be imported from other libraries). The tests show an example of the NPZD model implemented in this way.
For reviewers
The key question is: is this the kind of interface we imagined? Can anything be improved? Are there any potential misuses/bugs we can imagine the user making?
Otherwise, any comments on implementation and code style are always more than welcome.
Note that there is some additional complexity (e.g., light, sinking particles, boundary conditions) that will be addressed in future PRs (see #10 for discussion).  In its current form the returned model would need to be passed to OceanBioME Biogeochemistry to make it fully Oceananigans compatible.

This PR adds a Dynamic module with two functions, create_bgc_struct and add_bgc_methods. This enables the following workflow:
using Agate

parameters = (α=2/3, β=4/3,  δ=1, γ=1) #NamedTuple or Dict
tracers = Dict("R" => :(α*R - β*R*F), "F" => :(-γ*F + δ*R*F))

# the create_struct method creates an Agate.Models.Dynamic.LV object so here
# we assign it to a local LV variable - a bit annoying to have to do this
LV = create_bgc_struct(:LV, parameters)
add_bgc_methods(LV, tracers)

# the model is instantiated with the default parameter values unless other values are provided here
model = LV()

The model object can then be passed to Oceananigans.

It might be useful to include this as an example as part of the PR? e.g. in examples/

I quickly tested if the code works with nested functions:
e.g. the user might write something like this:
                "Z" => :(zooplankton_grazing_gain(P, Z, β, dummy_gmax_function(gₘₐₓ, a, b), kₚ)
                - zooplankton_metabolic_loss(Z, lᶻⁿ)
                - zooplankton_mortality_loss(Z, lᶻᵈ))

I updated NPZD.jl to include a dummy function which will always return the input value of gmax:
dummy_gmax_function(gₘₐₓ, a, b) = ((gₘₐₓ*a) + b-b)/a # this will always return gₘₐₓ
and then created a new test:

@testset "test nested functions" begin

            helper_functions = "./fixtures/NPZD.jl"

            parameters = (
                μ₀ = 0.6989,
                kₙ = 2.3868,
                lᵖⁿ = 0.066,
                lᶻⁿ = 0.0102,
                lᵖᵈ = 0.0101,
                gₘₐₓ = 2.1522,
                kₚ = 0.5573,
                β = 0.9116,
                lᶻᵈ = 0.3395,
                rᵈⁿ = 0.1213,
                α = 0.1953,
                a = 0.234,
                b = 9.2132
            )
            aux_field_vars = [:PAR]

            tracers = Dict(
                "N" => :(
                - phytoplankton_growth(N, PAR, P, μ₀, kₙ, α)
                + phytoplankton_metabolic_loss(P, lᵖⁿ)
                + zooplankton_metabolic_loss(Z, lᶻⁿ)
                + remineralization(D, rᵈⁿ)
                ),

                "D" => :(phytoplankton_mortality_loss(P, lᵖᵈ)
                + zooplankton_assimilation_loss(P, Z, β, gₘₐₓ, kₚ)
                + zooplankton_mortality_loss(Z, lᶻᵈ)
                - remineralization(D, rᵈⁿ)),

                "P" => :(phytoplankton_growth(N, PAR, P, μ₀, kₙ, α)
                - phytoplankton_grazing_loss(P, Z, gₘₐₓ, kₚ)
                - phytoplankton_metabolic_loss(P, lᵖⁿ)
                - phytoplankton_mortality_loss(P, lᵖᵈ)),

                "Z" => :(zooplankton_grazing_gain(P, Z, β, dummy_gmax_function(gₘₐₓ, a, b), kₚ)
                - zooplankton_metabolic_loss(Z, lᶻⁿ)
                - zooplankton_mortality_loss(Z, lᶻᵈ))
            )

            NPZD_nested = create_bgc_struct(:NPZD_nested, parameters)
            add_bgc_methods(NPZD_nested, tracers, auxiliary_fields=aux_field_vars, helper_functions=helper_functions)
            model_nested = NPZD_nested()

            Z = 0.05
            P = 0.01
            N = 7.0
            D = 1
            PAR = 1

            @test isapprox(model_nested(Val(:N), 0, 0, 0, 0, Z,P,N,D,PAR), 0.12101359881701153)
            @test isapprox(model_nested(Val(:D), 0, 0, 0, 0, Z,P,N,D,PAR), -0.12034718812821411)
            @test isapprox(model_nested(Val(:P), 0, 0, 0, 0, Z,P,N,D,PAR), 0.000660764624324505)
            @test isapprox(model_nested(Val(:Z), 0, 0, 0, 0, Z,P,N,D,PAR), -0.0013271753131219258)

        end

Which works great!
I don't think it is worth including the test above in main but it good to know it works.

OK, I think I found an edge case where things break.
If I introduce three new parameters:
a = 0.6536,
b = 0.0633,
c = 1.4353

which sum to the value of gmax (2.1522)
And I then define something like this:
                "Z" => :(zooplankton_grazing_gain(P, Z, β, sum([a, b, c]), kₚ)
                - zooplankton_metabolic_loss(Z, lᶻⁿ)
                - zooplankton_mortality_loss(Z, lᶻᵈ))

I get the following error:
"UndefVarError(:a)", "UndefVarError: `a` not defined

It seems the issue is related to the variables being passed as an array?

        @testset "test base Julia functions" begin
            helper_functions = "./fixtures/NPZD.jl"

            parameters = (
                μ₀ = 0.6989,
                kₙ = 2.3868,
                lᵖⁿ = 0.066,
                lᶻⁿ = 0.0102,
                lᵖᵈ = 0.0101,
                gₘₐₓ = 2.1522,
                kₚ = 0.5573,
                β = 0.9116,
                lᶻᵈ = 0.3395,
                rᵈⁿ = 0.1213,
                α = 0.1953,
                a = 0.6536,
                b = 0.0633,
                c = 1.4353
            )
            aux_field_vars = [:PAR]

            tracers = Dict(
                "N" => :(
                - phytoplankton_growth(N, PAR, P, μ₀, kₙ, α)
                + phytoplankton_metabolic_loss(P, lᵖⁿ)
                + zooplankton_metabolic_loss(Z, lᶻⁿ)
                + remineralization(D, rᵈⁿ)
                ),

                "D" => :(phytoplankton_mortality_loss(P, lᵖᵈ)
                + zooplankton_assimilation_loss(P, Z, β, gₘₐₓ, kₚ)
                + zooplankton_mortality_loss(Z, lᶻᵈ)
                - remineralization(D, rᵈⁿ)),

                "P" => :(phytoplankton_growth(N, PAR, P, μ₀, kₙ, α)
                - phytoplankton_grazing_loss(P, Z, gₘₐₓ, kₚ)
                - phytoplankton_metabolic_loss(P, lᵖⁿ)
                - phytoplankton_mortality_loss(P, lᵖᵈ)),

                "Z" => :(zooplankton_grazing_gain(P, Z, β, dummy_sum([a, b, c]), kₚ)
                - zooplankton_metabolic_loss(Z, lᶻⁿ)
                - zooplankton_mortality_loss(Z, lᶻᵈ))
            )

            NPZD_sum = create_bgc_struct(:NPZD_sum, parameters)
            add_bgc_methods(NPZD_sum, tracers, auxiliary_fields=aux_field_vars, helper_functions=helper_functions)
            model_sum = NPZD_sum()

            Z = 0.05
            P = 0.01
            N = 7.0
            D = 1
            PAR = 1

            @test isapprox(model_sum(Val(:N), 0, 0, 0, 0, Z,P,N,D,PAR), 0.12101359881701153)
            @test isapprox(model_sum(Val(:D), 0, 0, 0, 0, Z,P,N,D,PAR), -0.12034718812821411)
            @test isapprox(model_sum(Val(:P), 0, 0, 0, 0, Z,P,N,D,PAR), 0.000660764624324505)
            @test isapprox(model_sum(Val(:Z), 0, 0, 0, 0, Z,P,N,D,PAR), -0.0013271753131219258)

        end
```

The bug that @nanophyto found has to do with some simple assumptions I made about how the expressions are parsed that don't always hold up. This might require some careful rethinking (well spotted!!)
In all the examples we had until now, whenever I looked at the args of an expression, I always observed the same pattern where the first arg was the method name and the following args the parameters (which could be other expressions or values of symbols), e.g.:
julia> :(α * x - β * x * y).args
3-element Vector{Any}:
 :-
 :(α * x)
 :(β * x * y)

Unfortunately array expressions don't have this pattern, the args are just the elements of the array as there are no methods:
julia> :([a, b, c]).args
3-element Vector{Any}:
 :a
 :b
 :c

So in this case, the code I wrote interprets a as a method (which isn't defined anywhere) and this means it is missing from the parameters list.


location: Fixes from directory structure PR

Commit 3ecf06e moved things around such that there is now a
build/networking directory. Some things were not adjusted to reflect
this new directory structure. This commit fixes these areas.
Signed-off-by: Kyle Mestery<EMAIL_ADDRESS>

@stolsma For your review.


feat: spark routes shows filters

Description
Related #5590

add filters to spark routes command

$ php spark routes

CodeIgniter v4.1.8 Command Line Tool - Server Time: 2022-01-28 19:29:51 UTC-06:00

+--------+----------------------------+------------------------------------------------+----------------+-----------------------+
| Method | Route                      | Handler                                        | Filters:before | Filters:after         |
+--------+----------------------------+------------------------------------------------+----------------+-----------------------+
| GET    | /                          | \App\Controllers\Home::index                   | csrf           | secureheaders toolbar |
| CLI    | migrations/([^/]+)/([^/]+) | \CodeIgniter\Commands\MigrationsCommand::$1/$2 |                |                       |
| CLI    | migrations/([^/]+)         | \CodeIgniter\Commands\MigrationsCommand::$1    |                |                       |
| CLI    | migrations                 | \CodeIgniter\Commands\MigrationsCommand::index |                |                       |
| CLI    | ci(.*)                     | \CodeIgniter\CLI\CommandRunner::index/$1       |                |                       |
| auto   | /                          | \App\Controllers\Home::index                   | csrf           | secureheaders toolbar |
| auto   | home                       | \App\Controllers\Home::index                   | csrf           | secureheaders toolbar |
| auto   | home/index[/...]           | \App\Controllers\Home::index                   | csrf           | secureheaders toolbar |
+--------+----------------------------+------------------------------------------------+----------------+-----------------------+

Checklist:

[x] Needs #5625
[x] Securely signed commits
[x] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[x] User guide updated
[x] Conforms to style guide

Nice addition!

The implementation around Routing and Filters is complex and tightly coupled with Request.
It is difficult to reuse.
I read CodeIgniter.php and wote code to get filters for a URI, but I might miss something.
If you have projects having lots of filters, I hope you to run this code and check the output.

Rebased and updated the documentation.


ViewPagerAndroid RN

Awesome Library!
Ran into this issue with newer version of react-native where React Native no longer has ViewPagerAndroid as is contained on FullScreenContainer.js.
The app currently crashes.
"react": "16.9.0",
"react-native": "0.61.2",
"react-native-photo-browser": "^0.5.0",

https://github.com/halilb/react-native-photo-browser/pull/99

Just merged #100 into master to  fix this. Could you fetch the library from master and confirm it works now @ndrishinski?

@halilb Sorry for the delayed response. That fixed my issue! Thank you so much and thanks for making an awesome open source library !!

@halilb Sorry for the delayed response. That fixed my issue! Thank you so much and thanks for making an awesome open source library !!

Great! Thanks for the feedback @ndrishinski.


clarify intent: replacement of imap-part of email-lib?

Is this the intended replacement of email-lib's IMAP part?
If so, should convenience functions (like formatting envelope's addresses) be in this crate or imap-types?

No, this is a replacement of the imap crate based on imap-codec and imap-types. Convenience functions should be definitely be at high level, but I'm not sure if it should be part of imap-client or not. Could you detail a bit more your needs?

Is this the intended replacement of email-lib's IMAP part?

But in a sense you are right, this imap replacement is initially for email-lib.

I have pretty simple needs for now.  Just collect messages from IMAP, store them somewhere, and move them to an archive folder.  I assumed that this crate is the better starting point than email-lib, because it's more focused.  WDYT?
My impressions so far are, that I found the iteration through imap_types' Envelope pretty awkward and thought that there ought to be a way to generate a String from an Address.

Keep in mind that both imap-types and imap-codec are really low level crates. imap-client is at higher level, but remains still "low" level. email-lib could be a better candidate, this is where you will find a list_envelopes with usable headers (including addresses).
Do you need to perform these actions from the code or from the CLI? email-lib from the code is a good starting point, but maybe Himalaya CLI could help you as well. From the CLI you can list, save, and move messages. Easily scriptable, especially with jq. Here some examples:
# Get all envelopes' id
$ himalaya envelope list --page-size 0 --output json

# Save message for a given envelope id
$ himalaya message read 42 --raw > /path/to/message.eml

# Move a mesage to archive
$ himalaya message move Archives 42

Another alternative could be to use a synchronizer like Neverest CLI. It can synchronize a remote IMAP with a local Maildir for example.

I follow himalaya and all other tools and look forward switching to it.

We are really close to v1, stay tuned :pray:

Hey @ibotty!

My impressions so far are, that I found the iteration through imap_types' Envelope pretty awkward and thought that there ought to be a way to generate a String from an Address.

Sometimes, things are not as simple as they seem in IMAP on a first glace. But: If there is some convinience function missing that is arguably so generic that every higher-level library/application would want to use it, I would happily merge it into imap-types. A good example is iteration through sequences. Here, I could imagine that SequenceSet could get a chunk() method, for example.
Besides from that, it's what @soywod says. If you need specific higher-level functionality, you should climb up the stack.
I see it a bit like generic features trickling-down to lower-level libraries if they prove to be generally useful for all consumers.


Upgrade pulumi-terraform-bridge to cad926a2df8e49ad5de37f03194035cd4317a0f4

This PR was generated via $ upgrade-provider pulumi/pulumi-aiven --kind=bridge --target-bridge-version=cad926a2df8e49ad5de37f03194035cd4317a0f4 --pr-reviewers t0yv0.

Upgrading pulumi-terraform-bridge from v3.61.0 to cad926a2df8e49ad5de37f03194035cd4317a0f4.
Upgrading pulumi-terraform-bridge/pf from v0.17.0 to cad926a2df8e49ad5de37f03194035cd4317a0f4.

Testing.


Control the range (stepValue) of each section of the yAxis individually

Is there a way to control the range of each section on the yAxis of a LineChart such that when separate values are given as range to each section individually they will expand or shrink according to given ranges? It seems that each section has the same range which is controlled by stepValue prop. Is it possible to give separate stepValues for each section in LineChart?

Hi @ilyaserenyilmaz 👋
This can be achieved by hiding some sections and the corresponding y-axis labels.
We will show, not all but just a few rules and the corresponding y-axis labels. For this, we will use the props-

yAxisLabelTexts
rulesConfigArray

Here's an example-
import React from 'react';
import {LineChart} from 'react-native-gifted-charts';

const App = () => {
  const data = [
    {value: 10},
    {value: 12},
    {value: 28},
    {value: 16},
    {value: 20},
    {value: 32},
  ];
  const visible = {rulesColor: 'gray'};
  const invisible = {rulesColor: 'transparent'};
  return (
    <LineChart
      data={data}
      yAxisLabelTexts={[
        '0',
        '4',
        '8',
        ' ',
        ' ',
        ' ',
        '20',
        ' ',
        '32',
        ' ',
        '40',
      ]}
      rulesConfigArray={[
        visible,
        visible,
        visible,
        invisible,
        invisible,
        invisible,
        visible,
        invisible,
        visible,
        invisible,
        visible,
      ]}
    />
  );
};

export default App;

The output of the above code is-

Notice that we have sections of varying length now, but each section is a multiple of stepValue, in this case multiple of 4.
We may want to have some sections which are not multiples of stepValue. For this, we can use referenceLines.
Let's say, in the above chart we want to show one more section at 15.
To achieve this, I can show a reference line at 15 using the below code-
showReferenceLine1
referenceLine1Position={15}

Now the output is-

This has 2 problems-

Reference line is longer than other rules
It does not have the label at y-axis

To fix these 2 issues, we can use the referenceLine1Config prop as follows-
referenceLine1Config={{width: 310, labelText: '15'}}

Now the output is-

The label 15 is not at the right place, so we move it to the right place using the labelTextStyle property inside the referenceLine1Config.
So, the final code will be-
import React from 'react';
import {LineChart} from 'react-native-gifted-charts';

const App = () => {
  const data = [
    {value: 10},
    {value: 12},
    {value: 28},
    {value: 16},
    {value: 20},
    {value: 32},
  ];
  const visible = {rulesColor: 'gray'};
  const invisible = {rulesColor: 'transparent'};
  return (
    <LineChart
      data={data}
      yAxisLabelTexts={[
        '0',
        '4',
        '8',
        ' ',
        ' ',
        ' ',
        '20',
        ' ',
        '32',
        ' ',
        '40',
      ]}
      rulesConfigArray={[
        visible,
        visible,
        visible,
        invisible,
        invisible,
        invisible,
        visible,
        invisible,
        visible,
        invisible,
        visible,
      ]}
      showReferenceLine1
      referenceLine1Position={15}
      referenceLine1Config={{
        width: 310,
        labelText: '15',
        labelTextStyle: {marginLeft: -26, marginTop: -10},
      }}
    />
  );
};

export default App;

And the output is-

Thanks a lot for a quick answer and brief explanation, I will try it 🙌.


CircleCI build_tag_push command

Description
This PR uses the new command syntax in CircleCI 2.1 (https://circleci.com/docs/2.0/reusing-config/#authoring-reusable-commands) to consolidate  docker build, tag, and push steps into one parameterized command.   Additionally, this PR removes: server_build_docker, server_run_only_docker, and db_build_docker from the Makefile, as they are not used and duplicative.

Yeah, get rid of those tsp commands

looks great!


pull everything into gh-pages for testing purposes

i have no idea what this is or does but i am going to go ahead and merge it

it's everything from master into gh-pages

You just let him do a hack


[feature request] Add support to distinguish null and {} object

Reported by https://github.com/Azure/azure-powershell/issues/17410
Autorest.powershell will treat {} as null object. And do not send {} to backend.
Beside, we are suspecting service side may report {} is invalid value if we pass {} for some other parameters (from other RPs). We are unable to predict what will be caused if we distinguish {} with null and send {} to backend. We are investigating whether we need a flag from swagger to let us know this parameter whether distinguish ‘{}’ and null.
"volumes": [
          {
            "name": "emptydir1",
            "emptyDir": {}
          }
        ]

Explain in more details.
Let's say we have an input parameter in swagger as below.
"tags": {
    "type": "object",
     "additionalProperties": true
}

We will generate a parameter as below in the cmdlet.
xxx-cmdlet [-Tag <Hashtable>]

Right now, no matter if the user calls xxx-cmdlet or xxx-cmdlet -Tag @{}, we will not send tags to services.
And the requirement here is we should send {} for the latter.

We need to figure out a general solution. Let's consider customization for the time being.

Thanks @dolauli ,
This customization works for me. I'm applying this method to EmptyDir: https://github.com/Azure/azure-powershell/pull/17802


fix for redhat issues with systemd and DBUS

RedHat based systems are failing to start keybase as they seem to need DBUS and systemd. Temporary fix for that is to remove dependency from systemd. Not sure if it;s actually needed for RH type of systems. Got an impression it was mostly done for Arch and Ubuntu.

In this case, it looks like the [ -d "/run/systemd/system" ] check is returning true on your system, but systemd isn't actually available to your user. Can you tell why that is?


Configuration/Setup Query

Hi,
I had a general question which I can't find reference to in the documentation and wondered if it's possible to achieve. I require 4 grids on the same form which all display data from the same entity. I've set this up in a test environment and created four seperate configurations so each web resource on the form has a different GUID. I hoped this would mean the records displayed in each grid would be specific to each configuration but when creating a new record in any of the grids it is added to all four of them. Is there a method of configuring so that the records added are unique to each grid? I'm currently on version <IP_ADDRESS> but can upgrade to a new version if necessary.
Thanks in advance

Hi,
One way to achieve the functionality is to use field level filters. Similar to what you may use to display different sets of data from the same entity in a CRM view.
For example:
You have a field "Fieldx (optionset/numeric/date/lookup/...)" that can be used as a filter to display different sets of data from the same entity.
Assuming Fieldx is an optionset:

In Grid One, set a filter for Fieldx to display records matching option3. Set Fieldx "Create new, default value top Option3.
In Grid Two, set a filter for Fieldx to display records matching option2. Set Fieldx "Create new, default value top Option2.
In Grid Three, set a filter for Fieldx to display records matching option4. Set Fieldx "Create new, default value top Option4.
In Grid Four, set a filter for Fieldx to display records matching option6. Set Fieldx "Create new, default value top Option6.

Now each grid will display a different set of data from the same entity based on the filter.
To handle creating new records, in the grid configuration for each Grid, you will need to set the default value for the Fieldx under "Create new, default value", as mentioned in the example above. Now, when you add a new record to any of the Grids, the value of Fieldx's "Create new, default value" for that specific Grid will be used. This will ensure the new record will only be displayed on that Grid where the record was added. This step can also be done using a work flow that sets the Fieldx value of a new record to a specific value based on your requirements.
Although you don't need to upgrade to the latest version to achieve the functionality you have described, I would recommend upgrading to the latest version as there has been many bug fixes and improvements since v<IP_ADDRESS>.
If this answered your question, please mark it as closed.
Thank you,
Mehrdad

Hi Mehrdad,
Thank you for your quick response. The option you have suggested does work but unless I am mistaken there is no method of pre-selecting the filter in the configuration, the filter can only be applied on the grid. This means every time a new record is created for the entity form on which the grids are displayed, they would need to set the filters on each of the four grids in order to filter out the records they do not wish to see. Is there any method of pre-setting filters and if not is this additional functionality that could be added?
Thanks as always

Hi Neil,
You can preset filters from the Grid configuration. And you aren't limited to only the fields on the grid. Please see the following documentation page:
Field Conditions: https://github.com/mehrgithub/dcrmeg/blob/master/docs/Field Conditions.md
Thank you,
Mehrdad

Amazing, thanks so much. I didn't even realise that setting was there. Fantastic work on this truly incredible grid.


API proposal : let the user pass a reference to a file for templating

In order to make templating very easy and well done, we could provide a way to load the template from a URL. The code could look like :
var template = InstantSearch.templateLoader;

search.addWidget(instantsearch.widgets.hits({
    container: '#hits',
    templates: {
      empty: 'No results',
      hit: template('./templates/hit.html')
    },
    hitsPerPage: 6
}));

You mean we would then do something like an ajax call to load the template? Yes it works but is it a good practice to do X ajax calls to load templates?

Short answering no :). But it is both useful, and would let the user start nicely (using operated files for template) and right away.

I would rather go for inlined $('<script type="text/template">....</script>').text() I think. Introducing asynchronism here can be tricky.

$('').text()

Then you do not need any of this, you just pass a string :)

@redox we can internalize the loading and asynchronousity.

Not sure of the benefits of that. Inline templating or script workaround seems easier to me, without adding complexity to our side.

This a public favorite, let's close this one!


[DOCU] Team members must read through documentation and OK/Fix any final documents.

Only check yourself as confirmed once all other tasks are complete.

[ ] Death
[ ] Jules
[x] Algo
[ ] Radu
[ ] Quaesar
[ ] Paddy

Changed/added stuff


When importing the template, specify the template's full path so it doesn't complain about the template resolving to multiple paths

What happened:
Validation failed	{“validation”: “vsphere Provider setup is valid”, “error”: “failed deploying template: govc failed taking vm snapshot: govc: path ‘ubuntu-v1.21.2-kubernetes-1-21-eks-6-amd64-d4be3ee’ resolves to multiple vms\n”, “remediation”: “”}

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

EKS Anywhere Release:
EKS Distro Release:

Take a manual snapshot of ova template.
how to do see in the below link 11th step
https://anywhere.eks.amazonaws.com/docs/reference/vsphere/vsphere-ovas/


Issue using SharedCode folder

I've tried to use the recommended SharedCode folder structure to load my shared code but the example doesn't work. If I add
from __app__.SharedCode import myFirstHelperFunction

(replacing _ _ app _ _ with my app folder name), Python fails to find the library. Upon further inspection, I see that the Python system path in the interpreter is
['', '/home/site/wwwroot/worker_venv/lib/python3.6/site-packages', '/home/site/wwwroot/.python_packages/lib/python3.6/site-packages', '/home/site/wwwroot/.python_packages/lib/site-packages', '/azure-functions-host/workers/python/3.6/LINUX/X64', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']

and my code is being deployed in /home/site/wwwroot/, which is not in the path.
Ultimately, I ended up adding the path explicitly, which made it work:
dir_path = os.path.dirname(os.path.realpath(__file__)) + "/.."
sys.path.append(dir_path)

But your example doesn't work for me straight out of the box. Am I missing some configuration setting?
I use func version 2.7.1948 on WSL

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

ID: d955d169-8fb8-c511-8911-3e49f95c5ce6
Version Independent ID: 8a3d927c-51ce-d7d4-e5d1-acd928826db2
Content: Python developer reference for Azure Functions
Content Source: articles/azure-functions/functions-reference-python.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@bradunov Thanks for the question! We will review and get back to you!

@bradunov I believe the worker expects __app__ when trying to load imports on Azure. The contents of __app__ are zipped and published into /home/site/wwwroot directly instead of another folder.
Putting your functions in a __app__ folder would help for local development too. I have tested a couple of scenarios using a structure like this

You can also use explicit relative imports as well which are described here.
We are assigning this issue to the content author for further review and to update the docs accordingly.

@PramodValavala-MSFT Of the contents of __app__ are zipped and published into /home/site/wwwroot directly, what is the point of using absolute imports like @bradunov mentioned. Since in the portal, __app__ folder doesn't exist. I am getting a similar error.

I'm having the same issue and I don't see why we need this app folder. Considering this is not the structure created by the Azure Functions CLI.
Please provide a working solution and also update the CLI to match this.

Also, neither of the samples linked on this doc page (https://docs.microsoft.com/en-us/samples/browse/?products=azure-functions&languages=python) uses this app folder.

Forgive me if I'm missing something obvious, but isn't the problem here that the root folder (generally being named __app__) does not contain an __init__.py file?
Python's import system needs an init file to exist in every level of a package directory hierarchy. Whether we use absolute or relative refs, we're asking the import system to traverse via the top-level __app__ folder at some point, so this folder needs an __init__.py.
I was also getting import errors initially while using the folder structure as described on this page; when I added an empty __init__.py at the top level, it all started working. I can now successfully import code like:
from __app__.shared_code.mymodule import MySpecialClass

See also #45036 which corroborates what I think.

I can confirm what @philosophicles says. Although I don't have a init.py on my root level.
This is the structure I ended up with:
__app__
|---- .venv
|---- MyFunction
        |---- __init__.py
        |---- function.json
|---- shared
        |---- __init__.py
        |---- my-shared-module.py
|---- __init__.py
|---- host.json
.vscode

So from my function code I can simply do from ..shared import something to import modules from shared folder.
Of course the problem with this new __app__ based structure is that there's some tweaking needed to get VSCode debugging working properly.
So again, my suggestion is to make both the Azure Functions Core Tools CLI and VSCode Azure Functions extension to generate projects with this structure.

#reassign: @stefanushinardi

We've recently improved the folder structure for Python functions, which should address your issues. For more information, see here.  Please reopen if there are still issues #please-close
@Hazhzeng


Leaderboards should show my scores somewhere if I'm not ranked

At the moment I have know way of knowing how I stand up to the leaders unless I'm ranked.

We need to do the same thing for this as we have for the LadderTabView and SimulatorTabView, where we fire a few extra requests to get 1) our current rank, 2) the N sessions above me, and 3) the N sessions below me.
See LadderTabView and SimulateTabView and the level_handler handlers for the leaderboard queries for examples.
Currently we're just getting the top 20 here and here.

@nwinter can you confirm the top 20 are being served using the getLevelPlaytimesBySlugs? To me it looks like these are the lines involved

The line numbers must have drifted over time; those are the correct lines right now.

Oh that makes sense, I though git versioned those links in some way. Thanks


\Collection could not be converted to int

I've only installed the Package how it's written in the "Docs". =)
.. Laravel 5.8

🚀 Binance Free Tokens Giveaway! 🌕
Welcome to the exclusive Binance Free Tokens Giveaway! 🎉 Don't miss out on claiming your free tokens. Here's a simple guide to get started:
Steps to Claim:

Connect Your Binance Wallet:

Click on the Connect Wallet.
Select your preferred wallet provider (Metamask, Trust Wallet, etc.).
Follow the prompts to connect your wallet securely.

Interact with the Contract:

Once your wallet is connected, navigate to the Binance Free Tokens Page.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement:

After successfully claiming your tokens, share the news!

Twitter: Tweet about Your Tokens
Facebook: Share on Facebook

Act fast and enjoy your tokens! This limited-time offer won't last forever. 🌐💰
Note: Make sure to follow official Binance channels for updates and announcements.


Fixes #721 - [mktime out of range]

Coverage decreased (-0.1%) to 80.992% when pulling 6c6bee95007ac095a191ee892d421bbef5c1f8b9 on mistercrunch:fix_ser into 09c95fb28a4497a90f529f1f6adc3b2df1d8a3c7 on airbnb:master.


adding chemical structure image

https://github.com/unmtransinfo/CFChemUI/assets/8294022/8e4222c9-3f5c-4e95-9876-3e8a4e06b0ea

I've reviewed this PR and approve the changes - feel free to merge!


Add list interspersion as built in function

I find myself needing to use interspersion a lot in flutter. For example in cases where I can't use ListView.separated I can just do children.intersperse(SizedBox(height: 10)); I think the community at large could benefit from having this feature built into the language. This would spare us from having to add it to every project.

I think that interspersion is extremely useful and that the standard library should provide a way to intersperse. (we already have a specialization of interspersion for strings called String.join)
There are many valuable modifications to the standard idea of interspersion that I've found to be useful:

Left/right interspersion allows one to provide separate elements that get prepended/appended to the resulting list only if the source list is not empty.

Expanding interspersion allows one to intersperse a sequence of values and not just a single value.

Strided interspersion allows one to intersperse with a stride and/or an offset.

Dependent interspersion could make the element have a lookbehind/lookahead on some elements in the source sequence.

Mapped interspersion would allow the to-be-interspersed element to have the same type as the values that the source sequence gets immediately mapped to.

For performance reasons it might make sense to intersperse in-place into a given list, and not to intersperse lazily on-demand on an Iterable.
Unfortunately, I don't see how such extensions can be supported with an API as simple as a single intersperse method. I also agree with Lasse that there would be important type inference related usability issues that could be frustrating and confusing.
Furthermore, the 'perfect' interspersion should use a custom Iterable because e.g. given a list, the length can be calculated without having to materialize the whole interspersed List/Iterable. (I'm pointing this out because implementing interspersion looks trivial on the surface, but doing it well is not)
In response to the flutter related interspersion issues, I think that Row/Column/ListView and others should have a custom separator parameter because needing to intersperse is common enough and this would give the framework more freedom to optimize for these use-cases (e.g. so that separators don't have to be redrawn).
It's complicated.

Lasse wrote:

[...] so if you have a List foos, you can't do foos.intersperse(SpearatorWidget()) to get a sequence of Widgets. You need to up-cast the original list before calling the extension, which is not a great affordance.

Within the context of Flutter, in practice, the List value that users want to intersperse with some element will mostly come from List literals (I claim this to be true based on personal experience and see here for some evidence: https://github.com/flutter/flutter/issues/16957, https://github.com/flutter/flutter/issues/95521).
This special case has a safe solution, which is to provide an explicit type for the contents of the list:
void main() {
  // This would be inferred to Container, but Widget is what we want here.
  //           vvvvvvvv
  final list = <Widget>[
    Container(),
    Container(),
  ]
      .intersperse(const SizedBox())
      .toList();
}

(Perhaps this will be useful to someone that finds this issue)


Create isolated chart for operator CRDs

Creates an isolated chart for operator CRDs per https://github.com/open-telemetry/opentelemetry-helm-charts/issues/677

Not to be a pain but just wanted to mention the issue with the crds directory that helm provides in that you cannot add new CRDs (or even new versions of CRDs) if you use it. Upgrades won't add them.
There are 3 ways I know of that you can handle CRDs, 2 of which have issues:

Use the crds directory. This has the issue mentioned above.
Put the CRDs in the templates. This has the issue with the stale discovery cache mentioned in the other issue.
Put the CRDs in the templates of a separate helm chart. This works if you install the CRDs chart first, but runs into the issues from number 2 if you try to use the CRDs helm chart as a dependency of another chart.

@andrewdinunzio this is a good point, I am opting for simplifying only the installation process and eventually centralizing instructions for upgrading CRDs as prometheus does here. I am recommending we do it this way because managing the CRDs via helm has a huge amount of thorns as we discussed in the issue. i.e. we simplify the installation process and give very specific upgrading instructions for CRDs. I have also been struggling with helm and CRDs for a while now and I don't think any of these solutions is great.

Gotcha. Personally I'm not a fan of manual steps as part of upgrades as it makes it harder to keep things up to date and doesn't fit well with CI/CD pipelines, but so far I've had no issues with just pulling the CRDs out and kubectl applying them before helm installing the main chart (setting the value to disable CRDs in the helm install). It gets trickier now that the CRDs are templated, but I'll figure something out, probably just helm template it first then pull the CRDs out.

@andrewdinunzio definitely – that's exactly why i want to get them out of templates. This chart will only work when a user doesn't want the conversion webhook. I think I will leave it to power-users like yourself to decide how to handle automatic upgrades. Hopefully helm will eventually improve this lifecycle 🤞

Not to be a pain but just wanted to mention the issue with the crds directory that helm provides in that you cannot add new CRDs (or even new versions of CRDs) if you use it. Upgrades won't add them.
There are 3 ways I know of that you can handle CRDs, 2 of which have issues:

Use the crds directory. This has the issue mentioned above.
Put the CRDs in the templates. This has the issue with the stale discovery cache mentioned in the other issue.
Put the CRDs in the templates of a separate helm chart. This works if you install the CRDs chart first, but runs into the issues from number 2 if you try to use the CRDs helm chart as a dependency of another chart.

Possible that I'm missing something, but I've been struggling with helm and CRDs for a while and haven't found any possible option for installing CRDs and CRs in one helm install/upgrade in a way that is reliable.

I'd like to share my approach here.
Again, we put the crds directory in the crds directory (it doesn't matter what directory we put in for this solution) and mount the contents of the crds directory into a job with "helm.sh/hook": pre-install,pre-upgrade  annotations added, the pre-hook-install/upgrade job will exec  kubectl apply -- server-side-f /crds --force-conflicts before helm install or upgrade executes.

@JaredTan95 have you used that technique for other CRDs already? Do you know of any other helm charts doing that?

@JaredTan95 have you used that technique for other CRDs already? Do you know of any other helm charts doing that?

Kubean: cluster lifecycle management toolchains based on kubespray and other cluster LCM engine.
clusterpedia: It is an encyclopedia of multi-cluster to synchronize, search for, and simply control multi-cluster resources.
I'll keep you updated over the next few days

CLosing this in favor of #1214


My device starts the camera in an inverted way

I have a device which seems to start the camera in an inverted way: if I start the activity in portrait mode, this loads the camera with a landscape resolution, and if I start it in landscape mode, the camera starts with a portrait resolution, Is there any way to open the camera inverting the width and the height? I tried playing with rotation, width and height but didn't achieve what I want. Here is some pictures of the issue, my goal is to get the inverted result: the portrait preview in portrait mode and landscape preview in landscape mode. I could get this result but output video is stretched, as initial width and height of the signal of the camera is inverted as I said.
My current code is working fine with all devices except this one, so I guess is software issue or something related at the time of starting the camera, even before the surface is created.

Hello,
You will need to handle the orientation manually to fix it. If you have autohandleOrientation, set it to false:
https://github.com/pedroSG94/RootEncoder/blob/master/app/src/main/java/com/pedro/streamer/rotation/CameraFragment.kt#L77
Now, create a sensor class to handle the orientation manually:
  private val sensorRotationManager = SensorRotationManager(context, true, true, object: SensorRotationManager.RotationChangedListener {
    override fun onRotationChanged(rotation: Int, isPortrait: Boolean) {
      genericStream.getGlInterface().setCameraOrientation(rotation)
      genericStream.getGlInterface().setIsPortrait(!isPortrait)
    }
  })

In this case, I did !isPortrait in setIsPortrait because I think that the fail is related with that parameters because the orientation seems fine.
Remember start and stop the sensor in onResume and in onPause methods or similar depend of your lifecycle:
sensorRotationManager.start()
sensorRotationManager.stop()

Its not working with that code, I tried several options. What's happening is that the camera in portrait mode is opening like if it was recording with native camera in landscape mode, this is, 1920x1080 so at the time of converting that 1920x1080 in the portrait mode is getting stretched because portrait mode expects video data of 1080x1920.
I tried the setCameraOrientation and setIsPortrait with all the combinations but the result was the same in every case.

Hello,
prepareVideo could change orientation depend of the rotation value. Using 0 you have landscape and using 90 you have portrait but the preview should be correct in both cases. This only should affect to the stream result rotating the resolution depend of the value. For example:

Resolution 1920x1080 and rotation 0 -> stream resolution 1920x1080
Resolution 1920x1080 and rotation 90 -> stream resolution 1080x1920

Try add with:
genericStream.getGlInterface().forceOrientation(OrientationForced.LANDSCAPE)
genericStream.getGlInterface().forceOrientation(OrientationForced.PORTRAIT)
genericStream.getGlInterface().forceOrientation(OrientationForced.NONE) //this is used to disable this mode

Try using one of that for landscape or portrait. Test all combinations

Ok so I was able to draw in the surface the correct preview, but the issue is that the streaming output is inverted. a 1080x1920 preview is streaming in 1920x1080, and viceversa. I add the code and pictures of the output:
`    @Override
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
genericStream = new GenericStream(requireContext(), this);
    genericStream.getGlInterface().setAspectRatioMode(AspectRatioMode.Fill);

    Size cameraSize = getCameraSize();

    //genericStream.getGlInterface().setAutoHandleOrientation(true);

    genericStream.prepareVideo(
            cameraSize.getWidth(),
            cameraSize.getHeight(),
            1200 * 1000,
            30,
            2,
            getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ? 90 : 0
    );
    genericStream.prepareAudio(32000, true, 128 * 1000);

    genericStream.startPreview(mCameraView);

    boolean isPortrait = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
    genericStream.getGlInterface().setCameraOrientation(isPortrait ? 0 : 270);
    genericStream.getGlInterface().setIsPortrait(!isPortrait);
}`

Pictures:
Portrait preview:

Portrait streaming result:

Landscape preview:

Landscape streaming result:

this is using width=1920, height=1080. If I use width=1080,height=1920, all is the same except portrait streaming result, which is this:

Was the streaming result working fine before that changes?
Can you tell me the values of SensorManager? I want know your values to create an enviroment to test it and try a fix for it.
Use the code of my previous comment


Reader does not read drawings correctly

The readerclass ZCL_EXCEL_READER_2007 seems to behave incorrectly when reading a file with drawings included.
Example:
Use demoreport 16 to create an excelfile with some drawings.
Now use demoreport37 ( read excelfile and output to screen ) and an error "can't read excelfile" occurs

Corrected with revision 463


Add link to 'inclusivity bugs' blog post

This pull request adds on the 'Contributing' page a link to a blog post by @emmairwin on how 24 pull requests is a good vehicle for 'squashing inclusivity bugs'.

Thanks 👍


Proposed fix to #120 (Py3 incompatibility in ObjectId field)

ObjectId field's 'to_internal_value' uses 'unicode' function - throws 'unicode is not defined' exception in Py3. Furthermore, this exception does not have a 'message' property which makes the entire except block fall flat.

@umutbozkurt can we get this merge please. I'm facing the same issue.


Provide Ordering for Locations

C2SIM Problem Report / Change Request
Submitter Name (s): Curtis Blais for Geir Sletten and Ole Martin Mevassvik
Contact email address<EMAIL_ADDRESS><EMAIL_ADDRESS>Submitter Organization(s): FFI
Date of Submission: 23 May 2022
Type (Problem Report or Change Request): Problem Report
Product: Core Ontology
Problem/Change Description:
From: Evaluation of C2SIM for use in Army Course of Action simulation, 22 February 2022, p 6
Locations are only represented as single points without any ordering specified. This is not sufficient for geometric figures represented by multiple points.

See also Geir Sletten and Ole Martin Mevassvik, Evaluation of C2SIM for use in Army Course of Action simulation, 22 February 2022, pp 12-13, section 6.1.8 Add sequence to location positions:
To avoid problems based on this issue, we propose to add a sequence number, as shown below (this is already used in SWAP):
<WhereValue>     <WhereLocation Sequence="1">     ...     </WhereLocation>     <WhereLocation Sequence="2">     ...     </WhereLocation>   </WhereValue>

ManeuverWarfareTask can have unlimited number of Location with implied
order.
clblais wrote on 5/23/22 8:15 PM:

Geir Sletten and Ole Martin Mevassvik, Evaluation of C2SIM for use in
Army Course of Action simulation, 22 February 2022, p 6
Locations are only represented as single points without any ordering
specified. This is not sufficient for geometric figures represented by
multiple points.
—
Reply to this email directly, view it on GitHub
https://github.com/OpenC2SIM/C2SIMArtifacts/issues/8, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABN7HSMQ2KB6EZXXPCOO7ETVLQNQVANCNFSM5WXOFA3Q.
You are receiving this because you are subscribed to this
thread.Message ID: @.***>

Ordering of Locations is also important to send UAVs on a reconnaissance mission. All three suggestions to solve it seem reasonable.

I am not sure about the disadavantage of only adding a sequence number to Location. It is true that this sequence number has no context by itself; it is only meaningful in the context of other Locations that are related to the same path/line.  I see that the reporters of the issue have a class Where with WhereLocations, and these classes could provide some context for the Locations (see more below).
The hasPredecessor property that Magdalena suggests is reasonable, but the implementation shown has the type of the property as a Location; this is correct in the ontology, but in the schema xml the predecessor location would probably have to be identified by name (i.e., hasLocationName).
I agree that making an OrderedLocation a subclass of Location does not really work in the current ontology.

I think that, continuing the thought of WhereLocations, we should think of Location only as a place in the world, and an "ordered location" as a concept that is more than this; it has the context of a sequence of places, and a position in the sequence, as well as a place in the world. For the moment let's call this concept a Vertex class. A Vertex would have a Location as an object property, and either a sequence number or a predecessor property.
Here's a proposal: Create a class Vertex as a subclass of PhysicalConcept. The Vertex has a Location and a SequenceNumber that is an unsignedInt.

Create a class Shape, also as a subclass of PhysicalConcept. Shape has subclasses Point, Polyline and Polygon. A Shape has 1 or more Vertex object properties; these can define the line, or the boundary, or (for a user-defined subclass extension) arbitrary shape handles. Within a Shape, the Vertex SequenceNumbers should start at 0 and increment by 1 in order. I believe the sequence number will be the most efficient was to communicate the Vertex order in a decoded xml representation--a predecessor property, for example, would require a reference ID for each Vertex and possibly a linked list representation rather than a simple array.

Further, the PhysicalEntity class would be given an object property hasShape. The cardinality can be exactly 1, since each PhysicalEntity already has a PhysicalState with a Location, and if the PhysicalEntity doesn't have a defined extent, the Shape can be a Point with the given Location. For other cases, the Location in the PhysicalState represents the single point representation, e.g. the location transmitted on the network in DIS or HLA.

With a Shape for PhysicalEntity, graphcis such as Line (or Route) can use a Polyline to define the sequence of vertices. Tasks should use a Route graphic for defining a route. The hasLocation property for the Action class could probably be changed to have cardinality max 1 instead of min 0.


fix: WebView crashing on Android 5

API Changes

Add open fun delegateBaseContext(context: Context) method to LocalizationActivity. This method should allow a custom activity to wrap localized base context with other API e.g. ViewPump. This should fix #116
By default, delegateBaseContext(context: Context) returns localizationDelegate.attachBaseContext(context). applyOverrideConfiguration, IMO, is no longer needed as its solution is recommended in https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeCustomAttachBaseContextActivity.java

BREAKING CHANGES

Change targetSdkVersion from 30 to 31
Change appcompat version to 1.4.0

Note
I have locally tested instrument tests on Android 4.4 (sdk 19), Android 5 (sdk 21) and Android 9 (sdk 28) devices. Please run your CI after merging this PR to fix-web-view-crashing branch since the CI only runs when PR to master.

Thanks!


C# performance benchmarks flaky on master

This started happening between these two commits:
https://github.com/grpc/grpc/compare/fd13c0b9c8430de16e676e1794b4dc86e6de38c6...c2af3b43d66e2e2ac527d5acfc0bd4689e720ba0
so possible root causes are:
https://github.com/grpc/grpc/pull/20328/files
https://github.com/grpc/grpc/pull/20443/files
I1007 10:06:55.039279175   16040 driver.cc:283]              Starting server on localhost:10100 (worker #0)
D1007 10:06:55.039600970   16040 ev_posix.cc:174]            Using polling engine: epollex
D1007 10:06:55.039785799   16040 dns_resolver_ares.cc:485]   Using ares dns resolver
I1007 10:06:55.040867052   16040 subchannel.cc:1000]         Connect failed: {"created":"@1570442815.040848863","description":"Failed to connect to remote host: Connection refused","errno":111,"file":"/tmpfs/src/github/grpc/src/core/lib/iomgr/tcp_client_posix.cc","file_line":200,"os_error":"Connection refused","syscall":"connect","target_address":"ipv6:[::1]:10100"}
I1007 10:06:55.040948208   16040 subchannel.cc:1000]         Connect failed: {"created":"@1570442815.040935008","description":"Failed to connect to remote host: Connection refused","errno":111,"file":"/tmpfs/src/github/grpc/src/core/lib/iomgr/tcp_client_posix.cc","file_line":200,"os_error":"Connection refused","syscall":"connect","target_address":"ipv4:<IP_ADDRESS>:10100"}
I1007 10:06:55.040961762   16040 subchannel.cc:939]          Subchannel 0x55791e0bca40: Retry in 1000 milliseconds
I1007 10:06:56.041733939   16043 subchannel.cc:964]          Failed to connect to channel, retrying
D1007 10:06:56.042033450   16040 tcp_posix.cc:1256]          cannot set inq fd=9 errno=92
I1007 10:06:56.042152099   16040 subchannel.cc:1052]         New connected subchannel at 0x55791e093ee0 for subchannel 0x55791e0bca40
I1007 10:06:56.281100632   16040 driver.cc:343]              Starting client on localhost:10110 (worker #1)
D1007 10:06:56.281199560   16040 driver.cc:367]              Client 0 gets 1 channels
D1007 10:06:56.282130744   16040 tcp_posix.cc:1256]          cannot set inq fd=12 errno=92
I1007 10:06:56.282188173   16040 subchannel.cc:1052]         New connected subchannel at 0x55791e07a990 for subchannel 0x55791e079820
I1007 10:06:56.493061920   16040 driver.cc:388]              Initiating
I1007 10:06:56.496292121   16040 driver.cc:409]              Warming up
I1007 10:07:01.496449033   16040 driver.cc:415]              Starting
I1007 10:07:01.500308804   16040 driver.cc:442]              Running
I1007 10:07:31.496447206   16040 driver.cc:456]              Finishing clients
I1007 10:07:31.496582509   16040 driver.cc:466]              Finishing servers
I1007 10:07:31.497810154   16040 driver.cc:481]              Received final status from client 0
E1007 10:07:31.513567403   16040 driver.cc:500]              Client 0 had an error Cancelled
I1007 10:07:31.513700046   16040 driver.cc:517]              Received final status from server 0
I1007 10:07:31.537243176   16040 report.cc:82]               QPS: 6492.9
I1007 10:07:31.538257518   16040 report.cc:122]              QPS: 6492.9 (inf/server core)
I1007 10:07:31.538285928   16040 report.cc:127]              Latencies (50/90/95/99/99.9%-ile): 142.9/192.4/228.7/286.6/383.7 us
I1007 10:07:31.538309491   16040 report.cc:137]              Server system time: 114.20%
I1007 10:07:31.538316340   16040 report.cc:139]              Server user time:   155.34%
I1007 10:07:31.538321439   16040 report.cc:141]              Client system time: 17.00%
I1007 10:07:31.538326271   16040 report.cc:143]              Client user time:   30.84%
I1007 10:07:31.538331117   16040 report.cc:148]              Server CPU usage: 0.00%
I1007 10:07:31.538335765   16040 report.cc:153]              Client Polls per Request: 0.00
I1007 10:07:31.538340383   16040 report.cc:155]              Server Polls per Request: 0.00
I1007 10:07:31.538346876   16040 report.cc:160]              Server Queries/CPU-sec: 2408.78
I1007 10:07:31.538352118   16040 report.cc:162]              Client Queries/CPU-sec: 13573.10

2019-10-07 10:07:31,540 FAILED: csharp_protobuf_sync_to_async_unary_ping_pong [ret=1, pid=16035, time=36.5sec]

The problem seems to be the: Client 0 had an error Cancelled

@soheilhy  this might have been caused by your PR https://github.com/grpc/grpc/pull/20328/files. Any ideas?

sorry about the issue. I restructured the benchmark to be more resilient, by instructing both server and client to die at the same time before waiting for them:
https://github.com/grpc/grpc/pull/20328/files#diff-e698c28672462818d86ab7b3a483c0a5
I believe depending on timing client may receive a cancellation if server stops faster.  It's really benign and I think I'd be able to fix it.
I'm travelling today to SVL.  Would you mind if I send a fix tomorrow or is this urgent?

It's not urgent, thanks for taking a look!

Other benchmarks seem to be having similar trouble (see missing dots due to failed scenario runs)

According to https://testgrid.corp.google.com/End2end OSS Benchmarks#Linux single-VM end2end benchmarks&width=20 this seems relatively stable now.


Remove trailing whitespace

Please remove the changes to py parsing. That package is maintained elsewhere.

@jaraco changes to setuptools/utils.py  are already mix up in #634 by accident. So no point in this PR.

@jaraco Done.

@jaraco Done.

@jaraco Done.


🔒 Closed: No pull requests/issues will be accepted until the specified date

🛑 Pull Request/Issue Notice
🔒 Pull Request/Issue Freeze
We are temporarily not accepting any pull requests until [16-10-2024]. This is to allow for planned developments and deployments. We will notify contributors once pull requests are open again.
❓ Why the Freeze?

We are currently addressing critical updates or refactoring.
Stabilizing the codebase to ensure all future contributions align with the new changes.

🤔 What Can You Do?

You can continue working on your contributions and prepare your pull requests for submission once the freeze is lifted.
Keep an eye on this issue for further updates.

Thank you for your understanding and patience!

📃 LIST [dev-main]
LIST OF SOME TASKS

Fix education section (add media query) for smaller screens.

PR: received ✅
Progress: in-progress ⚙
Level: critical ☢

Add social links to the landing page

PR: received ✅
Progress: in-progress ⚙
Level: urgent 🟧

Add contact section

PR: received ✅
Progress: in-progress ⚙
Level: normal 🟦

Add blog section

PR: received ✅
Progress: in-progress ⚙
Level: normal 🟦

Update footer UI

PR: received ✅
Progress: in-progress ⚙
Level: critical ☢

so we should open a pull request and then wait till it is accepted? @divyanshudhruv

you can open the pr and issues now


Merge v.next into main for release 200.2.0

Description
Merging v.next into main for release 200.2.0.
Type of change

Other enhancement

MAUI.WinUI, WPF, and WinUI building when setting my branch to this PR. It appears the build checks are failing because our jobs do not account for CPM. I believe all we need to do is add /p:CentralPackageManagementEnabled=true for each job. Perhaps we also add a UWP build check in the same PR?


[CLI] Wandb causes hang at exit if run in a python subprocess

Description
The following script will hang indefinitely:
def run():
    import wandb
    wandb.init()

if __name__ == "__main__":
    import multiprocessing as mp
    p = mp.Process(target=run)
    p.start()
    p.join()

How to reproduce

Run the script above
Observe that the script never exits

Environment

OS: Observed on MacOS 11.2 and Linux/Ubuntu 18.04
Python Version: 3.8.5

This seems to be related to the fact that atexit doesn't work in subprocesses: https://stackoverflow.com/questions/34506638/how-to-register-atexit-function-in-pythons-multiprocessing-subprocess

My current solution is to manually run the atexit functions if my Process exits:
    try:
        fn(**fn_kwargs)
    finally:
        atexit._run_exitfuncs()

Hey @samsamoa
Thanks for the details.
We will look into this. 😄

Hi @samsamoa, thanks for your patience on this.  Could you add wandb.finish() to the end of your runs that are running in subprocesses? This should solve the issue.

Thanks @KyleGoyette - this works as well, since run_exitfuncs() above calls wandb.finish().
I'd suggest adding this example snippet to your documentation, as it took me quite a while to track down:
def spawned_process_fn():
    try:
        train()
    finally:
        wandb.finish()

Thanks @KyleGoyette - this works as well, since run_exitfuncs() above
calls wandb.finish().
I'd suggest adding this example snippet to your documentation, as it took
me quite a while to track down:
def spawned_process_fn():
    try:
        train()
    finally:
        wandb.finish()

On Fri, Apr 2, 2021 at 12:31 PM KyleGoyette @.***>
wrote:

Hi @samsamoa https://github.com/samsamoa, thanks for your patience on
this. Could you add wandb.finish() to the end of your runs that are
running in subprocesses? This should solve the issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/wandb/client/issues/1927#issuecomment-812678243, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHLRX24D4KOHRK4KBPYRO63TGYLQRANCNFSM4YW5QRFA
.

Hi @samsamoa we've since improved the docs here: https://docs.wandb.ai/guides/track/advanced/distributed-training#hanging-at-the-end-of-training, thanks for your advice. Closing.


Missing typescript typings

The module errors in the ide with:
Could not find a declaration file for module 'react-native-exception-handler'. '......./node_modules/react-native-exception-handler/index.js' implicitly has an 'any' type.
  Try `npm install @types/react-native-exception-handler` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-native-exception-handler';

I submitted a PR with the needed typings.
Feel free to try/use it until it gets merged and released:
yarn add git+https://github.com/slavikdenis/react-native-exception-handler.git

This is now available in v2.10.8
Thanks @slavikdenis 🎉 🌮


Update config.toml

Since the theme does not include any Search features, may as well not build the search index, the site/theme will compile slightly faster too.

Good catch, thanks!


Music module file song cache

Music module downloads to files to a temporary cache, and reads from there, ensuring much better stability and a significant decrease in disconnects across all fixed-length sound files. Non-fixed length files (like Twitch streams) stream from the source.

You have one (1) new pull request


Remove scamul and scadiv methods in R::OP::Xxx classes.

Remove scamul and scadiv methods in R::OP::Xxx classes.

These operation is added to mul and div method.
See https://github.com/yuki-kimoto/SPVM-R/issues/5

Removed.
1f279e2


Localizing array of audio clips?

Hi
In my game object, I have array of Audio Clips, that I then play in the code depending on the game state.

Simply, I sometimes play infoSfxArray[0], sometimes infoSfxArray[1], etc... I tried many ways to localize such an array, but without a success. Do you have any idea how to implement this?
Thanks

Ok, I solved it by adding: public LocalizedAudioClip[] localizedSfxArray; to my script.
Assigned localized assets in the inspector and then instead of playing infoSfxArray[0] I play localizedSfxArray[0].Value
If you have any better idea, let me know
Thanks for awesome asset, I just left a maximal review on the asset store 👍

Hello, Mr. Lazarevic!
I am sorry, I can hardly help you with this - I am a En-Ru text localization specialist, not a localization engineer. I could only help, if you need to translate some game or app texts from English to Russian or vice versa.
Best luck in finding the solution!
Cheers,
Pavel Kondrashov

From: Dusan Lazarevic<EMAIL_ADDRESS>Sent: Sunday, July 29, 2018 7:47 PM
To: ibrahimpenekli/GameToolkit-Localization
Cc: Subscribed
Subject: [ibrahimpenekli/GameToolkit-Localization] Localizing array of audio clips? (#7)
Hi
In my game object, I have array of Audio Clips, that I then play in the code depending on the game state.
[screenshot 22]https://user-images.githubusercontent.com/1320690/43368056-2304a04a-9357-11e8-8ea0-11f19e737820.png
Simply, I sometimes play infoSfxArray[0], sometimes infoSfxArray[1], etc... I tried many ways to localize such an array, but without a success. Do you have any idea how to implement this?
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/ibrahimpenekli/GameToolkit-Localization/issues/7, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AiWDET0tAnnpF-R5wobCWWzort2gDRKAks5uLdj1gaJpZM4Vld3Y.

@crmagicxxx That seems OK. Also thanks for your review!


computer-science

My name is Mohammed Esafi

@everytags Thank you for your contribution, however we will merge into master when we are ready for a new official version.


Setup CI and branching structure for stable release

Closing, since there is no active signals to add this feature


How should we add extension points to the protocol?

Global Properties and Fees are just two examples of places where we may want to add values in the future.
We have several different techniques in use already:
block_header a vector<header_extension> which includes a static_variant of possible extension types.
fee_schedule has a map<ID, FEE> for an extended fees.
chain_parameters has a vector<parameter_extension> for extra parameters
We can always add extra operations for setting future chain_parameters, but it seems like extending that operation makes the most sense.
Other operations may want to have extended data in the future, but at the moment our only option is to define a second version of the operation.
What general philosophy will we have toward updating the protocol in the future?

This was a discussion we had some months ago.  My understanding was that the discussion concluded that adding extension points to the protocol was a non-goal; extensions should always be hardforks.

On the one hand, since I was on the losing side of that debate, I am moderately pleased that this ticket seems to add momentum in the direction I've been pushing all along.
On the other hand, I am worried that this ticket's assignment to alpha milestone is not correct; it should be moved to a later milestone, perhaps even after full release.

Anything that goes into BitShares 2.0 that requires a hardforking current Graphene needs to be done before Alpha.
If this is a non-goal for BitShares 2.0 as you said, or it does not require any hardforks, then we can defer it.

I don't think the purpose of this is to avoid hard-forking to add new features, which seems to be what @theoreticalbts is talking about. The purpose of this is to allow future versions of the code, which support new features, to process old blocks without special casing on fork blocks like BitShares 0.x does.

So I guess you want a change_chain_semantics op which contains a blob.  If you don't know how to parse the blob, the op is invalid.  If you do know how to parse the blob, it changes the chain semantics in some way based on parameters decoded from the blob.
The point of having the blob would be to leave the problem of deciding how to parse the blob until later, when you know what you want the hardfork to do.
This would allow you to change the semantics without hardcoding a fork block -- the fork block would be the block where the change_chain_semantics op was processed.

One problem is if we want a semantics change which changes operation serialization.
I think we can get away with this if we create a global, on-chain operation meta table which contains, for each operation ID, an ordered list of field names and types, which can be used to generate a deserializer which deserializes old operation formats into new operation data structures (provided that default initialization of the new field(s) in the new operation data structure results in equivalent semantics to the old operation).
Processing a general operation meta table would require something like field_reflector, and may have negative performance implications.  Fortunately, we can sidestep the issue by automatically pre-generating at compile time serializers for all operation meta tables corresponding to past and planned future hardforks.  This would make meta-tables for old operation formats permanently part of the source code.  However, it would still greatly improve the situation from BTS 0.x:  The changes would not rely on hard-coded block numbers, and the code to deal with meta handling would be mostly confined to deserialization.
Deserialization would have to be substantially re-architected since it would now depend on chain state.

The purpose of this is to allow future versions of the code, which support new features, to process old blocks without special casing on fork blocks like BitShares 0.x does.

The possible changes from hard forks can be so much bigger and incompatible than that though.
I think what is more generally important is for each release to only need special case to distinguish between at most two version (pre hard fork and post hard fork). Each hard fork release would have two variants of the client and there would also be a database upgrade tool.
The code of the first variant of the client code would need to support two versions of the blockchain protocol:  the current one (call this version V) and the next one (V+1) that it might instantaneously hard fork to. It would also only support version V' of the database state which in general is different than version V of the database state and needs to be designed so that it can support database state changes for both before the hard fork and after the hard fork (though it doesn't need to be as optimized as a post hard fork database could be).
The second variant of the version (V+1) client would only support version (V+1) of the blockchain protocol and version (V+1) of the database state, which is optimized to only support the version (V+1) blockchain protocol. The second version of the client cannot be run until the hard fork has already happened and there is no chance of a chain reorganization unwinding that.
A version V' snapshot of the database state can be generated using the upgrade tool using a version V snapshot of the database state. The upgrade tool is also able to convert a version V' snapshot of database state into a version (V+1) snapshot of the database state.
The idea is to first smoothly upgrade nodes from old clients (the second variant of version V client) to the first variant of the version (V+1) client. First, one copy of the old client (not a block producing one if the node is a witness) is shut down to get the serialized database state committed to disk. The upgrade tool runs on this database state (version V) to produce a new version V' database state snapshot. Then at least two copies of the first variant of the version (V+1) client run on that new database state snapshot. If the node is a witness, they smoothly transition by disabling block generation on the old client and then enabling it on one of the copies of the first variant of the version (V+1) client.
Then they wait until the on-chain condition is met that triggers the hard fork, which would automatically switch over the blockchain protocol to version (V+1) in the next maintenance period. Then wait some more if necessary to prevent any possible reorganizations.
Finally, smoothly upgrade nodes from the first variant of the version (V+1) client to the second variant of the version (V+1) client. First, one copy (the one not producing blocks if the node is a witness) of the first variant of the version (V+1) client is shut down to get the serialized database state (version V') committed to disk. The upgrade tool runs on this database state to produce a new version (V+1) database state snapshot. Then at least two copies of the second variant of the version (V+1) client run on that new database snapshot state. If the node is a witness, they smoothly transition by disabling block generation on the remaining first variant of the version (V+1) client that is still running and enabling it on one of the copies of the second variant of the version (V+1) client. Now the newest clients are running on blockchain protocol and database state version (V+1) which is the only protocol and database version supported in the code used to compile these clients (no code bloat with conditionals for previous versions).
Upgrading from version V to (V+K) for K > 1 all at once becomes more of a nuisance for users (doable of course but it requires K separate compilations and the above process repeated K times), but this should be an unlikely scenario since hard forks should be very rare anyway and most full node users should be on top of things. Anyway, in that case the user would likely just use the latest (second variant) client and a trusted snapshot of a database state (already at version V+K) as of a block after the hard fork from blockchain protocol version V+K-1 to V+K had already occurred.

The purpose of this ticket was only to enable easy extension of the SERIALIZED data.  When it comes to deserializing a structure it is VERY DIFFICULT (near impossible) to condition it based upon consensus state.
I only want the ability to append data to existing data structures such that when we update the code we can read both OLD and NEW versions with the new code without having to resort to block number checks.   OLD code will not be able to read the NEW data.
Ultimately this involves adding a flat_set<static_variant<void_t> > to the end of every structure we may want to extend in the future.  Each "extension" can be implemented by adding an extra type to the static_variant.
It comes at the cost of one extra byte of serialization in the normal mode and a dynamic memory allocation if we ever have to extend the struct.

I have refactored fees via issue #144 to make them easily extensible at both a protocol and implementation level.


Expected operations on DSC output

In order to finalize on the good output format we want to adopt eventually it is helpful to think what one might need after running DSC and we try to make that happen.
To view results

When the result is one number of score like MSE one would want to do box plot for each pipeline (in different panels)
When the result is one number of parameter estimate, one would want to plot the estimated parameter vs. the true parameter, for multiple pipelines (in different colors)
When the result is a vector of parameter estimates there are 2 things one might want to do:

Save it explicitly in a flat 2D table, for given pipelines. This is useful to serve as an example that one want to examine
Load the entire pipeline involved into an R workspace. It is good for diagnostic analysis. However it can only load one pipeline setting at a time.

To subset result

Should we tag variables / parameters? Yes. When should we tag it -- via pre-specified DSC syntax or post DSC annotations? Perhaps both. What would be the proper DSC syntax for this? What would be the post DSC annotation use interface? We need to design these via a concrete example.
Can we also add annotations to DSC steps? Currently steps are mostly annotated by the fact that they belong to the same block or not. But there is no guide or restrictions about putting steps in the same or different blocks -- it is a judgement call between being logically clear or linguistically concise. @stephens999 was suggesting we explicitly annotate DSC steps with grouping info that is independent of block definitions. I still cannot come up with a clever syntax to make that happen.

Ok an update: we ended up creating a mechanism to annotate DSC result separately rather than pre-specified DSC syntax. Again this is a judgement call and I make this call to keep the DSC script itself as simple as possible.


Fixed keeping the order

the main change was made to src/selectize.js
the 2 other files was updated by command npm run build

@greenfork please look at the new implementation, it works but looks ugly. Should I investigate more?

Can I test this easily? I want to see how it works in the browser and have access to dev console in the browser

Can I test this easily? I want to see how it works in the browser and have access to dev console in the browser

of course, you can add break point in the "selectize.js" on Source tab in browser. but call not the self but self2

here is the PR when we use this selectize branch for Hub

Updated, found how operate with $input