Clicking on the following page during dragging will cause an error

Great work and great doc, but I found a problem that click on the background page during dragging will cause an error, like this:
https://github.com/fujidaiti/smooth_sheets/assets/10332761/7af44d63-f9a9-497c-ab46-c0d27b607047
Use "cupertino_modal_sheet.dart" demo can see this
And I will submit another issue for a new feature request

I tried to reproduce the problem and found that an unexpected pop event occurs when the barrier is tapped.

Error Log
════════ Exception caught by gesture ═══════════════════════════════════════════
The following RangeError was thrown while handling a gesture:
RangeError (index): Invalid value: Only valid value is 0: -1

When the exception was thrown, this was the stack:
#0      List.[] (dart:core-patch/growable_array.dart:264:36)
#1      _History.[] (package:flutter/src/widgets/navigator.dart:3474:18)
#2      NavigatorState.didStartUserGesture (package:flutter/src/widgets/navigator.dart:5457:44)
#3      _SheetDismissibleState._handleDragStart (package:smooth_sheets/src/modal/modal_sheet.dart:249:29)
#4      _DragGestureRecognizer._checkStart.<anonymous closure> (package:smooth_sheets/src/internal/monodrag.dart:543:53)
#5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:315:24)
#6      _DragGestureRecognizer._checkStart (package:smooth_sheets/src/internal/monodrag.dart:543:7)
#7      _DragGestureRecognizer._checkDrag (package:smooth_sheets/src/internal/monodrag.dart:507:5)
#8      _DragGestureRecognizer.acceptGesture (package:smooth_sheets/src/internal/monodrag.dart:440:7)
#9      GestureArenaManager._resolveInFavorOf (package:flutter/src/gestures/arena.dart:281:12)
#10     GestureArenaManager._resolve (package:flutter/src/gestures/arena.dart:239:9)
#11     GestureArenaEntry.resolve (package:flutter/src/gestures/arena.dart:53:12)
#12     OneSequenceGestureRecognizer.resolve (package:flutter/src/gestures/recognizer.dart:415:13)
#13     _DragGestureRecognizer.handleEvent (package:smooth_sheets/src/internal/monodrag.dart:421:13)
#14     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)
#15     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
#16     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633:13)
#17     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)
#18     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)
#19     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:495:19)
#20     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:475:22)
#21     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:430:11)
#22     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:420:7)
#23     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:383:5)
#24     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:330:7)
#25     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:299:9)
#26     _invoke1 (dart:ui/hooks.dart:328:13)
#27     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:429:7)
#28     _dispatchPointerDataPacket (dart:ui/hooks.dart:262:31)

Handler: "onStart"
Recognizer: _PullToDismissGestureRecognizer#804c6
    debugOwner: _SheetDismissibleState#e7785
    start behavior: start
════════════════════════════════════════════════════════════════════════════════

Probably I'll disable route poping during a pull-to-dismiss action.


Fix as_ptr() -> as_mut_ptr() finding from Miri.

I'm adding a dependency on half to a large project and wanted to give it a quick
check with miri. The miri stacked borrows checker had an issue with using a non
mutable pointer in the mutable reinterpret cast. Its not clear to me if this
was really indicative of a problem, but the version miri is happy with does look
better to me.
(note there were two other miri failures but they look like a problem
with miri itself - https://github.com/rust-lang/rust/issues/69532)

good catch, I'm surprised Rust allows a *const to *mut cast without at least a warning


[libxcb] support all xcb options

I think this will get https://github.com/xmake-io/xmake-repo/pull/914 to pass all tests


Sanitise get parameters added by URLArrayObject

Amendments to this pull request https://github.com/silverstripe-labs/silverstripe-staticpublishqueue/pull/40

Thanks for the link, I'll get myself more aware of the conventions :)


[lapack[core]:x64-linux-dynamic] build failure

Package: lapack[core]:x64-linux-dynamic -> 2022-02-22
Host Environment

Host: x64-linux
Compiler: GNU 11.3.0
vcpkg-tool version: 2023-01-24-8a88d63f241d391772fbde69af9cab96c3c64c75
vcpkg-scripts version: 1c48ec7f4 2023-02-07 (15 hours ago)

To Reproduce
vcpkg install eigen3:x64-linux-dynamic tbb:x64-linux-dynamic boost-program-options:x64-linux-dynamic boost-geometry:x64-linux-dynamic simbody:x64-linux-dynamic gtest:x64-linux-dynamic
Failure logs
-- Configuring x64-linux-dynamic-dbg
-- Configuring x64-linux-dynamic-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: /snap/cmake/1216/bin/cmake /home/hasan/VCP/ports/lapack -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/hasan/VCP/packages/lapack_x64-linux-dynamic -DCMAKE_PREFIX_PATH="/home/hasan/VCP/packages/lapack_x64-linux-dynamic" -DCMAKE_MAKE_PROGRAM=/home/hasan/VCP/downloads/tools/ninja/1.10.2-linux/ninja -DCMAKE_SYSTEM_NAME=Linux -DBUILD_SHARED_LIBS=ON -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/hasan/VCP/scripts/toolchains/linux.cmake -DVCPKG_TARGET_TRIPLET=x64-linux-dynamic -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=external -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=/home/hasan/VCP/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_LINKER_FLAGS_RELEASE= -DVCPKG_LINKER_FLAGS_DEBUG= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=/home/hasan/VCP -DZ_VCPKG_ROOT_DIR=/home/hasan/VCP -D_VCPKG_INSTALLED_DIR=/home/hasan/VCP/installed -DVCPKG_MANIFEST_INSTALL=OFF
    Working Directory: /home/hasan/VCP/buildtrees/lapack/x64-linux-dynamic-rel
    Error code: 1
    See logs for more information:
      /home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-CMakeCache.txt.log
      /home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-out.log
      /home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_cmake.cmake:340 (vcpkg_execute_required_process)
  ports/lapack/portfile.cmake:4 (vcpkg_configure_cmake)
  scripts/ports.cmake:147 (include)

/home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-CMakeCache.txt.log
# This is the CMakeCache file.
# For build in directory: /home/hasan/VCP/buildtrees/lapack/x64-linux-dynamic-rel
# It was generated by CMake: /snap/cmake/1216/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.

########################
# EXTERNAL cache entries
########################

//Path to a library.
BLAS_Accelerate_LIBRARY:FILEPATH=BLAS_Accelerate_LIBRARY-NOTFOUND

//Path to a library.
BLAS_acml_LIBRARY:FILEPATH=BLAS_acml_LIBRARY-NOTFOUND

//Path to a library.
BLAS_acml_mp_LIBRARY:FILEPATH=BLAS_acml_mp_LIBRARY-NOTFOUND

//Path to a library.
BLAS_armpl_lp64_LIBRARY:FILEPATH=BLAS_armpl_lp64_LIBRARY-NOTFOUND

//Path to a library.
BLAS_blas_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libblas.so

//Path to a library.
BLAS_blis_LIBRARY:FILEPATH=BLAS_blis_LIBRARY-NOTFOUND

//Path to a library.
BLAS_complib_sgimath_LIBRARY:FILEPATH=BLAS_complib_sgimath_LIBRARY-NOTFOUND

//Path to a library.
BLAS_cxml_LIBRARY:FILEPATH=BLAS_cxml_LIBRARY-NOTFOUND

//Path to a library.
BLAS_dxml_LIBRARY:FILEPATH=BLAS_dxml_LIBRARY-NOTFOUND

//Path to a library.
BLAS_eml_LIBRARY:FILEPATH=BLAS_eml_LIBRARY-NOTFOUND

//Path to a library.
BLAS_essl_LIBRARY:FILEPATH=BLAS_essl_LIBRARY-NOTFOUND

//Path to a library.
BLAS_f77blas_LIBRARY:FILEPATH=BLAS_f77blas_LIBRARY-NOTFOUND

//Path to a library.
BLAS_fjlapack_LIBRARY:FILEPATH=BLAS_fjlapack_LIBRARY-NOTFOUND

//Path to a library.
BLAS_flexiblas_LIBRARY:FILEPATH=BLAS_flexiblas_LIBRARY-NOTFOUND

//Path to a library.
BLAS_goto2_LIBRARY:FILEPATH=BLAS_goto2_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_LIBRARY:FILEPATH=BLAS_mkl_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_em64t_LIBRARY:FILEPATH=BLAS_mkl_em64t_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_ia32_LIBRARY:FILEPATH=BLAS_mkl_ia32_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_intel_LIBRARY:FILEPATH=BLAS_mkl_intel_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_intel_lp64_LIBRARY:FILEPATH=BLAS_mkl_intel_lp64_LIBRARY-NOTFOUND

//Path to a library.
BLAS_mkl_rt_LIBRARY:FILEPATH=BLAS_mkl_rt_LIBRARY-NOTFOUND

//Path to a library.
BLAS_openblas_LIBRARY:FILEPATH=/home/hasan/VCP/installed/x64-linux-dynamic/lib/libopenblas.so

//Path to a library.
BLAS_scs_LIBRARY:FILEPATH=BLAS_scs_LIBRARY-NOTFOUND

//Path to a library.
BLAS_sgemm_LIBRARY:FILEPATH=BLAS_sgemm_LIBRARY-NOTFOUND

//Path to a library.
BLAS_sunperf_LIBRARY:FILEPATH=BLAS_sunperf_LIBRARY-NOTFOUND

//Path to a library.
BLAS_vecLib_LIBRARY:FILEPATH=BLAS_vecLib_LIBRARY-NOTFOUND

//No help, variable specified on the command line.
BUILD_SHARED_LIBS:UNINITIALIZED=ON

//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line

//Path to a program.
...
Skipped 312 lines
...

VCPKG_MANIFEST_INSTALL:BOOL=OFF

//Use manifest mode, as opposed to classic mode.
VCPKG_MANIFEST_MODE:BOOL=ON

//No help, variable specified on the command line.
VCPKG_PLATFORM_TOOLSET:UNINITIALIZED=external

//Appends the vcpkg paths to CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH
// and CMAKE_FIND_ROOT_PATH so that vcpkg libraries/packages are
// found after toolchain/system libraries/packages.
VCPKG_PREFER_SYSTEM_LIBS:BOOL=OFF

//Enable the setup of CMAKE_PROGRAM_PATH to vcpkg paths
VCPKG_SETUP_CMAKE_PROGRAM_PATH:BOOL=ON

//No help, variable specified on the command line.
VCPKG_SET_CHARSET_FLAG:UNINITIALIZED=ON

//No help, variable specified on the command line.
VCPKG_TARGET_ARCHITECTURE:UNINITIALIZED=x64

//Vcpkg target triplet (ex. x86-windows)
VCPKG_TARGET_TRIPLET:STRING=x64-linux-dynamic

//Trace calls to find_package()
VCPKG_TRACE_FIND_PACKAGE:BOOL=OFF

//Enables messages from the VCPKG toolchain for debugging purposes.
VCPKG_VERBOSE:BOOL=OFF

//(experimental) Automatically copy dependencies into the install
// target directory for executables. Requires CMake 3.14.
X_VCPKG_APPLOCAL_DEPS_INSTALL:BOOL=OFF

//(experimental) Add USES_TERMINAL to VCPKG_APPLOCAL_DEPS to force
// serialization.
X_VCPKG_APPLOCAL_DEPS_SERIALIZED:BOOL=OFF

//No help, variable specified on the command line.
Z_VCPKG_ROOT_DIR:UNINITIALIZED=/home/hasan/VCP

//The directory which contains the installed libraries for each
// triplet
_VCPKG_INSTALLED_DIR:PATH=/home/hasan/VCP/installed

//No help, variable specified on the command line.
_VCPKG_ROOT_DIR:UNINITIALIZED=/home/hasan/VCP

########################
# INTERNAL cache entries
########################

//ADVANCED property for variable: BLAS_Accelerate_LIBRARY
BLAS_Accelerate_LIBRARY-ADVANCED:INTERNAL=1
//Have function sgemm_
BLAS_WORKS:INTERNAL=
//ADVANCED property for variable: BLAS_acml_LIBRARY
BLAS_acml_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_acml_mp_LIBRARY
BLAS_acml_mp_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_armpl_lp64_LIBRARY
BLAS_armpl_lp64_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_blas_LIBRARY
BLAS_blas_LIBRARY-ADVANCED:INTERNAL=1
//Have function sgemm_
BLAS_blas_WORKS:INTERNAL=1
//ADVANCED property for variable: BLAS_blis_LIBRARY
BLAS_blis_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_complib_sgimath_LIBRARY
BLAS_complib_sgimath_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_cxml_LIBRARY
BLAS_cxml_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_dxml_LIBRARY
BLAS_dxml_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_eml_LIBRARY
BLAS_eml_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_essl_LIBRARY
BLAS_essl_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_f77blas_LIBRARY
BLAS_f77blas_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_fjlapack_LIBRARY
BLAS_fjlapack_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_flexiblas_LIBRARY
BLAS_flexiblas_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_goto2_LIBRARY
BLAS_goto2_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_LIBRARY
BLAS_mkl_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_em64t_LIBRARY
BLAS_mkl_em64t_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_ia32_LIBRARY
BLAS_mkl_ia32_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_intel_LIBRARY
BLAS_mkl_intel_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_intel_lp64_LIBRARY
BLAS_mkl_intel_lp64_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_mkl_rt_LIBRARY
BLAS_mkl_rt_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_openblas_LIBRARY
BLAS_openblas_LIBRARY-ADVANCED:INTERNAL=1
//Have function sgemm_
BLAS_openblas_WORKS:INTERNAL=
//ADVANCED property for variable: BLAS_scs_LIBRARY
BLAS_scs_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_sgemm_LIBRARY
BLAS_sgemm_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_sunperf_LIBRARY
BLAS_sunperf_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: BLAS_vecLib_LIBRARY
BLAS_vecLib_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/hasan/VCP/buildtrees/lapack/x64-linux-dynamic-rel
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=25
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/snap/cmake/1216/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/snap/cmake/1216/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/snap/cmake/1216/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/snap/cmake/1216/bin/ccmake
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Ninja
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Test CMAKE_HAVE_LIBC_PTHREAD
CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/hasan/VCP/ports/lapack
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/snap/cmake/1216/share/cmake-3.25
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TOOLCHAIN_FILE
CMAKE_TOOLCHAIN_FILE-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding BLAS
FIND_PACKAGE_MESSAGE_DETAILS_BLAS:INTERNAL=[/usr/lib/x86_64-linux-gnu/libblas.so][v()]
//Details about finding Threads
FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
//ADVANCED property for variable: LAPACK_Accelerate_LIBRARY
LAPACK_Accelerate_LIBRARY-ADVANCED:INTERNAL=1
//Have function cheev_
LAPACK_WORKS:INTERNAL=
//ADVANCED property for variable: LAPACK_armpl_lp64_LIBRARY
LAPACK_armpl_lp64_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_flame_LIBRARY
LAPACK_flame_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_gfortran_LIBRARY
LAPACK_gfortran_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_goto2_LIBRARY
LAPACK_goto2_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_lapack_LIBRARY
LAPACK_lapack_LIBRARY-ADVANCED:INTERNAL=1
//Have function cheev_
LAPACK_lapack_WORKS:INTERNAL=
//Have function cheev_
LAPACK_lapack_m_gfortran_WORKS:INTERNAL=
//ADVANCED property for variable: LAPACK_m_LIBRARY
LAPACK_m_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_mkl_lapack_LIBRARY
LAPACK_mkl_lapack_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: LAPACK_openblas_LIBRARY
LAPACK_openblas_LIBRARY-ADVANCED:INTERNAL=1
//Have function cheev_
LAPACK_openblas_WORKS:INTERNAL=
//ADVANCED property for variable: LAPACK_vecLib_LIBRARY
LAPACK_vecLib_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: VCPKG_VERBOSE
VCPKG_VERBOSE-ADVANCED:INTERNAL=1
//Making sure VCPKG_MANIFEST_MODE doesn't change
Z_VCPKG_CHECK_MANIFEST_MODE:INTERNAL=ON
//linker supports push/pop state
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE

/home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-out.log
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using VCPKG FindLAPACK from package 'lapack-reference'
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- Found BLAS: /usr/lib/x86_64-linux-gnu/libblas.so
-- Looking for cheev_
-- Looking for cheev_ - not found
-- Looking for cheev_
-- Looking for cheev_ - not found
-- Looking for cheev_
-- Looking for cheev_ - not found
-- Looking for cheev_
-- Looking for cheev_ - not found
-- Configuring incomplete, errors occurred!
See also "/home/hasan/VCP/buildtrees/lapack/x64-linux-dynamic-rel/CMakeFiles/CMakeOutput.log".
See also "/home/hasan/VCP/buildtrees/lapack/x64-linux-dynamic-rel/CMakeFiles/CMakeError.log".

/home/hasan/VCP/buildtrees/lapack/config-x64-linux-dynamic-rel-err.log
CMake Error at /home/hasan/VCP/installed/x64-linux-dynamic/share/lapack/FindLAPACK.cmake:522 (message):
  A required library with LAPACK API not found.  Please specify library
  location.
Call Stack (most recent call first):
  /home/hasan/VCP/installed/x64-linux-dynamic/share/lapack/vcpkg-cmake-wrapper.cmake:9 (_find_package)
  /home/hasan/VCP/scripts/buildsystems/vcpkg.cmake:797 (include)
  CMakeLists.txt:4 (find_package)

Additional context

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue.


How to automatically generate schema.yaml?

Hi! Your work GraphFuzz is impressive, it is a very effective and promising method to test API functions.
The gfuzz could infer a schema from Doxygen xml by gfuzz schema infer doxygen_xml, output.
But how about the projects without a doxygen document?
Thanks for any reply!

Hi, the Doxygen extractor is very experimental currently. The way it works is it creates a template Doxyfile for a source directory and then it runs doxygen inside of docker. Currently we just use a simple Doxyfile template:
EXTRACT_ALL = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES

INPUT = {input}
RECURSIVE = true

GENERATE_XML = YES
XML_PROGRAMLISTING = NO
MACRO_EXPANSION = YES

GENERATE_HTML = NO
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO

where {input} gets replaced with the path to the source directory.
So this tool will work on projects that don't have an existing Doxyfile (since we build our own). For example, you can look at the ex_auto_cpp experiment

In general though, it's not possible to automatically extract every struct and method flawlessly unless you are working on a small, toy example like above. For instance, with a function like:
void handleRawData(void *)

it's really not possible to know how to handle that argument. Or if you have something like:
void setAlpha(float a) {
    assert(0 <= a < 1);
    ...
}

you can automatically fuzz this, but you will be wasting a lot of time hitting the assert.

During some of our experiments, I found a good approach was to use the doxygen extractor to generate a very large raw_schema.yaml that contained all the structs/enums/methods... Then I went through and copy-pasted the parts I wanted to test and made changes as necessary so the schema was correct.

Thanks for your quick reply!
I follow the guide and successfully generate the raw schema.
However, I have to install lxml package manually in the docker, otherwise the infer process could be wrong:
root@b3a740cc84e0:/workdir# gfuzz schema infer ./in/doxygen_output/xml ./in/auto_schema.yaml
[!] Could not parse doxygen output. Make sure there is an "index.xml" file in the target directory.
root@b3a740cc84e0:/workdir# pip3 install lxml
Collecting lxml
  Downloading https://files.pythonhosted.org/packages/fd/9c/d0bbb2ac23561738629cf6a04c660f721774905669b02bb764237c8bd48c/lxml-4.8.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (5.6MB)
    100% |################################| 5.6MB 229kB/s
Installing collected packages: lxml
Successfully installed lxml-4.8.0
root@b3a740cc84e0:/workdir# gfuzz schema infer ./in/doxygen_output/xml ./in/auto_schema.yaml
Parsing structs...: 100%|##############################################################################################################################################| 2/2 [00:00<00:00, 138.23it/s]
Parsing classes...: 0it [00:00, ?it/s]
Parsing files...: 100%|################################################################################################################################################| 4/4 [00:00<00:00, 434.98it/s]
[*] Generated a schema with 4 items.

Besides, the path in README of ex_auto_cpp is also wrong.

Hi, thanks for finding this issues! I've pushed a commit that should clarify the ex_auto_cpp README a bit more. I also added lxml as a dependency to gfuzz as that was missing and is required for gfuzz schema infer.
Currently gfuzz doxygen actually spawns a new docker container to run doxygen so you have to run it on your host machine (or start nesting docker images). So the intention is that you run the make_schema.sh script outside of the docker container (I've added some notes in the readme to explain this).
It would be nice to do the full series of commands gfuzz doxygen, gfuzz schema infer, gfuzz gen... inside the example docker image as well so that could be something to put on the todo list. Maybe a command line switch on gfuzz doxygen to select between spawning a new docker image and running doxygen locally...
Hopefully this helps answer your questions, let me know if you run into any other usage issues!


no output at all

Hey there,
I'm running core.net 2.0 and as log4net can't log to the AdoNetAppender I'm using your small module. Now when I make a config error it neatly tells me that it doesn't want to load (eg: if I make the appender type="MicroKnights.Logging.AdoNetAppender", so without the assemblyname it just tells me it doesn't exist). But now nothing, no output at all ,nor does anything show up in the database.
So I'm not sure anymore where to look/what to debug. Could you check out my (attached) config. to see if there's any error. And help me figure out how to debug this module?

It never actually made the connection.

Suggested change in your helper:
appender.ConnectionString = connectionString;
appender.ConnectionType = typeof(SqlConnection).AssemblyQualifiedName;
appender.ActivateOptions();

What was appender.ConnectionType ?
If ConnectionType is different than  SqlConnection provided by then SqlClient nuget, there must be another found within the assembly path? Do you have a mixed setup (.net core and .net Framework)?

I will have a look on that property, and its behavior.
It make sense to default to the provided SqlClient.

NuGet package MicroKnights.Log4NetAdoNetAppender -Version 1.0.2 uploaded, and available within minutes/hours

Now defaults to provided SqlClient


[Bug] [connector-jdbc] OracleCatalog's SELECT_COLUMNS_SQL_TEMPLATE have some COLUMN_LENGTH issue when the column‘s type is NVARCHAR2 or NCHAR

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
OracleCatalog's sql statement of SELECT_COLUMNS_SQL_TEMPLATE have some issue when the column‘s type is NVARCHAR2 or NCHAR, the length of column should get the cols.char_col_decl_length.

so the sql statement of SELECT_COLUMNS_SQL_TEMPLATE show be
SELECT
    cols.COLUMN_NAME,
    CASE
        WHEN cols.data_type LIKE 'INTERVAL%%' THEN 'INTERVAL'
        ELSE REGEXP_SUBSTR(cols.data_type, '^[^(]+')
    END as TYPE_NAME,
    cols.data_type ||
        CASE
            WHEN cols.data_type IN ('VARCHAR2', 'CHAR') THEN '(' || cols.data_length || ')'
            WHEN cols.data_type IN ('NVARCHAR2','NCHAR') THEN '(' || cols.char_col_decl_length || ')'
            WHEN cols.data_type IN ('NUMBER') AND cols.data_precision IS NOT NULL AND cols.data_scale IS NOT NULL THEN '(' || cols.data_precision || ', ' || cols.data_scale || ')'
            WHEN cols.data_type IN ('NUMBER') AND cols.data_precision IS NOT NULL AND cols.data_scale IS NULL THEN '(' || cols.data_precision || ')'
            WHEN cols.data_type IN ('RAW') THEN '(' || cols.data_length || ')'
        END AS FULL_TYPE_NAME,
    CASE
      WHEN cols.data_type IN ('NVARCHAR2','NCHAR') THEN cols.char_col_decl_length
      ELSE  cols.data_length
    END AS COLUMN_LENGTH,
    cols.data_precision AS COLUMN_PRECISION,
    cols.data_scale AS COLUMN_SCALE,
    com.comments AS COLUMN_COMMENT,
    cols.data_default AS DEFAULT_VALUE,
    CASE cols.nullable WHEN 'N' THEN 'NO' ELSE 'YES' END AS IS_NULLABLE
FROM
    all_tab_columns cols
LEFT JOIN
    all_col_comments com ON cols.table_name = com.table_name AND cols.column_name = com.column_name AND cols.owner = com.owner
WHERE
    cols.owner = '%s'
    AND cols.table_name = '%s'
ORDER BY
    cols.column_id

SeaTunnel Version
V2.3.3
SeaTunnel Config
none

Running Command
none

Error Exception
none

Zeta or Flink or Spark Version
No response
Java or Scala Version
No response
Screenshots
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@LoverAndrew hi, are you willing to contribute a pr to fix it?

@LoverAndrew hi, are you willing to contribute a pr to fix it?

Certainly, but I don't know the process of contribute. Could you guide me the process?

Chinese document reference https://mp.weixin.qq.com/s/wOVxNjg-tSQeenUY5Sd7kQ

Chinese document reference https://mp.weixin.qq.com/s/wOVxNjg-tSQeenUY5Sd7kQ

@LoverAndrew hi, are you willing to contribute a pr to fix it?

Certainly, but I don't know the process of contribute. Could you guide me the process?
Of course, I'd be honored
Chinese document reference https://mp.weixin.qq.com/s/wOVxNjg-tSQeenUY5Sd7kQ,
English document reference https://seatunnel.incubator.apache.org/community/contribution_guide/contribute#preparing-to-contribute-code-changes
Of course, you can always consult me if you have anything unclear

SqlServerCatalog's SELECT_COLUMNS_SQL_TEMPLATE has the same issue.

Before sql statement is

SELECT
    a.attname AS column_name,
t.typname as type_name,
    CASE
        WHEN t.typname = 'varchar' THEN t.typname || '(' || (a.atttypmod - 4) || ')'
        WHEN t.typname = 'bpchar' THEN 'char' || '(' || (a.atttypmod - 4) || ')'
        WHEN t.typname = 'numeric' OR t.typname = 'decimal' THEN t.typname || '(' || ((a.atttypmod - 4) >> 16) || ', ' || ((a.atttypmod - 4) & 65535) || ')'
        WHEN t.typname = 'bit' OR t.typname = 'bit varying' THEN t.typname || '(' || (a.atttypmod - 4) || ')'
        ELSE t.typname
    END AS full_type_name,
    CASE
        WHEN t.typname IN ('varchar', 'bpchar', 'bit', 'bit varying') THEN a.atttypmod - 4
        WHEN t.typname IN ('numeric', 'decimal') THEN (a.atttypmod - 4) >> 16
        ELSE NULL
    END AS column_length,
CASE
        WHEN t.typname IN ('numeric', 'decimal') THEN (a.atttypmod - 4) & 65535
        ELSE NULL
    END AS column_scale,
d.description AS column_comment,
pg_get_expr(ad.adbin, ad.adrelid) AS default_value,
CASE WHEN a.attnotnull THEN 'NO' ELSE 'YES' END AS is_nullable
FROM
    pg_class c
    JOIN pg_namespace n ON c.relnamespace = n.oid
    JOIN pg_attribute a ON a.attrelid = c.oid
    JOIN pg_type t ON a.atttypid = t.oid
    LEFT JOIN pg_description d ON c.oid = d.objoid AND a.attnum = d.objsubid
    LEFT JOIN pg_attrdef ad ON a.attnum = ad.adnum AND a.attrelid = ad.adrelid
WHERE
    n.nspname = 'public'
    AND c.relname = 'test_type_table'
    AND a.attnum > 0
ORDER BY
    a.attnum;

After sql statement is

SELECT
a.attname AS column_name,
isc.udt_name as type_name,
CASE
WHEN isc.udt_name = 'varchar' THEN isc.udt_name || '(' || (isc.character_maximum_length) || ')'
WHEN isc.udt_name = 'bpchar' THEN 'char' || '(' || (isc.character_maximum_length) || ')'
WHEN isc.udt_name = 'numeric' OR isc.udt_name = 'decimal' THEN isc.udt_name || '(' || (isc.numeric_precision) || ', ' || (isc.numeric_scale) || ')'
WHEN isc.udt_name = 'bit' OR isc.udt_name = 'bit varying' THEN isc.udt_name || '(' || (isc.character_maximum_length ) || ')'
ELSE isc.udt_name
END AS full_type_name,
CASE
WHEN isc.udt_name IN ('varchar', 'bpchar', 'bit', 'bit varying','text','json','') THEN isc.character_maximum_length
WHEN isc.udt_name IN ('time','timetz','timestampt','timestamptz','date') THEN isc.datetime_precision
ELSE isc.numeric_precision
END AS column_length,
isc.numeric_scale AS column_scale,
d.description AS column_comment,
pg_get_expr(ad.adbin, ad.adrelid) AS default_value,
CASE WHEN a.attnotnull THEN 'NO' ELSE 'YES' END AS is_nullable
FROM
information_schema.columns isc
LEFT JOIN pg_namespace n ON n.nspname = isc.table_schema
LEFT JOIN pg_class c ON isc.table_name = c.relname AND n.oid= c.relnamespace
LEFT JOIN pg_attribute a ON a.attrelid = c.oid AND a.attname = isc.column_name
LEFT JOIN pg_description d ON c.oid = d.objoid AND a.attnum = d.objsubid
LEFT JOIN pg_attrdef ad ON a.attnum = ad.adnum AND a.attrelid = ad.adrelid
WHERE
isc.table_schema = 'public'
AND c.relname = 'test_type_table'
AND a.attnum > 0
ORDER BY
a.attnum;


[Core] Add python conversion functions

Description
There is a need as a hybrid C++/Python host application author to convert types between an embedded python interpreter and a c++ context, as some hosts will want to do asset resolution in both languages, sharing the same configuration.
This adds two methods to python bridge, castToPyObject and castFromPyObject that facilitates this.
Prior, the way to do this was to do a pybind cast, which is what we do here behind the scenes, but by providing methods to raw CPython types, we eliminate the need to link against pybind for the consumer.
Closes #798

[x] I have updated the release notes.
[ ] I have updated all relevant user documentation.

Havn't review this myself quite yet, just putting this up as a draft to get a jump on the test. (I forgot there's an automatic reviewer assignment now.)


How to download Windows executable from the command line

For Mac and Linux, we provide curl and wget commands to download, unpack, and place the cockroach binary on the PATH.
For Windows, however, we have them click a link to download the executable.
We should document a way to do this from the command line for Windows as well. This would be friendly to Windows users wanting to operate the CockroachDB server. But it's even more important for Windows users of our built-in SQL client. In the CockroachCloud UI, we currently just link them to our docs to download the executable:

Based on input from @aaron-crl, curl is built into Windows 10 now, so the same command that works on mac or linux should work with minor path edits on Windows 10 machines. Confirmed by this Microsoft article.
curl https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip  | tar -xJ
@aaron-crl. does that look right?
Also, in the Windows install docs, we don't tell users to put the executable on the Windows PATH. Should we correct that as well?

The above command gave me some trouble on Windows 10 - this might be related to PIPE on windows. However downloading the zip file first and then extracting it worked fine. Something like this:
curl https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip -o cockroach-v20.2.8.windows-6.2-amd64.zip ; tar -xJ -f cockroach-v20.2.8.windows-6.2-amd64.zip

Someone with more Windows CLI foo can probably give you something better but the above should work.

Also, in the Windows install docs, we don't tell users to put the executable on the Windows PATH. Should we correct that as well?

We probably should correct this to standardize the experience as much as possible.

windows uses a zip file; so using tar -xJ is incorrect in that case.
@jseldess I hadn't caught that we use .zip and not .tgz for windows. This changes the situation a bit. The proper command to extract zip files is unzip, not tar.

fwiw: tar also supports zip files with the z flag. I just tested the below on a windows box and got the exe.
curl -O https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip | tar -xzJ

z and J are contradictory. The fact you are not getting an error tells me that this tar command is no tar at all and ignores its args, probably some powershell trickery.
I am of the opinion we should not rely on trickery and recommend the proper commands.

Apologies. I didn't test cleanly and mistook an old file for successful extraction. User error on my part for the args.
You are correct, it does emit an error with both args specified namely: tar: Can't specify both -J and -z
The version of tar on my windows 10 machine lists itself as bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f-ipp
tar -xf cockroach-v20.2.8.windows-6.2-amd64.zip works flawlessly.
I have tested and confirmed a slightly modified version of the above command on a currently patched Windows 10 machine:
curl https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip -o cockroach-v20.2.8.windows-6.2-amd64.zip && tar -xf cockroach-v20.2.8.windows-6.2-amd64.zip

ok so it so happens that bsdtar has a compile-time option to auto-recognize zip files, which is why this appears to work.
FWIW, GNU tar does not have such an option. If the user is mixing-and-matching their tar from multiple sources, this is going to fail sometimes.
OTOH, the "unzip" command is bound to always succeed.

OK, so if we go with zip, what would the exact command be?
curl https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip  | unzip

Or something else?

curl ...; unzip ... (with semicolon)

Thanks, @knz. On macOS at least, it looks like I need to use curl -O:
curl -O https://binaries.cockroachdb.com/cockroach-v20.2.8.windows-6.2-amd64.zip ; unzip cockroach-v20.2.8.windows-6.2-amd64.zip

Look right? Should we use curl -O for the linux and macOS curl commands as well, even if not technical necessary?

yep, that sounds right. I had forgotten about -O.

Awesome. And one final question: What about adding the executable to the PATH on Windows? Is there an equivalent to cp -i cockroach-v21.1.0.darwin-10.9-amd64/cockroach /usr/local/bin/ on macOS/Linux? I know we will be looking into find a different location in the user's home directory, but for now, it'd be nice to offer the equivalent approach for all 3 OSs.

I'd say
mkdir -p %programfiles%/Cockroach
cp -i yourfile %programfiles%/Cockroach

There's no common shared location that's guaranteed to be in the user's PATH env var.
A windows expert would need to tell.

Moved to Jira: https://cockroachlabs.atlassian.net/browse/CC-4384


⚠ Bofrost.com has degraded performance

In 2480e53, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 1032 ms

Resolved: Bofrost.com performance has improved in eb0aefb after 6 minutes.


Values in the DHT must be of specific types

Values in the DHT must be hashable because of:
https://github.com/bmuller/kademlia/blob/master/kademlia/crawling.py#L114
Values in the DHT must also be of types: bool, int, float, str, bytes, because of this function kademlia calls
https://github.com/vsergeev/u-msgpack-python/blob/master/umsgpack.py#L473.

@bretttjohnson1 Are you saying this is a bug?

It should be specified that this requirement exists somewhere. When setting values in the DHT to lists, it error-ed upon running the first function above. Then when correcting it to a hash-able type of frozenset, it error-ed in the second function mentioned. This should not be a 4 hour hunt for this behavior. It should be explicitly defined


Feature Request: Add Authentication Using Google/GitHub etc

Issue: #89
We would like to implement Social Authentication in the CryptoTracker application, allowing users to sign up and log in using their existing Google or GitHub accounts (and potentially other providers). This will enhance user experience by simplifying the registration and login processes.
Screenshots:
before authenticating:

signup page:

login page:

after authenticating:

Please label under GSSoC'24 ext and hacktoberfest labels

Issue: #89
We would like to implement Social Authentication in the CryptoTracker application, allowing users to sign up and log in using their existing Google or GitHub accounts (and potentially other providers). This will enhance user experience by simplifying the registration and login processes.
Screenshots: before authenticating:
signup page:
login page:
after authenticating:
Please label under GSSoC'24 ext and hacktoberfest labels

You did a great job 💐♥


Add rule for preventing multiple lines in conditionals

Rule prevents multiple lines in the parenthesis section of
if, while, do while, for, for in statements.

@jthomerson Reviewed. This looks good.

@jimjenkins5 just two little notes about grammatical issues and then I can merge. Thanks!

Fixed the comment.


Integration with Cmder

Any way I can integrate this with Cmder (https://cmder.net/) ?

I'm pretty sure I've been using it using Cmder in the past (I don't use Windows any longer).
I think it should work when you register post-git-alias in your PS profile and make PS the default setup task in Cmder:
https://gist.github.com/jchandra74/5b0c94385175c7a8d1cb39bc5157365e#powershell-as-default-task-setup


[Bug]: Basic page layout example and code snippit not showing up

Describe the bug

When viewing the basic page layout page on the documentation site, I noticed that the example and code in the "snippet" area are missing

Provide Code
No response
To Reproduce
Go to this page
Relevant console log output
No response
What browsers are you seeing the problem on?
Chrome
Additional context
Chrome Version 120.0.6099.109
Expected content:

Closing as this was fixed


Spring Cloud Gateway is not sending correct operation id

When using Spring Cloud Gateway with Sleuth, operation are named as HTTP method name without path. Expect it to be something like get /api/search, instead only getting get as operation name. See screenshot.

Sample in this repo: https://github.com/asaikali/vere-copia

I see exactly the same behavior, it's a bit bad due to the fact that some applications rely on this Operation Name to define the name of a Trace. Jaeger for example does the same.

Please upgrade to Micrometer Tracing. Spring Cloud Sleuth is feature complete and out of OSS support.


Simplify demo and walkthrough scripts, replace references to apg with registry rpc calls

This fixes the demos and walkthrough scripts to use registry rpc instead of apg. Demo scripts are reduced to API uploading and information management (compute and related calls are removed).

@seaneganx FYI


Add Litherslink

Add litherslink via lither.js, along with additional rules, fail codes, and example puzzle.
There is room for a couple of visual improvements that don't affect functionality but could aid solvers:

One error that can come up is that a grid vertex has no line/edge connected to it. This is properly caught by error checking, but doesn't have any unique visual element associated with it
The loop checking function highlights the entire tree that contains a loop if one is found. It would be cleaner to highlight just the loop. src/variety/Answer.js has a searchloop function that does this, but fails due to the cells in linegraph.path having no sidecell definition (or sideobj definition in general). Fixing feels a bit beyond my current understanding of the overall code structure

Changes made. I tried to poke around, but implementing vertex highlighting and updating searchloop are definitely both beyond my current understanding of the code structure


Return correct value for getBalance

Pending bundles with remainder txs should be considered
This could be done by filtering pending bundles for the remainder and internal transfer tag and add the values to the balance
If an address receives tokens after the maxPaymentTime they will also be displayed, but will be not with custom indexes available if payouts were sent in between and therefore the startIndex was increased. We could just use the startIndex also for getBalance, but then some funds could get lost because the owner doesn't know that there could still be something

https://github.com/iota-pay/iota-payment-module/commit/2fe03f3e5913c8f05863ac8b67532a83213944c2

If someone has balance, but not available for payouts (which is very rare) he can use a custom startIndex to move the funds


DSA 2.1.12 longest palindromic substring

Description
Description
Explain and implement Longest Palindromic Substring.
Task

[ ] Audio
[ ] Video
[ ] Documentation

Note

While requesting the issue to be assigned, please mention your NAME & BATCH NUMBER.
Mention the type of contribution you want to make.
Kindly refer to the Issue Guidelines.
Do not use the assign command for this issue. Follow the above procedure.
In case you see that the issue has already been assigned, try to request a different task within the same issue.
Changes should be made inside the DSA/directory & DSA branch.
Name of the file should be the same as the issue.
This issue is only for 'GWOC' contributors of the 'DSA' Domain.

Domain
DSA
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Domain
DSA
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

I am Eswari Priya Repaka and i belong to dsa batch2. I'm interested in working on this issue. Kindly assign it to me @vikhyatsingh123

/assign

/assign

/assign

I would love to work on this issue .
Can u please assign to me
Name-Tanvi Deshmukh
Batch-6

I would love to work on this issue .
Can u please assign to me
Name-Tanvi Deshmukh
Batch-6
Type Documentation

I am Parth Sharma and I belong to dsa batch 5. I'm interested in working on this issue via audio. Kindly assign it to me @vikhyatsingh123

@vikhyatsingh123 sir ,I had seen that @goelesha mam had already created this issue #3080 . Should I continue to work on it? Pls let me know


Corrected grammar errors in README.

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've been mindful about doing atomic commits, adding documentation to my changes, not refactoring too much.
[x] I've a descriptive title and added any useful information for the reviewer. Where appropriate, I've attached a screenshot and/or screencast (gif preferably).
[ ] I've written tests to cover the new code and functionality included in this PR.
[x] I've read, agree to, and signed the Contributor License Agreement (CLA).

PR Summary
Corrected grammar errors in README.
Related Issues
Does not apply.
Test strategy
Does not apply.

Coverage remained the same at 29.268% when pulling 0933c1f143af97368e861e22a84f79ab5a853be0 on smalakys:master into f9f2fd5684c655fc83de56f02f9481aaa74998d9 on slackhq:master.

Coverage remained the same at 29.268% when pulling 0933c1f143af97368e861e22a84f79ab5a853be0 on smalakys:master into f9f2fd5684c655fc83de56f02f9481aaa74998d9 on slackhq:master.

I had already signed the CLA prior to submitting this PR. I don't know why it doesn't show up, so I signed it again just now.

From: Roach <notifications<EMAIL_ADDRESS>Sent: Friday, June 9, 2017 03:04
Subject: Re: [slackapi/python-rtmbot] Corrected grammar errors in README. (#80)
To: slackapi/python-rtmbot <python-rtmbot<EMAIL_ADDRESS>Cc: smalakys <smalakys<EMAIL_ADDRESS>Author <author<EMAIL_ADDRESS>@Roach approved this pull request.
Thanks for fixing these! If you sign the CLA linked above, I'll merge these tonight 👍
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/slackapi/python-rtmbot/pull/80#pullrequestreview-43043308, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGVzRR8M2gxwbA2XMTaxkeDXgF0TP9MOks5sCIwXgaJpZM4NwIgj.

Merging this now, thanks @smalakys 🎉


Update to latest wasmd

[x] Update contracts to v0.12.0-alpha1 (moved to #219)
[x] Update wasmd to 0.23

Looks blocked on https://github.com/CosmWasm/wasmd/issues/738


how to do authentication with JWT token in Java spring with identityServer4. Also how to get the claim from IdentityServer4

I am using IdentityServer4 to do the authentication and authorization. The frontend will receive the access token after signin. And will establish a websocket(Stomp) connection. I want to do the authentication at backend before the connection. How do I do it? I dont find any example explain how the identityServer4 interact with java spring.

This is a question. I dont know how to add the label tho

example   https://github.com/Rainy99/springboot-ids4

https://github.com/IdentityServer/IdentityServer4/issues/2890

@langhaoabcd Thanks, that is the right way to do it


fetching scipy-1.2.0 in my CI server always results empty content.

First let's look at the checksum for empty content:
$ : | sha256sum
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

My project was always unable to build in CI environment, due to checksum-mismatch of scipy==1.2.0:
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
    scipy==1.2.0 from https://files.pythonhosted.org/packages/45/d1/7c2b33a5daee3d67752d043fe7e1476c4465788b0b6e59367fd71fdf684a/scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl#sha256=7dc4002f0a0a688774ef04878afe769ecd1ac21fe9b4b1d7125e2cf16170afd3 (from -r requirements.txt (line 119)):
        Expected sha256 7dc4002f0a0a688774ef04878afe769ecd1ac21fe9b4b1d7125e2cf16170afd3
             Got        e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The command '/bin/sh -c pip install --no-cache-dir -r requirements.txt' returned a non-zero code: 1
time="2019-03-22T08:09:59Z" level=fatal msg="exit status 1"

After hundreds of struggles, I found e3b0c44298... is the just a checksum value of empty content. Then I added a test line in my Dockerfile:
RUN bash -c 'curl -v https://files.pythonhosted.org/packages/45/d1/7c2b33a5daee3d67752d043fe7e1476c4465788b0b6e59367fd71fdf684a/scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl | sha256sum'

And below is the corresponding output:
Step 6/22 : RUN bash -c 'curl -v https://files.pythonhosted.org/packages/45/d1/7c2b33a5daee3d67752d043fe7e1476c4465788b0b6e59367fd71fdf684a/scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl | sha256sum'
 ---> Running in b85de60c0010
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to files.pythonhosted.org (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [102 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [4222 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [333 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Fastly, Inc; CN=r.ssl.fastly.net
*  start date: Sep  4 19:42:10 2018 GMT
*  expire date: Apr 14 16:28:35 2019 GMT
*  subjectAltName: host "files.pythonhosted.org" matched cert's "*.pythonhosted.org"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign CloudSSL CA - SHA256 - G3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55a3ef5d7e80)
} [5 bytes data]
> GET /packages/45/d1/7c2b33a5daee3d67752d043fe7e1476c4465788b0b6e59367fd71fdf684a/scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl HTTP/1.1
> Host: files.pythonhosted.org
> User-Agent: curl/7.52.1
> Accept: */*
>
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
} [5 bytes data]
< HTTP/2 200
< x-amz-id-2: K8y1onZtWY+0fPmpqq1w4NPjdcqtvGUlYXR2MioM73/yDZZLeEmRG3JTPIkxR5cb1E2CoHrcO6g=
< x-amz-request-id: 52EF5F42E52608D2
< last-modified: Tue, 18 Dec 2018 03:10:59 GMT
< etag: "8784babd1c7248db60e685111fbba709-4"
< x-amz-version-id: JiZV4U2.UhWfAjBt8NSsFNKSUYHGIz94
< content-type: binary/octet-stream
< server: AmazonS3
< cache-control: max-age=365000000, immutable, public
< accept-ranges: bytes
< date: Fri, 22 Mar 2019 08:08:23 GMT
< age: 1297533
< x-served-by: cache-sea1027-SEA, cache-dca17775-DCA
< x-cache: HIT, HIT
< x-cache-hits: 0, 1
< x-timer: S1553242103.061333,VS0,VE1
< strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-frame-options: deny
< x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
< x-permitted-cross-domain-policies: none
< x-robots-header: noindex
< content-length: 0
<
* Curl_http_done: called premature == 0

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host files.pythonhosted.org left intact
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

However I can fetch the right file content in my local dev machine.
So I guess some of pypi's cache server went wrong, and my CI server always hit the wrong cache server.

Is this still an issue? Sounds like you might have been hitting a bad POP for our CDN, which would make this a duplicate of #5561.

@di I've upgrade to scipy-1.2.1 to walk around this issue by manually change requirements.txt, though it's compiled from requirements.in via pip-compile.


Memoize more than one result

It would be great if memoizing all results of a function was possible, i.e. having a Map to look up previous results.

@DisDis take a look at this


Removed requirement to be registered to go to About page.

Just removed the 'isRegistered()' check before going to about.
This is for #3, in case you would like this feature.

I think you should comment on #3 itself. That way the issue can be closed. Now there are two issues regarding this. @btamayo

@rkrishnasanka I did comment there as well :)

Cool 😄 I was just saying so as to avoid duplication.
Sent from my iPhone

On Apr 8, 2016, at 1:31 PM, Bianca Tamayo<EMAIL_ADDRESS>wrote:
@rkrishnasanka I did comment there as well :)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Thanks. Incorporated in commit: 27f6354f41cd2997610e79e2a41ded61f2c3fa91


Out dated

SCreens and instructions no longer match the portal process

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

ID: 2eeeaf10-1280-fb39-7365-bd626d719d72
Version Independent ID: 66d4d86f-bc64-6f24-a55f-1f68c801d98e
Content: Copy data from SQL Server to Blob storage using Azure portal - Azure Data Factory
Content Source: articles/data-factory/tutorial-hybrid-copy-portal.md
Service: data-factory
GitHub Login: @nabhishek
Microsoft Alias: abnarain

@lywyn Thanks for bringing this to our notice. I am assigning the issue to the content owner to investigate and update as appropriate.
@nabhishek Can you please take a look at this?

Thanks for the feedback! This article has been refreshed to follow the latest UI. We will now proceed to close this thread.
(Please open a new issue if you have follow up questions.)
#please-close


[Relay, Topi] [TF, MXNet]Unravel Index operator

Adds support for unravel_index op.
NumPy Reference:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.unravel_index.html
Added support for Tensorflow and MXNet frontends.

cc: @kevinthesun, @jwfromm, @masahi  Please help in reviewing.

Thanks @maheshambule @jwfromm

Thanks @jwfromm, @masahi for review and comments.


Use samplesPending rather than integral

The integral accumulator in the remote write sharding code is just a
second way of keeping track of the number of samples pending. Remove
integralAccumulator and use the samplesPending value we already
calculate to calculate the number of shards.
This has the added benefit of fixing a bug where the integralAccumulator
was not being initialized correctly due to not taking into account the
number of ticks being counted, causing the integralAccumulator initial
value to be off by an order of magnitude in some cases.
By using 0.2 / shardUpdateDuration as our gain, the gain is the same as it used to be where we did a sum of 0.2 * rate/sec every shardUpdateDuration.
Fixes point 2 of https://github.com/prometheus/prometheus/issues/6333
cc: @cstyan

@cstyan I added the first stab at a test. I am probably going to do some refactoring to make testing this easier such as removing the dependency on metrics and/or breaking the shard calculation out of the queue manager. However, I want to see if the general approach seems ok first. Does the test make sense as it stands? 2 minute startup, then start sending samples, and make sure our shard count never drops too low.

The test doesn't seem right to me. I think starting up with pending samples and then faking sending the samples is right, but we should be checking the pending samples I think. The issue was that we were never catching up. So if the number of pending samples is similar at the end as it was was at the beginning then the test should fail.
Hacking around a bit, doesn't seem like a test like that will be clean without some refactoring. Ping me when you have time to talk about this.

I agree that pending samples is better, I changed the test some in an additional commit with message "Keep track of pending samples directly rather than approximated by time back" to keep track of the number of samples written. As the message says, I also changed around ewma to keep track of a total in addition to the weighted average. Let me know what you think.

Turns out we cannot use the keep a count method since samplesIn will exist from the beginning of the server, and if you add another queue the values will be very very wrong. Current state of this PR:

First commit contains a failing test
Second commit fixes the test by using the estimated pending samples from the delay rather than trying to incorrectly calculate the pending samples on startup.
Third commit is an optional improvement to not shard down while catching up. Happy to break this to a separate PR, but it is pretty simple. Test shows faster catchup, but will still pass with or without this.


Added -c/--cluster option for specifying existing KIND cluster in KND…

…P installation.

@ca7alindev Please resolve conflict.


Please add a warning about EFS provisioned throughput costs

I blindly copied/pasted the code from https://github.com/aws-samples/lambda-efs-deep-learning-inference/blob/master/cdk/index.ts without checking how EFS pricing works and checked my AWS bill 2 days later to discover a $1000 USD bill from EFS provisioned throughput. Please change your code sample to use something more reasonable or leave a big warning comment.

Hi, thanks for sharing your experience. Although the documentation was mentioning to destroy the resources after running the example, we have reduced EFS provisioned throughput (with a comment mentioning that has been kept low intentionally) to avoid this happening by chance again.


How to leave only one remote user? (v3.0)

Hi,
could i ask what is the preferred way to leave only one user that i previously connected to with connection.join(remoteUserId)? The connection.leave() has no parameters, it disconnects from all connected remote users i assume. It is for RTCMultiConnection v3.x.

Here is a workaround:
var socket = connection.getSocket();
socket.on('custom-message', function(data) {
    if (data.remoteUserId !== connection.userid) return;

    // room owner asked to leave his room
    if (data.leaveMyRoom === true) {
        connection.leave();
    }
});

document.getElementById('eject-a-user').onclick = function() {
    var userToEject = connection.getAllParticipants()[0]; // or "prompt()"
    socket.emit('custom-message', {
        remoteUserId: userToEject,
        leaveMyRoom: true
    });
};

Thanks for the prompt answer! Ok, so i basically trigger the remote user to run connection.leave() in his browser. Th problem, if it is a multi-room app, i kick him off from also other rooms he may connected to, am i correct?

Assuming that user u-001 connects single room only.
var socket = connection.getSocket();
socket.on('custom-message', function(data) {
    if (data.remoteUserId !== connection.userid) return;
    if (data.roomid !== connection.roomid) return;

    // room owner asked to leave his room
    if (data.leaveMyRoom === true) {
        connection.leave();
    }
});

document.getElementById('eject-a-user').onclick = function() {
    var userToEject = connection.getAllParticipants()[0]; // or "prompt()"
    socket.emit('custom-message', {
        roomid: connection.roomid,
        remoteUserId: userToEject,
        leaveMyRoom: true
    });
};

document.getElementById('join-room').onclick = function() {
    connection.roomid = 'xyz';
    connection.join(connection.roomid);
};

document.getElementById('open-room').onclick = function() {
    connection.roomid = 'xyz';
    connection.open(connection.roomid);
};

Above snippet will fail if single user is connected to multiple rooms.
As a workaround, you can use multiple parallel RTCMultiConnection objects where each object connects to unique room. In that case, above snippet will work.
var connection1 = new RTCMultiConnection();
var connection2 = new RTCMultiConnection();

connection1.userid = 'user-id-1'; // MUST NOT MATCH below
connection2.userid = 'user-id-2'; // MUST NOT MATCH above

Thx, the multiple RTCMultiConnection objects can be a workaround.
Do you think would it be possible to implement the connection.leave() with an optional remoteUserId parameter in 3.x? I feel it would be a useful feature request.
Thanks again!


Bring Autogen Agent implementations!!

Why not too take some code from LittleLittleCloud and implement some of the Autogen abstractions? ;)
PR for the Autogen .NET implementation: https://github.com/microsoft/autogen/pull/924/files
I don't like the handling of multi-model but if we do this first and delegate anything on the models to the kernel there we go... we can start bringing in the ConversableAgent, and all the others, including the super cool implementation of the advanced analysis (self coding skill) implemented with dotnetinteractive and source generators :)
The plan:

We got those abstractions working on this codebase.
2, We bring them to the PR in SK.
We bring them into Autogen (once PR of .NET is approved).

@joslat what functional differences do you see between the AutoGen ConversableAgent and the current implementation?

let me review that and get back to you...

Please see #18
I provided a same kind of feature provided by Auto-gen but leveraging on Assistants APIs.
I have 2 agents:

Assistant Agent : He writes python code to solve a problem
CodeIntepreter: He execute the code provided by the assistant in a sandbox (the sandbox is created by docker, and removed once the execution completed).

I have only 1 specialized plugin for the code execution (which interop Docker), the others are simply prompted assistants...

As we saw, since AutoGen from MS doesn't rely in SK, it's hard to map this approach easily?
Then I realize 2 assistants that works together to provide same kind of feature.
See https://github.com/kbeaugrand/SemanticKernel.Assistants?tab=readme-ov-file#autogen to get more info about how to use it.


Getting all comments?

Hello,
Thanks for the amazing work ! One step further for me would be to try and get all comments for each post. Would you know how to do this ? It seems hard because it's not only scrolling down but rather finding how to click the "+" button at the bottom of the comments...
Thanks for the help !
Vincent

Hi, it's actually doable, but it would take much time if you try to fetch many posts with all comments.

https://github.com/huaying/instagram-crawler/issues/43

i see ; it would be super interesting though for small accounts. Alternatively, I am trying to get the number of comments for each post ; the information is not available in the posts' pages but is avaialble in the main page. Trying to see how I can get it...


waitall() operation on benchmark testing

I just tried to do some benchmarks about different convnets on single and multi-GPUs.
Thus, I followed soumith's benchmark framework on mxnet and modified it to support multi-GPUs.
However, I got the result of the 4 gpus is slower than that of a single gpu.
For example, the average mini-batches time of vgg on my machine is like below:

1 GPU: 911 ms
4 GPUs: 1110 ms

I also set the kv_store to 'local_allreduce_device'
Now I am not sure if this result is the effect of waitall()?
Or does anyone know how I can do benchmark on mxnet much better? Thanks!

What is your mini-batch? For example, if single gpu mini-batch is 32, for 4 gpus, you need set batch size to 128

Yes, my mini-batch size is 32.  And I also feed each GPU with 32 min-batch size.  So I think the setting is same as you said.

It's expected to be a little slower since you have communication cost

This issue is closed due to lack of activity in the last 90 days. Feel free to reopen if this is still an active issue. Thanks!


Create greetings.yaml

Added For issue #49

Could you please add labels to this considering its technicality?


Database transaction

Is your feature request related to a problem? Please describe.
Does RisingWave support Database transaction? For example: READ UNCOMMITTED, READ COMMITTED.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
I am currently using an HTAP database that does not have stream processing capabilities. I am looking for a database that has stream processing capabilities and can cover my original business scenarios.

@liurenjie1024 What are the considerations for the future, and are there any plans to support transaction isolation?

I am currently using an HTAP database that does not have stream processing capabilities. I am looking for a database that has stream processing capabilities and can cover my original business scenarios.

@ChenpiDog Thanks for your interest! However, RisingWave is not designed to be a substitute of HTAP databases. I would recommend using RisingWave as the downsteram of your primary database to run streaming processing.


which current IDEs support delve ?

Are there any IDEs out there that support delve go debugger ?

You can use VS Code to debugging Go code.
More detail here: https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code

All of them support Delve, see https://github.com/derekparker/delve/blob/master/Documentation/EditorIntegration.md


Remove refresh from server path and refresh from network call

AB#5118
Remove "refresh from server" logic. We are making this PR into next instead of main as we want to wait a bit before we commit to removing "refresh from server" logic. Instead of refreshing we are closing the container and restarting. More details here: https://github.com/microsoft/FluidFramework/pull/15140
This requires updating the summarizerNode logic and containerRuntime logic. Work to move when we decide to close the container sits in AB#5152

Can we discuss the strategy of merging into next? It's not free - we have other Summarizer refactoring work planned for the semester, and if we have to deal with merging with this every time, it will be a real drag.
Alternatives - Just wait until we're confident, or if we're eager to start coding now, put it in a side branch until we're ready - that way the burden of merging with main doesn't come as a tax to the whole team as we work in this code.

Can we discuss the strategy of merging into next? It's not free - we have other Summarizer refactoring work planned for the semester, and if we have to deal with merging with this every time, it will be a real drag.
Alternatives - Just wait until we're confident, or if we're eager to start coding now, put it in a side branch until we're ready - that way the burden of merging with main doesn't come as a tax to the whole team as we work in this code.

Changed to main. Let's wait until 6.0 is cut and merge the changes into 6.1


shape() drops entire record when a single field fails to cast

This issue was first floated by a community user on a public Slack thread.
The user is attempting to shape() input data. Many of their fields are string type and expected to hold IP addresses, but sometimes these fields might lack a value and instead contain an empty string "" or single space string " ". It was the user's expectation that shape() would turn these into null values, but instead when these values are encountered the entire record is currently dropped, e.g.:
$ zq -version
Version: v1.2.0-29-g2d52400f

$ echo '{"MyNum": "12","MyIp": ""}' | zq -z 'shape(this, <{MyNum:int64,MyIp:ip}>)' -
error("cannot cast \"\" to type ip")

As an experiment, I fiddled with the conditional logic to show that it's possible to work around this as long as the field can be named, e.g.:
$ echo '{"MyNum": "12","MyIp": ""} {"MyNum": "34"} {"MyNum": "56", MyIp: null} {"MyNum": "78","MyIp": "<IP_ADDRESS>"}' | zq -z 'MyIp:=is(ip(MyIp),<ip>) ? MyIp:null | shape(this, <{MyNum:int64,MyIp:ip}>)' -
{MyNum:12,MyIp:null(ip)}
{MyNum:34,MyIp:null(ip)}
{MyNum:56,MyIp:null(ip)}
{MyNum:78,MyIp:<IP_ADDRESS>}

Seeing this, a few ways forward have been discussed, the first two of which were confirmed as acceptable by the user.

A way to apply the conditional workaround above across all string fields without  having to spell out each one. They expect to have about 12 fields that need this treatment, so the need to create/maintain a long list of specific field names does indeed seem like a burden.

Some way to convert each "" or " " value that shows up to null, e.g., by making shape() tolerant of this. We discussed this as a team and recognized this might be the fastest way forward. That said, it was pointed out that the technically pure thing to do would probably be to convert them to the value <IP_ADDRESS>. But since this isn't what this user expected, it'd probably not be our first approach.

Don't drop the entire record. For instance, perhaps just the field that failed the cast could be turned into an error value, and a way to turn that error into a null if desired.

There's surely other possibilities, and they may be further debated in this issue. Overall this was a reminder that shape() is one of the bits of older code that hasn't been touched in a while and might be due for some redesign/extension. For instance, as opposed to hard-coding into shape() the treatment for values like "" or " ", perhaps there could be ways for users to provide a map config to shape() to flexibly suit each use case. In conclusion, if we end up doing something small/tactical, I'll plan to spawn another issue to remind us to circle back and design the more complete solution.

The fixes in #4067 and #4069 addressed #2710, in so doing addressed this issue as well, since shape() no longer drops the entire record when a single field fails to cast. For instance, with Zed commit b538e43:
$ zq -version
Version: v1.2.0-42-gb538e431

$ echo '{"MyNum": "12","MyIp": ""} {"MyNum": "34","MyIp": " "}' | zq -z 'shape(this, <{MyNum:int64,MyIp:ip}>)' -
{MyNum:12,MyIp:error("cannot cast \"\" to type ip")}
{MyNum:34,MyIp:error("cannot cast \" \" to type ip")}

I've circled back to the community user that originally spawned this issue and asked them to test and confirm that this is adequate for their needs.
Thanks @nwt!


Theoretical question about Importance-sampling (duplicate from previous repo)

Hello!
I just realised there is now a new repository so I thought I copy my question from there. (I don't know if the old one is still maintained or not, I hope this isn't a problem.)
Issue in previous repository

Thanks for the question. I very much agree with the answer from Cross Validated (many thanks to Xi'an), that you don't need to decompose the integrand and this is pretty much the standard approach of Monte Carlo integration (as long as you can find the proposal q, if not, just use a plain uniform distribution).

Thanks, I understand it now!


Roadmap for Scholar

This issue presents the roadmap of the most important functionalities that should be implemented in the first place.

[ ] Clustering Algorithms - We need to implement more clustering algorithms especially density-based e.g. DBSCAN
[ ] SVM
[x] K-Nearest Neighbors
[ ] More Classification and Regression Metrics
[ ] Numerical Solvers - They won't be functionalities in Scholar per se, but they will be exceptionally helpful. Using them, we could improve implementations of current functionalities like Logistic Regression, Ridge Regression and so on. We should start with LBFGS
[ ] KFold

The following may not be a good fit for Scholar at the moment based on the discussion below:

[ ] Decision Tree - After implementing this functionality we may consider implementing Random Forrest
[ ] Splitting Data - Splitting data sets into training and testing sets with optional stratification is a crucial functionality

@msluszniak On the note of solvers, it may be useful to look at the implementations in jaxopt! JAX also supports LBFGS out of the box I believe, but the XLA version is significantly slower than the SciPy version

@seanmor5 do you solvers should be in a separate library then? Or here is fine?
Some additional thoughts:

Splitting data may also be worth moving to Nx, since it will be shared by both Scholar and Axon. So I would postpone tackling this for now

We most likely cannot implement training of decision trees - this poses the question if this library should implement decision trees in the first place. However, the HummingBird project shows it can be efficient to compile trained decision trees into tensors

@msluszniak Is this priority list updated?

@msluszniak Is this priority list updated?

@tiagodavi I think that this list is still up to date.

Is anyone working on SVM? What about saving/loading fitted models? I've got both in my near-term roadmap at work and can jump on them if they're not being worked on already.

@msluszniak is working on SVM. :)


The proposed solution to problem #787

Related to the discussion #787
Should enable the developer using zod as a tool within Endpoint's handler without considering its possible parsing/validation errors as IO related ones, leading to the status code 500 instead of 400 in that case.
@TheWisestOne
The approach

I am making a new custom and exposed error EndpointHandlerZodError
I separate the input parsing from the handler execution.
Anything thrown inside the endpoint's handler is catched by a dedicated workflow
a. if it's a ZodError, then I transform it into that new EndpointHandlerZodError
b. otherwise a let it be thrown as is
Thus, your ResultHandler now can be sure that any ZodError is actually input validation error and can respond with 400. Others will have status 500.
a. Having new error type exposed, you can also implement additional handling and status codes for your needs.
b. I also expose OutputValidationError for the similar purposes.

So, I've kinda inverted the approach you made in #794, I believe it needs less changes and more customizable.
ToDo

needs more tests

@TheWisestOne , please review

EndpointHandlerError is a very generic name, and might be better renamed EndpointHandlerZodError or something like that to clarify that any other errors thrown by the endpoint don't get wrapped in this error class.

@TheWisestOne, yes, agree. That need to be fixed.

and in the catch block we would throw a new InputValidationError

there was a reason why I try to refrain from making a validation error — it will be a breaking change for existing custom ResultHandlers made by developers.
Since ZodError is for a long time works as a synonym for the I/O validation error.
But I also with your point on consistency.
Need to think on it a little bit.
Sorry that it takes a bit long.

and in the catch block we would throw a new InputValidationError

there was a reason why I tried to refrain from making another validation error — it would be a breaking change for existing custom ResultHandlers made by developers. Since ZodError is for a long time works as a synonym for the input validation error.
But I also agree with your point on consistency.
Need to think on it a little bit. Sorry that it takes a bit long.

ah, an interesting point. One thing to note is that my attempt at this fix (https://github.com/RobinTail/express-zod-api/pull/794) actually is non-breaking for people using an instanceof ZodError check in their ResultHandler.
This is because:
    throw createHttpError(400, makeErrorFromAnything(e)); still creates an error that is an instance of a ZodError if e was a zod error. I still see some of the benifits of your approach, but just wanted to point out that we might be able to do something non-breaking for existing ResultHandlers

I'm going to tackle this problem once again keeping in mind that the breaking change is acceptable, since I'm going to make v9 with another one.

I wanna go with the InputValidationError, for of consistency.

I wanna leave the utilization of createHttpError for the developer's decision on the final implementation and customizations.

OK. Now I'm happy with it.
I hope it will also fulfills your needs, @TheWisestOne
Anyway, I tested that throwing ZodError inside the Endpoint is not considered as IO validation issue.
So you could use zod for your database validations.


Update events.rst

Hi! This is a great fix. I'll go ahead and merge this. Thank you for your contributions!


WFLY-20086 Upgrade SmallRye Fault Tolerance from 6.7.0 to 6.7.1

Resolves
https://issues.redhat.com/browse/WFLY-20086

Thanks @rhusar


Command Python: Select Interpreter resulted in an error: Cannot destructure property 'filename' of 'r' as it is undefined

So basically I just ran into infinite Discovering Python Interpreters.

Then I tried almost everything, including deleting extensions, reloading VS Code, changing Python Path and etc. But finally when I just tried to select the interpreter I came across the error: Command Python: Select Interpreter resulted in an error: Cannot destructure property 'filename' of 'r' as it is undefined.

However I have PYTHONPATH defined and python3 works well in console.

Related on Stack Overflow: Command Python: Select Interpreter resulted in an error: Cannot destructure property 'filename' of 'r' as it is undefined

One more funny thing too

for searchability purposes, the transcription of the above screenshot is:

Command 'Python: Report Issue...' resulted in an error
The "path" argument must be of type string. Received undefined.

Note: Please transcribe images of text for searchability purposes :)

@TayJen Can you share the logs from Output > Python? and from Help > toggle developer tools

Output Python:
 2023-06-24 16:16:01.542 [info] Experiment 'pythonPromptNewFormatterExt' is active 2023-06-24 16:16:01.542 [info] Experiment 'pythonPromptNewToolsExt' is active 2023-06-24 16:16:01.615 [error] [   'Failed to activate a workspace, Class name = g, completed in 4ms, has a falsy return value, Arg 1: <Uri:d:\\ML\\ml_projects\\customer-churn_prediction\\hello_world.py>, Return Value: undefined',   [TypeError: Cannot destructure property 'filename' of 'r' as it is undefined.   	at _ (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:715063)   	at Array.map (<anonymous>)   	at E.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:717463)   	at _.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:495328)   	at y.autoselectInterpreterWithLocators (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:448887)   	at async y.autoSelectInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:446141)   	at async g.activateWorkspace (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:2133)] ] 2023-06-24 16:16:01.617 [error] Failure during activation. [TypeError: Cannot destructure property 'filename' of 'r' as it is undefined. 	at _ (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:715063) 	at Array.map (<anonymous>) 	at E.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:717463) 	at _.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:495328) 	at y.autoselectInterpreterWithLocators (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:448887) 	at async y.autoSelectInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:446141) 	at async g.activateWorkspace (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:2133)] 2023-06-24 16:16:01.617 [error] sendStartupTelemetry() failed. [TypeError: Cannot destructure property 'filename' of 'r' as it is undefined. 	at _ (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:715063) 	at Array.map (<anonymous>) 	at E.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:717463) 	at _.getInterpreters (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:495328) 	at y.autoselectInterpreterWithLocators (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:448887) 	at async y.autoSelectInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:446141) 	at async g.activateWorkspace (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:2133)] 2023-06-24 16:16:01.634 [error] Python Extension: interpreterManager.refresh [TypeError: The "path" argument must be of type string. Received undefined 	at new NodeError (node:internal/errors:387:5) 	at validateString (node:internal/validators:121:11) 	at Object.normalize (node:path:299:5) 	at h (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:668648) 	at t.arePathsSame (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:669783) 	at c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604093 	at Array.find (<anonymous>) 	at u.getLatestInfo (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604066) 	at f.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:606996) 	at n.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:583858) 	at E.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:716404) 	at _.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496104) 	at _.getActiveInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496029) 	at runNextTicks (node:internal/process/task_queues:61:5) 	at process.processTimers (node:internal/timers:499:9) 	at async f.updateDisplay (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:485320) 	at async f.refresh (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:484930) 	at async _.refresh (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:493725) 	at async Timeout._onTimeout (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:2620830)] {   code: 'ERR_INVALID_ARG_TYPE' } 2023-06-24 16:16:01.643 [info] Test server listening. 2023-06-24 16:16:02.412 [error] Failed to get activation commands [TypeError: The "path" argument must be of type string. Received undefined 	at new NodeError (node:internal/errors:387:5) 	at validateString (node:internal/validators:121:11) 	at Object.normalize (node:path:299:5) 	at h (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:668648) 	at t.arePathsSame (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:669783) 	at c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604093 	at Array.find (<anonymous>) 	at u.getLatestInfo (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604066) 	at f.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:606996) 	at n.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:583858) 	at E.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:716404) 	at _.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496104) 	at _.getActiveInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496029) 	at async l.getActivationCommands (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:263618) 	at async y.getActivationCommands (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:268745)] {   code: 'ERR_INVALID_ARG_TYPE' } 2023-06-24 16:16:02.413 [error] Failed to get activation commands [TypeError: The "path" argument must be of type string. Received undefined 	at new NodeError (node:internal/errors:387:5) 	at validateString (node:internal/validators:121:11) 	at Object.normalize (node:path:299:5) 	at h (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:668648) 	at t.arePathsSame (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:669783) 	at c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604093 	at Array.find (<anonymous>) 	at u.getLatestInfo (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:604066) 	at f.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:606996) 	at n.resolveEnv (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:583858) 	at E.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:716404) 	at _.getInterpreterDetails (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496104) 	at _.getActiveInterpreter (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:496029) 	at async l.getActivationCommands (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:263618) 	at async y.getActivationCommands (c:\Users\hello\.vscode\extensions\ms-python.python-2023.10.1\out\client\extension.js:2:268745)] {   code: 'ERR_INVALID_ARG_TYPE' }

Toggle developer tools:

@TayJen This looks like some cache corruption. Are you able to run any commands at all? If you can run, please try running Python: Clear cache and reload window.

@karthiknadig that DID really work. Thank you very much! However it is really strange that cache wasn't cleared after I deleted extension


routing+invoices: allow multi-part payment probes

Since https://github.com/lightningnetwork/lnd/pull/3156 it is possible to probe destinations before paying to get an accurate fee estimate upfront.
For single-shot payments can be done by sending a payment with an unknown payment hash and inspecting the returned failure. If it originates from the final destination, the route is deemed to be valid. Following through with the real payment is very likely to succeed.
For multi-part payments, it isn't that simple. Ideally you want to be sure that the selected routes can carry all parts at the same time. Because that is what the receiver will do. They will hold on to every part until the set is complete. However, if you use the single-shot probing method described above, htlcs will already be cancelled back before the set is complete. So the set may complete sequentially, but still fail when the real payment is executed.
The simplest example of this is a 20 sat channel when you need to pay 40 sat. It isn't possible. But if you probe two times 20, it looks as if it is possible.
So what is needed is a way to get the receiver to hold on to the payments until the set is complete and then cancel.

One way to do it may be to add a custom tlv record that signals probe. In that case, the receiver will cancel the set with a new failure code MPP_PROBE_SUCCESS.
Question is whether it is a problem to probe with the real payment hash. You'd need to trust the receiver that they don't take the probe as the real payment. It may not be the end of the world if they do. Also how to find out whether they support the new probe tlv record? Maybe the probes can use unknown hashes, but inside the probe tlv, there is the real payment hash. The htlc aren't locked to that, so can never be settled, but the invoice is still referenced. Alternatively use the payment address to reference the invoice.

Latest insight is to use a spontaneous multi-part payment (https://github.com/lightningnetwork/lightning-rfc/pull/658) to do the probing.

Possible now via AMP, but not yet manifested on the RPC interface. An easy way to do this, would be to create a new first-class probing API that always attempts to send an invalid share as the "last" shard. Alternatively, we can use the other mechanism that instead


Strict commit message on workflow

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] UI changes have been reviewed
[x] No UI review needed

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[x] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
no strict commit message on PR

Issue Number: #158
What is the new behavior?
strict on PR as well
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: