Build boost-numpy with boost-python

Hi, I'm using boost-python with the builtin numpy support enabled. Boost build decides whether to build the boost-numpy library as part of the boost-python library based on whether executing python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" succeeds or not. See https://github.com/boostorg/build/blob/e22a75c8fd83f0e52adea4f48ef5f9fbbdf5b72c/src/tools/python.jam#L838-L857
Is there a way using Vcpkg to (1) rely on the Python installed by Vcpkg and (2) force boost to build the boost-numpy library as well?
I have tried the following script:
REM file: build.bat

REM pybind11 only used to install Python.exe in vcpkg\downloads\tools\python\python3\python.exe
.\vcpkg\vcpkg.exe install pybind11

REM install pip3.exe. See: https://pip.pypa.io/en/stable/installing/
.\vcpkg\downloads\tools\python\python3\python.exe "../path/to/get-pip.py"

REM install numpy
.\vcpkg\downloads\tools\python\python3\Scripts\pip3.exe install numpy==1.16.2

REM verify that if boost build used the Vcpkg Python installation it would see numpy
.\vcpkg\downloads\tools\python\python3\python.exe -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"
REM prints correct path to .\vcpkg\downloads\tools\python\python3\lib\site-packages\numpy\core\include

set PATH=\full\path\to\vcpkg\downloads\tools\python\python3;%PATH%

REM try to build boost python
.\vcpkg\vcpkg.exe install boost-python

The expected result is that boost-ptython gets built with boostnumpy.
Instead, it is not built and the log say this:
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.6"
notice: [python-cfg]   user-specified includes: "/path/to/vcpkg/installed/x64-windows/include/python3.6"
notice: [python-cfg]   user-specified libraries: "/path/to/vcpkg/installed/x64-windows/lib"
notice: [python-cfg] Registry indicates Python 3.6 installed at "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\"
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] Checking interpreter command "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] No working Python interpreter found.
notice: [python-cfg] falling back to "python"
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "/path/to/vcpkg/installed/x64-windows/include/python3.6"
notice: [python-cfg]   library path: "/path/to/vcpkg/installed/x64-windows/lib"
notice: [python-cfg]   DLL search path: "<empty>"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.6"
notice: [python-cfg]   user-specified includes: "/path/to/vcpkg/installed/x64-windows/include/python3.6"
notice: [python-cfg]   user-specified libraries: "/path/to/vcpkg/installed/x64-windows/debug/lib"
notice: [python-cfg]   user-specified condition: "<python-debugging>on"
notice: [python-cfg] Registry indicates Python 3.6 installed at "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\"
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] Checking interpreter command "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] No working Python interpreter found.
notice: [python-cfg] falling back to "python"
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "/path/to/vcpkg/installed/x64-windows/include/python3.6"
notice: [python-cfg]   library path: "/path/to/vcpkg/installed/x64-windows/debug/lib"
notice: [python-cfg]   DLL search path: "<empty>"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]

Any ideas how to solve this, or any willingness to support this use case with Vcpkg?

I have tried the following script:

well it's written right there --- "../path/to/get-pip.py"
by mistake the same

notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.6"
notice: [python-cfg]   user-specified includes: "/path/to/vcpkg/installed/x64-windows/include/python3.6"
notice: [python-cfg]   user-specified libraries: "/path/to/vcpkg/installed/x64-windows/lib"

???
/path/to/vcpkg
/path/to/vcpkg/installed/x64-windows

well it's written right there --- "../path/to/get-pip.py"

@Voskrese  What I imply here is that I have separately downloaded the get-pip.py script and I'm invoking it. This part works; it builds the vcpkg\downloads\tools\python\python3\Scripts\pip3.exe used in the next command. ../path/to/get-pip.py and /path/to/vcpkg do not necessarily refer to the same path, it is just a placeholder and it is not causing the issue as far as I see.

by mistake the same

notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.6"

I do not understand what you are saying in your comment. Can you please explain it in simple words?
The only thing I see here is that the Python.exe under Vcpkg (and used in the script) is version 3.5, not 3.6. That might be the reason boost-build is not picking it up while building boost-python, but I'm not sure (I wasn't able to verify this).

then the reason is this
python.exe

notice: [python-cfg] Checking interpreter command "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe" 2>&1'

try with such variables
full path c:\vcpkg
"PYTHONHOME"="c:\vcpkg\downloads\tools\python\python3"
"PYTHONPATH"="%PYTHONHOME%Lib\site-packages;%PYTHONHOME%Lib;%PYTHONHOME%DLL"
"PYTHONSCRIPT"="%PYTHONHOME%Scripts"
"PYTHON_EXECUTABLE"="%PYTHONHOME%python.exe"
"PYTHON_INCLUDE_DIR"="%PYTHONHOME%include"
"PYTHON_LIBRARY"="%PYTHONHOME%libs\python27.lib;%PYTHONHOME%libs"
"c:\vcpkg\downloads\tools\python\python.exe" -m pip install -U numpy==1.16.2

cmake default search python
C:\Program Files (x86)\CMake\share\cmake-3.13\Modules\FindPython\Support.cmake
    # Windows registry
    if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
      find_program (${_PYTHON_PREFIX}_EXECUTABLE
                    NAMES python${_${_PYTHON_PREFIX}_VERSION}
                          python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
                          python
                          ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
                    NAMES_PER_DIR
                    HINTS ${_${_PYTHON_PREFIX}_HINTS}
                    PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
                          [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
                          [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
                          [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
                          [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
                          [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
                    PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
                    NO_SYSTEM_ENVIRONMENT_PATH
                    NO_CMAKE_SYSTEM_PATH)
    endif()

I'm not an expert in vcpkg or b2, so some of the technical details may be incorrect.

The situation is:

execution failure of python script

python not found

However, python is actually searched by b2 of boost-build instead of CMake.
The "call stack" of boost-python build is:
cmake: ports/boost-python/portfile.cmake
  cmake: installed/.../shared/boost-build/boost-modular-build.cmake
    b2: ...

And python related paths are formatted into user-config.jam copy of build variant of boost-python in its buildtree, where the original user-config.jam originates from  installed/.../shared/boost-build/user-config.jam.
b2 uses the information in the copied user-config.jam to search for python executable in the way detailed in installed/.../tools/boost-build/src/tools/python.jam, that searches for python registry if the cmd-or-prefix  field in user-config.jam is empty.
So the brute-force and dirty solution is to fill the cmd-or-prefix field of  installed/.../shared/boost-build/user-config.jam, otherwise b2 will never build boost-numpy library.

P.S., IMO,  python path should have the option to be given manually by user, since user may have python installed in virtual environments or anything else, and that's user-config.jam designed for.

Hi! I have the same issue and @Yienschwen solution didn't help, it still unable to find python in the directory for numpy check.
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.7"
notice: [python-cfg]   user-specified includes: "C:/vcpkg/installed/x64-windows/include/python3.7"
notice: [python-cfg]   user-specified libraries: "C:/vcpkg/installed/x64-windows/lib"
notice: [python-cfg] Registry indicates Python 3.7 installed at "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\"
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] Checking interpreter command "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] No working Python interpreter found.
notice: [python-cfg] falling back to "python"
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "C:/vcpkg/installed/x64-windows/include/python3.7"
notice: [python-cfg]   library path: "C:/vcpkg/installed/x64-windows/lib"
notice: [python-cfg]   DLL search path: "<empty>"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.7"
notice: [python-cfg]   user-specified includes: "C:/vcpkg/installed/x64-windows/include/python3.7"
notice: [python-cfg]   user-specified libraries: "C:/vcpkg/installed/x64-windows/debug/lib"
notice: [python-cfg]   user-specified condition: "<python-debugging>on"
notice: [python-cfg] Registry indicates Python 3.7 installed at "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\"
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] Checking interpreter command "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] No working Python interpreter found.
notice: [python-cfg] falling back to "python"
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "C:/vcpkg/installed/x64-windows/include/python3.7"
notice: [python-cfg]   library path: "C:/vcpkg/installed/x64-windows/debug/lib"
notice: [python-cfg]   DLL search path: "<empty>"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]

In the same time, local boost distribution compiled well with numpy.
Will be grateful for any help, thanks!

So dirty workaround that worked:

Open C:\vcpkg\installed\x64-windows\tools\boost-build\src\tools\python.jam
At line ~838 change code to the following (just be sure to provide correct location of numpy headers):

 #
    # Discover the presence of NumPy
    #
    debug-message "Checking for NumPy..." ;
    local full-cmd = "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" ;
    local full-cmd = $(interpreter-cmd)" -c \"$(full-cmd)\"" ;
    debug-message "running command '$(full-cmd)'" ;
    local result = [ SHELL $(full-cmd) : strip-eol : exit-status ] ;
    #if $(result[2]) = 0
    #{
        .numpy = true ;
        .numpy-include = "C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python37_64/lib/site-packages/numpy/core/include" ; #$(result[1]) ;
        debug-message "NumPy enabled" ;
    #}
    #else
    #{
    #    debug-message "NumPy disabled. Reason:" ;
    #    debug-message "  $(full-cmd) aborted with " ;
    #    debug-message "  $(result[1])" ;
    #}

Remove and then install again boost.python
Fix will be need to done again if you reinstall boost.build

I have Python 3.8 on the system and vcpkg insists on installing 3.9. I need to build boost-python with numpy for 3.8 - but this fails.  I tried to resolve it by changing user-config.jam (in vcpkg\buildtrees\boost-python\x64-windows-rel\user-config.jam) but this is overwritten with 3.9. Is this the incorrect way of hinting which Python to use?

Hello. The problem looks much more complicated. @vlarin provided a good local solution, but it is impossible to commit such changes.  Building numpy requires python, but which one? vcpkg directory has at least two copies of python, third one was installed by standart installation.

Is it possible to install python by vcpkg into the system and use it everywhere?
Could we use pip for vcpkg-python and install numpy before boost-python builder call?
Could you publish some recomendations or instructions of using b2 for vcpkg-boost?

There is other workaround to try.
https://github.com/microsoft/vcpkg/issues/5732#issuecomment-554746190
Same file vcpkg\installed\x64-windows\tools\boost-build\src\tools\python.jam
Line 765 - 770
        while $(cmds-to-try)
        {
            # Pop top command.
            local cmd = \"$(cmds-to-try[1])\" ;
            cmds-to-try = $(cmds-to-try[2-]) ;

It has issue with spaces in python.exe path

Edit this file："pathto\vcpkg\installed\x64-windows\tools\boost-build\src\tools\python.jam",
about line 835~836 before " debug-message "Details of this Python configuration:" ;
debug-message "  interpreter command:" "$(interpreter-cmd:E=)" ;
debug-message "  include path:" "$(includes:E=)" ;
debug-message "  library path:" "$(libraries:E=)" ;",
add this two line to use your settings of python installed
includes = [ path-to-native "D:/vcpkg/installed/x64-windows/include/python3.11" ] ;
libraries = [ path-to-native "D:/vcpkg/installed/x64-windows/lib" "D:/vcpkg/installed/x64-windows/debug/lib" ] ;
Lines 765 - 770:
change "
local cmd = $(cmds-to-try[1]) ;
cmds-to-try = $(cmds-to-try[2-]) ;
" to "
local cmd = "D:/vcpkg/installed/x64-windows/tools/python3/python.exe" ;
cmds-to-try = $(cmds-to-try[2-]) ;"

Anyone know how to apply this hack? installed\<triplet>\tools\boost-build seems to no longer exist...

Anyone know how to apply this hack? installed\<triplet>\tools\boost-build seems to no longer exist...

I had success by modifying this file:
packages\boost-build_\tools\boost-build\src\tools\python.jam

Wait, that one is missing aswell ... turns out there stil is a port for boost-build, but boost doesn't include it...
Well apparently I'm stuck anyways as Boost 1.85 is not compatible with Numpy 2.1.1 for API changes and the fix is included with Boost 1,86, which hasn't made it to vcpkg yet...


When searching a different language title

When i search for a japanese movie title e.g. 'Love exposure' the search results show the title in Japanese.

This is not app build related, it will be due to the TMDB API.


Add semantic release

We need a changelog and an automated release process on NPM. It's easy to add, I already implemented it here and there. We could roughly copy/paste the github action and semantic release configuration.

"You cannot publish over the previously published versions: 0.5.0."


fix: open file limit with TLSRoundTripper

~No need to Clone delegateTransport on every function call, we can reuse the same http.Transport for every call.~
Close idle connections.

@dkoshkin I refactored the TLS configuration and separated out options for src and dest registries. I think is now more understandable and reuses connections better. Could you test it out please?

@dkoshkin I refactored the TLS configuration and separated out options for src and dest registries. I think is now more understandable and reuses connections better. Could you test it out please?

Yep testing.

Looks good, see below snippet without a bunch of open connections.
$ lsof -p 7766
COMMAND    PID   USER   FD      TYPE DEVICE SIZE/OFF     NODE NAME
mindthega 7766 centos  cwd       DIR  259,1     4096   123232 /home/centos
mindthega 7766 centos  rtd       DIR  259,1      224       64 /
mindthega 7766 centos  txt       REG  259,1 57511936     3927 /home/centos/mindthegap
mindthega 7766 centos    0u      CHR  136,0      0t0        3 /dev/pts/0
mindthega 7766 centos    1u      CHR  136,0      0t0        3 /dev/pts/0
mindthega 7766 centos    2u      CHR  136,0      0t0        3 /dev/pts/0
mindthega 7766 centos    3u     IPv4  39015      0t0      TCP ip-172-31-6-22.us-west-2.compute.internal:47450-><IP_ADDRESS>:https (ESTABLISHED)
mindthega 7766 centos    4u  a_inode   0,10        0     6451 [eventpoll]
mindthega 7766 centos    5r     FIFO    0,9      0t0    35935 pipe
mindthega 7766 centos    6w     FIFO    0,9      0t0    35935 pipe
mindthega 7766 centos    7u     IPv4  30485      0t0      TCP localhost:36149 (LISTEN)
mindthega 7766 centos    8u     IPv4  31300      0t0      TCP ip-172-31-6-22.us-west-2.compute.internal:47480-><IP_ADDRESS>:https (ESTABLISHED)
mindthega 7766 centos    9w      REG  259,1 36306944 33595437 /home/centos/.image-bundle-4281772975/docker/registry/v2/repositories/oss/kubernetes-csi/csi-attacher/_uploads/c322a0b9-9af0-4e29-a0a9-9978d83cc0b5/data
mindthega 7766 centos   10u     IPv4  33709      0t0      TCP localhost:46524->localhost:36149 (ESTABLISHED)
mindthega 7766 centos   11u     IPv4  37962      0t0      TCP localhost:36149->localhost:46524 (ESTABLISHED)
mindthega 7766 centos   14u     IPv4  39026      0t0      TCP localhost:46508->localhost:36149 (ESTABLISHED)
mindthega 7766 centos   17u     IPv4  39027      0t0      TCP localhost:36149->localhost:46508 (ESTABLISHED)


Update scala3-library, scala3-library_3 to 3.2.2

Updates

org.scala-lang:scala3-library
org.scala-lang:scala3-library_3

from 3.1.3 to 3.2.2.
GitHub Release Notes - Version Diff - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.1.3).
You might want to review and update them manually.
.github/workflows/ci.yml
docs/website/package-lock.json

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-lang" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, version-scheme:semver-spec, old-version-remains, commit-count:1

Handled by https://github.com/almond-sh/almond/pull/1042


⚠ Bofrost.at has degraded performance

In cc45681, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2801 ms

Resolved: Bofrost.at performance has improved in a27ec2b after 18 minutes.


Sponsorships [Revenue Model] [Feature]

The Sponsorship column is advertisement space. There's a chance for the organization to inject itself into sponsorship deals in a way that it brings added value to every participant involved: the athletes and the sponsors themselves.
Take for example satoshi's place. It sells advertising space on a website. The whiteboard in our case is equivalent to the Sponsors column.
This is great, because this way advertisers would have an bureaucracy free way of advertising and the athletes wouldn't have to go and try finding the sponsors themselves.
Sponsorship deals would go 90% for athletes and 10% for the organization, of which the organization pays out the athletes every year, just like the prize money.
I might even be able to convince Bitcoin companies to sponsor their preferred athletes.
In the following I discuss some problem with adopting Satoshi's place model at its face value.
1. The Penis Problem
It is easy to see how there'd be a lot of penises sponsoring the athletes. It's easy to fix this. The athlete itself would need the ability to accept or refuse the sponsor.
2. The Overwrite Risk Problem
A potential sponsor might decide to not sponsor, because one hour later someone with a larger purse overwrites their sponsorship, thus throwing the money out of the window. There are many ways to fix this. Maybe a mutually agreed period of overwrite protection could work.

We should count the number of clicks to sponsors and give feedback to them so they know.
Leaderboard should show which athlete is sponsored by what amount (maybe even the clicks?) - it'd be an interesting information to learn next to the popularity of athletes

Sponsorship feature: measure CPV and create report for sponsors comparing to mainstream CPVs
Here is a typical range of Cost Per Visit (CPV) values for various ad platforms. If we can do better than this, then that validates the sponsorship feature's viability:

Facebook Ads: $0.50 - $3.00 per visit
Google Search Ads: $1.00 - $7.00 per visit (depending on competition and industry)
Google Display Ads: $0.40 - $1.50 per visit
LinkedIn Ads: $2.00 - $10.00 per visit
Twitter Ads (X): $0.50 - $3.00 per visit
TikTok Ads: $0.20 - $2.00 per visit
Pinterest Ads: $0.50 - $2.00 per visit
YouTube Ads: $0.10 - $3.00 per visit
The ranges depend heavily on industry, ad quality, and audience targeting.

https://github.com/nopara73/LongevityWorldCup/issues/125

What if CPV metrics would be public just like the total sponsorship deals? That'd give some people work if they want to dig in and get some calculations.

Should have a simple "allocate X BTC and automagically try sponsor the highest guy i can get" or sth. The point is for people/companies who don't want to spend brain space on who to sponsor should have an easy way to go at it.


Fix: vhost user port is displayed as LINK DOWN after ovs-vswitchd reb…

…oots

The traffic is OK, but the status is shown as LINK DOWN.


NAH.SH mgate: Add type fields to request

The NAH.SH mgate definition does not provide type fields in the client and auth parts of its request, causing the HAFAS backend to return error codes. Other mgate definitions provide these fields, so add them here as well.

Thanks!


feat(multiprogress): add println and insert functions

This PR adds two functions to the MultiProgress object:

println(message): this function allows to add a log message (with the "remark" symbol) to the multiprogress, which will show above the progress bars.
insert(index, pb): this function allows to insert a progress bar at any index into the list of existing progress bars. This allows to put the new item at the top or in the middle of existing progress bars.

Closes #74

@beeb It is 2 PRs :)
Also, I'm not sure insert is gonna work as expected: bars are gonna be rearranged while being stopped in a random way.

I can split it into two PRs if you prefer.
I don't get the remark about the re-arrangement while being stopped. I made sure to insert the new pb at the correct matching index in the vec.

@beeb Split it! :)
I need a closer look later, meanwhile try to run examples/multibar.rs whether it works as expected, try to use the insert and check whether all bars behave as expected.

Closed in favor of #76 and #77


Enhancement/Refactor slider component

I think, that we can rewrite file mark better, than it was
for example
export const marks = Array.from({ length: 10 }, (_, index) => ({
  value: index + 1,
  label: (index + 1).toString(),
}));


Implement multipart input handling

cc @cybergeek94

LGTM. When specialization drops I think I can use it to avoid creating an extra buffer when the source is already in-memory, like Cursor<Vec<u8>>.
On that note, memory usage would be a concern with large files, since the whole request body is read into memory. It's up to you how to deal with them, if you aren't already. I haven't had a chance to look through the source yet.

Yes I know that's a big problem.
I admit that I'm abusing the fact that the framework isn't used publicly, because any website that use it could easily be attacked.


question about feature dimension from 'eval_net.py' script

I have seen you said you used 25 frames per video to calculate the test accuracy. However, after I made a little change of the eval_net.py script and extract global_pool features as you suggested, it generates 101024 dim features for each video which I thought should be 251024.

I think I find the problem. It is because I just save one frame feature for each video.


Select All with Ctrl+A no longer limits bounds to the codeblock

Using Ctrl+A selects all contents in Slate now, rather than just the codeblock content.

The cause of this issue is the use of event.metaKey in onKeyDown.js
event.metaKey is false when using the Ctrl key in Windows: https://github.com/ianstormtaylor/slate/issues/1422

I've submitted a PR for this, #30


search_treebase fails to pull the tree

Hi,
just tried to download a tree from treebase and got an error. I got similar errors when using both the stable (CRAN) and development version (github).
> Huelsenbeck <- search_treebase("Huelsenbeck", by="author")

http://purl.org/phylo/treebase/phylows/study/find?query=dcterms.contributor=Huelsenbeck&format=rss1&recordSchema=tree
Query resolved, looking at each matching resource...
Error in 1:max_trees : NA/NaN argument
In addition: Warning message:
In get_nex(query, max_trees = max_trees, returns = returns, curl = curl,  :
  NAs introduced by coercion```

Thanks for the report @cmzambranat  - i'll have a look

@cmzambranat reinstall and try again, devtools::install_github("ropensci/treeBASE")

That solved the issue. Thanks!

great, glad it works now


Syntax Issue?

How do I fix this? It looks like its a problem from the site but I'm unsure
C:\Users\Me\Totally Homework\fakku-downloader-master>python main.py
Using cookies file: cookies.pickle
DevTools listening on ws://<IP_ADDRESS>:1344/devtools/browser/648a859f-0305-4f5a-b4f6-0dafa496b8d0
[1004/194945.839:INFO:CONSOLE(45)] "Uncaught SyntaxError: Unexpected identifier", source: https://www.fakku.net/hentai/a-chiropractors-wet-dream-2-english (45)
Error: timed out waiting for page to load. +                 You can try increase param -t for more delaying.
Program exit.
C:\Users\Me\Totally Homework\fakku-downloader-master>

Also get that error but it works for me anyway afterwards. Try setting setting a wait time like so: -w=20


[SPIKE] Assess possibility of using RKE instead of existing Epiphany solution in new Kubernetes module

Is your feature request related to a problem? Please describe.
Right now we have assessed RKE, Kubespray and other possible solutions to be used in Epiphany in new Kubernetes module realized in task Research of kubernetes installing tools we need to assess possibility of using RKE in Epiphany Kubernetes module.
Describe the solution you'd like
The goals of this task:

Create a module with initial configuration to deploy and upgrade k8s cluster on-prem by RKE. Use mentioned above task for details and research results.
Deploy components provided by "applications" Ansible role of epicli in created Kubernetes cluster.
Validate if ha solution with haproxy works as expected. If it's necessary, remove Nginx ingress controller (suggested by @erzetpe).
After the main part of this work is completed, create new tasks with found details:

Offline mode for RKE.
Work with existing legacy kubernetes: using RKE with existing clusters deployed by Epiphany,
process of upgrade of existing Kubernetes clusters deployed by Epiphany, possibility of work with already deployed applications (e.g. Keycloak).
Separation of OS from applications running on Kubernetes (resource reservation), to prevent OS crash (e.g. in case of running on Kubernetes application memory leak). Take a look at documentation. Use testing tools provided by @to-bar.
Possibility to use hosts plugin for CoreDNS to have addresses resolved even if there is no upstream dns - currently Epiphany patches CoreDNS. Verify NodeLocal DNS cache.
Check RKE default security related settings and customization options (e.g. admission plugins).

Describe alternatives you've considered
None.
Additional context
Already mentioned Research of kubernetes installing tools

I added grooming-needed label because this does not look clear to me.

What is required to switch to RKE in Kubernetes module from module perspective
What does it mean? It does not clearly specify what is to do.
What is required to switch to RKE from other components perspective
Same here.
Offline mode for RKE
Is it not covered by spile that @sk4zuzu  did?

Work with existing legacy kubernetes - can be RKE used with existing clusters deployed by Epiphany,
process of upgrade of existing Kubernetes clusters deployed by Epiphany, possibility of work with already deployed applications (e.g. Keycloak)
IMO this thing should be tested (maybe in another spike?) is the transition from Kubeadm Kubernetes -> RKE. I'm pretty sure there are ppl in the world that tried that.
Separation of OS from applications running on Kubernetes (resource reservation), to prevent OS crash (e.g. in case of running on Kubernetes application memory leak)
This should be another task that should be done anyway (not in this scope).
Is it possible to use hosts plugin for CoreDNS - currently Epiphany patches CoreDNS
The goal of using hosts plugin is to have addresses resolved even if there is no upstream dns (like some on-prem installations). Maybe RKE is worked this out somehow?

Additional comments were left.

What is required to switch to RKE in Kubernetes module from module perspective

What does it mean? It does not clearly specify what is to do.

I suppose that the goal of this task is to create an initial module configuration with an ability to deploy k8s cluster on prem

What is required to switch to RKE from other components perspective

Probably the idea is to check main components installation, "applications" Ansible role, with epicli in the k8s cluster that is created by a new module

Same here.

Offline mode for RKE

Is it not covered by spike that @sk4zuzu did?

@sk4zuzu could you comment that?

Work with existing legacy kubernetes - can be RKE used with existing clusters deployed by Epiphany,
process of upgrade of existing Kubernetes clusters deployed by Epiphany, possibility of work with already deployed applications (e.g. Keycloak)

IMO this thing should be tested (maybe in another spike?) is the transition from Kubeadm Kubernetes -> RKE. I'm pretty sure there are ppl in the world that tried that.

I see that there is an ability to import existing clusters to the RKE. @sk4zuzu did you tested that or we need an additional spike for upgrade action?

Separation of OS from applications running on Kubernetes (resource reservation), to prevent OS crash (e.g. in case of running on Kubernetes application memory leak)

This should be another task that should be done anyway (not in this scope).

This is described in Rancher documentation and should/can be done by using project and namespace resource quotas.

Is it possible to use hosts plugin for CoreDNS - currently Epiphany patches CoreDNS

The goal of using hosts plugin is to have addresses resolved even if there is no upstream dns (like some on-prem installations). Maybe RKE is worked this out somehow?

There is an ability to use NodeLocal DNS cache, isn't it what we need?
@erzetpe @sk4zuzu @toszo Please comment that. At the moment it's unclear how to proceed with this task and which tasks should be created in addition.

Additional comments were left.

What is required to switch to RKE in Kubernetes module from module perspective

What does it mean? It does not clearly specify what is to do.

I suppose that the goal of this task is to create an initial module configuration with an ability to deploy k8s cluster on prem

What is required to switch to RKE from other components perspective

Probably the idea is to check main components installation, "applications" Ansible role, with epicli in the k8s cluster that is created by a new module

Same here.

Offline mode for RKE

Is it not covered by spike that @sk4zuzu did?

@sk4zuzu could you comment that?

Work with existing legacy kubernetes - can be RKE used with existing clusters deployed by Epiphany,
process of upgrade of existing Kubernetes clusters deployed by Epiphany, possibility of work with already deployed applications (e.g. Keycloak)

IMO this thing should be tested (maybe in another spike?) is the transition from Kubeadm Kubernetes -> RKE. I'm pretty sure there are ppl in the world that tried that.

I see that there is an ability to import existing clusters to the RKE. @sk4zuzu did you tested that or we need an additional spike for upgrade action?

Separation of OS from applications running on Kubernetes (resource reservation), to prevent OS crash (e.g. in case of running on Kubernetes application memory leak)

This should be another task that should be done anyway (not in this scope).

This is described in Rancher documentation and should/can be done by using project and namespace resource quotas.

Is it possible to use hosts plugin for CoreDNS - currently Epiphany patches CoreDNS

The goal of using hosts plugin is to have addresses resolved even if there is no upstream dns (like some on-prem installations). Maybe RKE is worked this out somehow?

There is an ability to use NodeLocal DNS cache, isn't it what we need?
@erzetpe @sk4zuzu @toszo Please comment that. At the moment it's unclear how to proceed with this task and which tasks should be created in addition.

Offline mode - it's not fully supported in the sense that Epiphany provides it, RKE supports "airgapped" clusters, but does not provide automatic collection of packages and images (none of the known solutions supports full Epiphany-like offline mode). But with RKE it's really basic and simple to implement all that (just look at the research here https://github.com/sk4zuzu/RESEARCH/blob/master/k8s-engines-on-prem/rke/Makefile#L29-L44). :+1::innocent:
Upgrades - are simple and straightforward and I tested them in the spike like here https://github.com/sk4zuzu/RESEARCH/blob/master/k8s-engines-on-prem/rke/Makefile#L55-L57
Node local DNS - that needs to be confirmed
Resource separation - that's something external to RKE, but needs to be addressed, here https://github.com/epiphany-platform/epiphany/tree/develop/tools/development/k8s/memory (thanks @to-bar !) we have some testing tools.

Offline mode - it's not fully supported in the sense that Epiphany provides it, RKE supports "airgapped" clusters, but does not provide automatic collection of packages and images (none of the known solutions supports full Epiphany-like offline mode). But with RKE it's really basic and simple to implement all that (just look at the research here https://github.com/sk4zuzu/RESEARCH/blob/master/k8s-engines-on-prem/rke/Makefile#L29-L44). :+1::innocent:
Upgrades - are simple and straightforward and I tested them in the spike like here https://github.com/sk4zuzu/RESEARCH/blob/master/k8s-engines-on-prem/rke/Makefile#L55-L57
Node local DNS - that needs to be confirmed
Resource separation - that's something external to RKE, but needs to be addressed, here https://github.com/epiphany-platform/epiphany/tree/develop/tools/development/k8s/memory (thanks @to-bar !) we have some testing tools.

I would consider this spike done. To summarise current state:

additional tests were made
example installation and integration with OpenEBS was made
additional findings are described in internal "Possibility of using RKE in Epiphany" document


Azure Storage explorer  stuck on Loading.. any suggestion

Storage Explorer Version:
Platform:
Architecture:
Build Number:
Commit:
Regression From:
Steps to Reproduce:

Expected Experience:

Actual Experience:

This is happening for me as well. Trying to connect to blob storage in Azure Storage Emulator. Was working last week before I did a windows update and storage explorer update.
I am running azure storage emulator from a docker container.
Just stalls and loads forever when searching through development -> blob storage

@ede0m , can you please use this issue for your problem? https://github.com/Microsoft/AzureStorageExplorer/issues/175
And @pankajag , please give us more info!

Can you please upgrade/install .NET 4.7.x as @jinglouMSFT suggested, and then try again? Thank you.

@MRayermannMSFT : I also have the same issue, but i am able to access some storage account and only some new storage accounts this issue, And after deleting and re-creating with different name it works. So i think .Net version is not an issue here.

Hi @KapilGuptaECR , can you be more clear about which issue you are having? Include screenshots (if possible), and detailed information about what you are seeing/how what you are seeing is not what you expect. Thanks!

@MRayermannMSFT
I'm seeing the same issue on v1.2.0.   We have about 1700 folders in a blob container and it will load the first 1000 or so, but clicking "Load More" before the last load more completes seems to place it into a hang state.  According to task manager is is using 6-8% CPU and 8-9% GPU sitting there with the roving dots spinning.  The only thing that seems to clear it is to do "Refresh" and start from the beginning of 1700 folders again.  Once I click Refresh, and wait for the first 1,000 to load, and click "Load More" ONCE, the remaining folders come in in about 150 count chunks, and will continue loading to the end.

Closing this bug as stale. If this continues to be an issue, please let us know, and we can reopen.

As I mentioned, the bug became stale. In addition, the original comment does not supply enough information to fully understand the issue.
Is Azure Storage Emulator running? The (Development) node no longer automatically launches Azure Storage Emulator in 1.1.0 and up, because we want to allow users to install and launch any emulator they choose. The (Development) node should still connect to the emulator if the services are configured with their default endpoints.
We haven't quite updated the documentation for that, but we're working on it right now (#270).

Hi,
Please find attached e-mail communication on this.
This is highly unexpectable to just close case with out any proper information and I had provided all what you are asking, also screen share the issue.
Thanks!
Best Regards!
Kapil
From: Craig<EMAIL_ADDRESS>Sent: Dienstag, 26. Juni 2018 19:56
To: Microsoft/AzureStorageExplorer<EMAIL_ADDRESS>Cc: Gupta, Kapil<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/AzureStorageExplorer] Azure Storage explorer stuck on Loading.. any suggestion (#169)
As I mentioned, the bug became stale. In addition, the original comment does not supply enough information to fully understand the issue.
Is Azure Storage Emulator running? The (Development) node no longer automatically launches Azure Storage Emulator in 1.1.0 and up, because we want to allow users to install and launch any emulator they choose. The (Development) node should still connect to the emulator if the services are configured with their default endpoints.
We haven't quite updated the documentation for that, but we're working on it right now (#270https://github.com/Microsoft/AzureStorageExplorer/issues/270).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/AzureStorageExplorer/issues/169#issuecomment-400406817, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AmYHlyhN-93hkzObDTFxSXOv_r-Myj72ks5uAnWvgaJpZM4T8iWc.

@KapilGuptaECR, I don't think email attachments make it through to GitHub threads. You'll need to paste it in if you feel it's pertinent.
The earlier discussion here mentions the use of Azure Storage Explorer. Have you looked at #175 to make sure this is a different issue? If it's similar, we would encourage you to move the discussion there. If not, you may want to consider opening a new issue, since it will be off topic here.
We're trying to keep our bug reports organized so that we know how to go about addressing them. We don't want threads drifting off topic and referring to bugs that differ from the issue title. We also want other users to easily search existing issues for solutions rather than opening duplicates.

I have .Net framework 4.7.1 installed on my windows 7 machine. Still the azure storage explorer doesn't launch. It is perennially stuck on the loading animation. Another suggestion to Microsoft is to please launch an online storage explorer ie as website. Me and my colleagues face a lot of connectivity issues to the azure storage due to proxy servers. If the explorer runs online, we won't face these issues.

@Rachitgupta1994, thank you for your suggestion! We encourage you to add your suggestions as separate issues so that we have a much better chance of seeing and tracking it.
@pankajag, @HeliosLHD, @KapilGuptaECR, have you updated to the latest version of Storage Explorer (1.3.0)? Are you still encountering issues? If you reply, please provide detailed steps that reproduce the issue! This will help us help you!


support videos?

this project uses yt-dlp underhood thereby increasing support to not just audio but video files.
can this project support videos too?

this project uses yt-dlp underhood thereby increasing support to not just audio but video files.
can this project support videos too?

I've used it on mp4 files (i.e. videos) from Skype meetings that I have had with my teacher and absolutely on problems.


Use docker credentials in the skypilot orchestrator

Describe changes
When the container registry is linked to a service connector or configured with docker credentials, these should be used to configure the SkyPilot task to fetch the image inside the VM.
NOTE: not tested !!!!
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[ ] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] If I have added an integration, I have updated the integrations table and the corresponding website section.
[ ] I have added tests to cover my changes.
[ ] I have based my new branch on develop and the open PR is targeting develop. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

Successfully tested using two different stacks:

AWS skypilot + AWS ECR container registry + S3 artifact store (all linked to the same AWS connector)
AWS skypilot + S3 artifact store (all linked to the same AWS connector) + Google GCR container registry (linked to a GCP connector)

This shows that the Docker credentials are successfully pulled from the service connector and configured inside the SkyPilot node regardless of the credentials origin.

Using the Skypilot orchestrator with AWS credentials coming Service Connectors still has some problems due to how AWS credentials are transferred by SkyPilot inside the AWS EC2 VM. Details here: https://github.com/skypilot-org/skypilot/issues/2737


Bank Search "Warm" for Wintertodt related equipment items

Searching "clue" will return equipment in your bank which is required to completed your current clue step when applicable. Same functionality concept, just with Wintertodt.
All "warm" items to be returned from a search that's related to wintertodt, e.g. "warm", "wintertodt", "pyro".
Using bank tags would remedy this "problem" if the previous articles of equipment are known, or you're looking at the wiki page, however that solution is a little ... 'cumbersome'. Integrated functionality would be more stream-lined and easier for all players.
N/A, I just hate searching the bank.

Your current clue scroll step is dynamic but whether or not an item counts as warm isn't. It's easier to just create your own bank tag containing the items listed on the wiki.


How to call findById for a related model from angular?

I don't think there are any examples on github right now or any docs that show: How to call findById for a related model from angular.
We should figure it out and cover that.

As an example, imagine this situation which I believe throws off a lot of users including myself: you are logged into your angular client and you want to fetch a model owned by your user and also get at its related models.
Sample Scenario:
UserModel hasMany ReportModel(s)
ReportModel has many LineItemModel(s)

Now anyone who starts with: ReportModel.findById({id: reportId}) will hit the wall where currently (today is April 15, 2015) there is no way to use the include filter with findById()

Next folks might try: ReportModel.find({where:{id:reportId}, include:['lineitemModels']}) but that too will fail with a 403

The only way this is going to work is via a very specific syntax which starts at the UserModel and leverages the fact that ReportModel is related to it ... to finally get at the resources we want!

UserModel.reportModels.findById({
id: LoopBackAuth.currentUserId,
fk: 1,
filter:{
  include:'lineitemModels'
}
})

Why does it have to be so contrived? This is how it was explained to me: https://groups.google.com/d/msg/loopbackjs/T5FJnqXomd8/CdziNmDOloIJ

At the moment, LoopBack ACLs are enforced prior to the target method invocation. Only the knowledge from the request context is used. For example, the $owner role uses the ‘id’ to check if the target instance is ‘owned’ by the logged in user. There were discussions to extend ACL checks post the method invocation. We’re working toward that in steps.

By the way, pending https://github.com/strongloop/loopback/pull/1306, the filter include inside findById is a no-op!

An enlightening comment from @jasonaden:

Wait, are you trying to secure everything to the $owner? You will have a lot of difficulty doing that. $owner can only go one level deep, and only works against the User model, so it's not really all that useful.

https://github.com/strongloop/loopback/pull/1306 was released for "loopback": "2.16.0" and I tested that it works with the followign syntax on the angular side:
return ReportModel.findById({
  id:1,
  filter:{
    include:'lineitemModels'
  }
})
.$promise.then(function(...){...});

But while that wasn't working I had also taken @doublemarked's suggestion to implement a remote method so for what its worth that approach may be worth demoing too.

FWIW, I would not recommend the solution described in https://github.com/loopbackers/loopback-advanced-models/issues/4#issuecomment-93622066 as it may stop working once we fix https://github.com/strongloop/loopback/issues/960

UserModel.reportModels.findById({
id: LoopBackAuth.currentUserId,
fk: reportId,
filter:{
include:'lineitemModels'
}
})


chore(WIP): simplify error messaging in database modal

SUMMARY
This pr removes the error alert popup in the database modal when the inline message and dberror are the same.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS
Go to database modal for googlesheet and try to create error mesages by not either not including the name or correct uri.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

/testenv up

/testenv up

/testenv up


Difference between forking points and bifurcations

Hi,
I was wondering what the difference between forking points and bifurcations are. I could not find a simple explanation on your documentation
//jofrony

Hi!
Bifurcation is the division into two branches. Forking point is the division into multiple branches. Bifurcation is a special case of forking point.


Add settings for allowing certain alert types to notify people, and configure per-bot instance what that mention should be.

done on the new bot


Add docs builds for branches other than master

It would probably be helpful is we could build the docs for branches other than master.
The problem is the docs expect us to be hosted on robotics.xbhs.net, or run the development server. The problem is if you ship just the site contents, it won't work because the page index.html expects to be located at robots.xbs.net/index.html but in reality it is located at file://..../index.html.
And we can't host multiple instances of the same site on the same domain, because that doesn't work.

Relates to #592

The easiest way to host the files locally is with python -m http.server but I think it would be better to find some other way to temporarily host the website online.

Well actually, I was looking at some of the files for myself and it looks like all links originate from whatever is set in the baseUrl option in docusaurus.config.js, which is just \. There is also the url option which is https://robotics.xbhs.net. My suspicion is the actual files in the site do not care what our url is, only that files can be accessed via /<file-name>, which if we are in the file:// context, the browser tries to access file:///<file-name>.
Here's a screenshot from the browser console showing what I mean:

So we just need some way to convince the browser that the location of the site (say /home/michael/Downloads/HelpPage) can be accessed by file:///, so using theBook.pdf as an example, the real location is /home/michael/Downloads/HelpPage/theBook.pdf, but we have to convince the browser that it is actually file:///theBook.pdf.

Relative paths. Instead of /assets/whatever.js, use assets/whatever.js.

Well actually, I was looking at some of the files for myself and it looks like all links originate from whatever is set in the baseUrl option in docusaurus.config.js, which is just \. There is also the url option which is https://robotics.xbhs.net. My suspicion is the actual files in the site do not care what our url is, only that files can be accessed via /<file-name>, which if we are in the file:// context, the browser tries to access file:///<file-name>.
Here's a screenshot from the browser console showing what I mean:

So we just need some way to convince the browser that the location of the site (say /home/michael/Downloads/HelpPage) can be accessed by file:///, so using theBook.pdf as an example, the real location is /home/michael/Downloads/HelpPage/theBook.pdf, but we have to convince the browser that it is actually file:///theBook.pdf.

Because of this, we could do the same with a temporary host using something like workers.dev

Relative paths. Instead of /assets/whatever.js, use assets/whatever.js.

The problem is there is no way to tell Docusaurus to use relative paths.

My thought was to use Cloudflare Pages for the test builds because it keeps old deployments. For example, I created this just now: Production test and Preview test. It keeps all of the old builds like Preview, Production, old production 2, and old production 1.
We could have an Actions script that deploys to something like xbhs-robotics-docs-dev.pages.dev and an automatic comment that links to that deployment with the hash.

And it looks like we could use something like https://github.com/cloudflare/pages-action inside Actions to give us full control over the upload (instead of the default Pages-GitHub integration that deploys on every push).

If you want to work on this you are welcome to, but I have too much work on my hands right now.

I am already working on this

I'm currently refactoring the Pages build action to use multiple steps, which will be necessary to make sure this works. The main problem is that I don't have secrets access to the repo so I won't be able to test it out for real.


STM32, I2C, and SMBUS

Hi. Is there a trick to getting this to work over I2C, vice SMBUS? What could cause it to work on Raspberry Pi, but not STM32? I've tried F3 and L4, with no luck, but it works on Pi using this drive. I notice that the example is Linux / Raspberry Pi. Thank you.

I always write an example for the Raspberry Pi because of its popularity but I usually rather use the F1 BluePill  or F4 "USB-C pill" boards.

This example program works well for me on the BluePill: eldruin/driver-examples/.../mlx90614-temperature-display-bp
Here the example adapted for the F3 discovery board: eldruin/driver-examples/.../mlx90614-temperature-display-f3
@geomatsi has also a nice thermometer project using it with an L1 MCU: https://github.com/geomatsi/rust-ir-thermo

I hope it helps :)

I always write an example for the Raspberry Pi because of its popularity but I usually rather use the F1 BluePill  or F4 "USB-C pill" boards.

This example program works well for me on the BluePill: eldruin/driver-examples/.../mlx90614-temperature-display-bp
Here the example adapted for the F3 discovery board: eldruin/driver-examples/.../mlx90614-temperature-display-f3
@geomatsi has also a nice thermometer project using it with an L1 MCU: https://github.com/geomatsi/rust-ir-thermo

I hope it helps :)

Thank you. Your post really helps - I now know there's no extra config required. I'm now working off the F3 discovery board, since you have a known working solution there (Was using L4 Nucleo before). Still no luck though. This is quite perplexing, given the sensor works on Pi, and other I2C devices work on the same I2C lines.

Thank you. Your post really helps - I now know there's no extra config required. I'm now working off the F3 discovery board, since you have a known working solution there (Was using L4 Nucleo before). Still no luck though. This is quite perplexing, given the sensor works on Pi, and other I2C devices work on the same I2C lines.

Hi @David-OConnor
Could you please clarify what do you mean by 'no luck' ? What are the symptoms ?
Based on my experience, my guess is that there might be some issues with i2c implementation in f3 crate. I had to fix i2c implementation in stm32l1xx _hal to make it work with mlx9061x. IIRC I had to adapt some bits from stm32f1xx-hal related to termination of read operation: see https://github.com/stm32-rs/stm32l1xx-hal/pull/7.
Regards,
Sergey

Hi @David-OConnor
Could you please clarify what do you mean by 'no luck' ? What are the symptoms ?
Based on my experience, my guess is that there might be some issues with i2c implementation in f3 crate. I had to fix i2c implementation in stm32l1xx _hal to make it work with mlx9061x. IIRC I had to adapt some bits from stm32f1xx-hal related to termination of read operation: see https://github.com/stm32-rs/stm32l1xx-hal/pull/7.
Regards,
Sergey

Hi. I receive a CheckSumMismatch error from the crate, which is caused by Calculate SMBus Packet Error Code. I'm suspicious of a HAL I2C issue too. I'll try to port your PR to F3 and L4. I wonder if it's significant this is SMBUS and not I2C. I tried enabling most of the SMBus related bits on the I2C register, without success.
@eldruin : Have you tested the F3 example? Was it on the published HAL? Thank you.

Hi. I receive a CheckSumMismatch error from the crate, which is caused by Calculate SMBus Packet Error Code. I'm suspicious of a HAL I2C issue too. I'll try to port your PR to F3 and L4. I wonder if it's significant this is SMBUS and not I2C. I tried enabling most of the SMBus related bits on the I2C register, without success.
@eldruin : Have you tested the F3 example? Was it on the published HAL? Thank you.

Unable to git it working on F4 discovery either.

Unable to git it working on F4 discovery either.

Getting Err` value: I2C(Acknowledge)' on a STM32F103 Blue Pill board using that example code.

Getting Err` value: I2C(Acknowledge)' on a STM32F103 Blue Pill board using that example code.

Hi @David-OConnor ,
Could you please check another usual suspect and play with clocks. As a first check, I would suggest to try release build rather than default debug: build your program using --release switch for cargo.
Regards,
Sergey

Hi @David-OConnor ,
Could you please check another usual suspect and play with clocks. As a first check, I would suggest to try release build rather than default debug: build your program using --release switch for cargo.
Regards,
Sergey

I only tested this on the F1. For the F3 I only adapted it. I will try the examples again as soon as I find some time.
Do you have pull-up resistors on the I2C lines? 4.7k is a classic value. IIRC the RPi uses 10k.

I only tested this on the F1. For the F3 I only adapted it. I will try the examples again as soon as I find some time.
Do you have pull-up resistors on the I2C lines? 4.7k is a classic value. IIRC the RPi uses 10k.

I'm using 10K hardware Pullups. Have been release building. I'll experiment with the clocks and report back. Thank you.

I'm using 10K hardware Pullups. Have been release building. I'll experiment with the clocks and report back. Thank you.

What version of F1 HAL did you use? I tried v0.7.0 (Current published) and Github.

What version of F1 HAL did you use? I tried v0.7.0 (Current published) and Github.

I am unsure which exact version I have used when I tried it. As per Cargo.toml it must have been the 0.6.x version, though.

I am unsure which exact version I have used when I tried it. As per Cargo.toml it must have been the 0.6.x version, though.

I appreciate the update. Unable on 0.6.0 either. This is so weird - I just plugged it back into the Rpi, and using this driver, it still works fine. I'm pretty sure this has nothing to do with your crate here btw. I'm leaning towards @geomatsi's comment about it being an issue with the HALs and SMBUS.
My next step is to try to edit the HAL I2C config, but was hoping to start with a working config to work back from, which is why I was trying to get it working on F1. So, I'm still unable to make it work on any STM32 device.

I appreciate the update. Unable on 0.6.0 either. This is so weird - I just plugged it back into the Rpi, and using this driver, it still works fine. I'm pretty sure this has nothing to do with your crate here btw. I'm leaning towards @geomatsi's comment about it being an issue with the HALs and SMBUS.
My next step is to try to edit the HAL I2C config, but was hoping to start with a working config to work back from, which is why I was trying to get it working on F1. So, I'm still unable to make it work on any STM32 device.

Fixed. This was due to none of the STM32 HALs other than H7 supporting repeating start on I2C. Many devices don't care, but some, like this, due. The fix was copy+pasting the read_write method from H7's I2C module into L4.
Issue on L4: https://github.com/stm32-rs/stm32l4xx-hal/issues/189
PR on L4: https://github.com/stm32-rs/stm32l4xx-hal/pull/186

Fixed. This was due to none of the STM32 HALs other than H7 supporting repeating start on I2C. Many devices don't care, but some, like this, due. The fix was copy+pasting the read_write method from H7's I2C module into L4.
Issue on L4: https://github.com/stm32-rs/stm32l4xx-hal/issues/189
PR on L4: https://github.com/stm32-rs/stm32l4xx-hal/pull/186

I see. I fixed the same issue in linux-embedded-hal a while ago because the VEML6030 also cared about it. I guess this one would also have not worked on the RPi without it then.
Thanks @David-OConnor and @geomatsi!

I see. I fixed the same issue in linux-embedded-hal a while ago because the VEML6030 also cared about it. I guess this one would also have not worked on the RPi without it then.
Thanks @David-OConnor and @geomatsi!


revert Revert fix jdk17 and jemalloc hook not compatible on some env

Proposed changes
After https://github.com/apache/doris/pull/35557, jdk17 and jemalloc compatibility problems not exist.

run buildall


fix: support for Result<T, E> with exception throwing on Dart

Changes
Continue #582
Fixes #533
Fixes #1070
Checklist

[x] An issue to be fixed by this PR is listed above.
[x] New tests are added to ensure new features are working. End-to-end tests are usually in the ./frb_example/pure_dart example, more specifically, rust/src/api.rs and dart/lib/main.dart.
[x] The code generator is run and the code is formatted (via just precommit).
[x] If this PR adds/changes features, documentations (in the ./book folder) are updated.
[x] CI is passing.

Remark for PR creator

Justfile is a task runner for the command line interface that allows you to run shell commands from a file named justfile in your project directory. You can use Justfile after installing it. Note that commands written in justfile of this repository are expected to be run in bash, not cmd or powershell. Running just ... commands in cmd or powershell will produce errors as the syntax is not compatible. On Windows, you can use git bash if you have Git installed.
If fzyzcjy does not reply for a few days, maybe he just did not see it, so please ping him.

The part I'm currently struggling with is (mod.rs), I can't figure out how to merge between the newly refactored code by(#1117) and the result returning code.
@coder0xff any ideas?

I really need this feature, but I don't have the time to finish it. I hope you do well, thank you very much!

@lattice0 Also thanks for your code for the feature!

Now new issue
let enu = self.parse_enum_core(&p.ident, p.is_exception);
p is the SupportedPathType  which got refactored out
p.ident should be just the name, but I can't find a way to replace p.is_exception

I've ran into a weird issue
after this commit
this compile issue arrises, which is weird since there is no error messages

Try to run dart format manually. btw output=none may suppress the outputs?

I have successfully made most of the functions effective, but some behaviors on the web seem to be different from io, causing the integration test execution to fail.
Web integration test log:
https://github.com/fzyzcjy/flutter_rust_bridge/actions/runs/5902491055/job/16010626720?pr=1325#step:12:1183

Now there's an issue with thiserror.
If we use a error type without the #[from] attribute, it works, but if we do?

it fails. It's an interesting problem since without the #[from] attribute, thiserror is kinda hard to use

Now all the issues except Valgrind have been fixed, the reason is seems to be related to panic

Something weird... happen
this is fine
while this breaks!!
which is soo weird since the breaking commit is a contributor one

Great job! So maybe we should fix Valgrind before having a review?

The issues with Valgrind doesn't seem to be related to this PR, since it's broken since this commit https://github.com/fzyzcjy/flutter_rust_bridge/commit/2e01d4aec8a28dba89de02e0e2d06a2ccf771df3

Ok, then let me rerun it...

All the nits have been fixed.

Looks great! I will check soon

Related: https://github.com/fzyzcjy/flutter_rust_bridge/issues/1327

As mentioned there, the Valgrind issue blocks this PR from merging, but I am really busy and have to squeeze some time to review this PR, let alone time for fixing that. Do you have some interest in digging a bit further about that error :)

I'm also looking into this issue, I guess it's an environment change that caused the Valgrind test to fail, not directly related to these two PRs.

Totally agree, since the failing commit is completely unrelated

I'm also looking into this issue, I guess it's an environment change that caused the Valgrind test to fail, not directly related to these two PRs.

I guess so, because mine  also failed recently.

I would like to take the risk and firstly merge this PR, and then fix Valgrind later... Since our Valgrind does not check a lot currently (since even simplest hello world dart program triggers invalid memory access so that part is disabled)

@all-contributors please add @SiongSng for code

@all-contributors please add @JustSimplyKyle for code


Remove res.redirect(url, status) signature

Fixed the History.md mistake.

@tunniclm coverage has decreased by a fraction, otherwise looks good to me.

As mentioned in the other similar pull request (see https://github.com/expressjs/express/pull/2939#issuecomment-216882000), the slight reduction in coverage is due to the reduced number of lines in the changed file (response.js).

this is merged into the 5.0 branch now 🎉


Current problems with shader parameters

I know we've come a long way to the current structure of shader parameters. We've definitely got an interesting approach working, but now as the dust settles down I can see the problems to still be solved:

The existence of a hidden link structure for any parameter structure. It forces us to have a typedef for the batch types. It all works smooth but not straightforward to understand. We need it more streamlined. Even something like let batch: RefBatch<MyParam> = context.batch(...) would be much better.
ShaderParam::create_link is polymorphic in compile time. It is good for user-provided structures, because it allows to create a batch without having an instance of the parameter structure. However, it prevents efficient serializable formats for shader parameters (where we'd want run-time checks instead of compile-time).
User structures enforce types of simple uniforms in compile time, but the textures are completely unprotected. It would be best to have the compile-time enforcement of sorts there, if possible, or at least run-time checks at the place of parameter setup, and not during the draw call. Our calls should not fail!

When looking for the solutions, we've got to keep in mind the strong points of the current system, in order to avoid regression:

User structure is totally controlled by the user (we don't change it with an attribute).
Simple uniforms are compile-time enforced.

Need some heavy brains here! Summoning @bjz, @cmr, @csherratt, @sectopod, and @bvssvni

This is mostly resolved:

"hidden link structure" resolved by #507 and #509
"ShaderParam::create_link is polymorphic" - it is optional now (see the first parameter). When the user knows shader parameters in advance, we need compile-time binding. When he/she doesn't - we need run-time. Currently we support both.
"enforcing texture/samplers type binding" - moved into #311


Support multiple JWKs

Having support for multiple signing keys makes rotating keys easier (automatic fallback if one key cannot be accessed anymore). Worth investigating into if this is a good idea or not.

This is doable now with the IValidationKeys interface.


Sinks can filter percentiles

Sinks can filter out given percentiles if the user is not interested in them. This came up specifically in reference to the Librato backend.
For a user with a single sink, it might be nice to have this be a global statsite config option as well?
/cc @rcrowley

Closing, since I think it's agreed filtering can be done by chaining sinks.


Store error when no history is passed

I'm building an application with server side rendering and based on the docs I've seen in different PRs in this repo and other repos I haven't been able to get it to work. My store code is as follows:
import React from 'react';
import thunk from 'redux-thunk';
import { createHistory } from 'history'
import { createStore, applyMiddleware, compose } from 'redux';
import { reduxReactRouter } from 'redux-router';

import routes from './routes';
import reducer from './reducers';

function canUseDom() {
  return (typeof window !== 'undefined' && window.document && window.document.createElement);
}

export default function makeStore(initialState) {
  let router = null;
  if (canUseDom()) {
    router = reduxReactRouter({ routes, createHistory });
  } else {
    router = reduxReactRouter({ routes });
  }
  const createStoreWithMiddleware = compose(
    applyMiddleware(thunk),
    router
  )(createStore);

  return createStoreWithMiddleware(reducer, initialState);
}

Based on what I've read, it seemed OK to not pass the createHistory function to the reduxReactRouter function but when I try to make the store I get this error:
TypeError: object is not a function
    at /path/to/my/project/node_modules/react-router/node_modules/history/lib/useQueries.js:40:19
    at /path/to/my/project/node_modules/react-router/lib/useRoutes.js:63:67
    at /path/to/my/project/node_modules/redux-router/lib/reduxReactRouter.js:27:58
    at /path/to/my/project/node_modules/redux-router/lib/client.js:34:47
    at /path/to/my/project/node_modules/redux/lib/utils/applyMiddleware.js:39:19
    at /path/to/my/project/node_modules/redux-router/lib/routeReplacement.js:81:26
    at /path/to/my/project/node_modules/redux-router/lib/useDefaults.js:39:25
    at /path/to/my/project/node_modules/redux/lib/utils/applyMiddleware.js:39:19
    at makeStore (/path/to/my/project/src/static/js/store.js:40:10)
    at renderBlog (/path/to/my/project/etc/scripts/server.js:34:17)

I traced through the relevant libs (react-router, history) and it seems there is an issue with empty history being passed to those functions.
My question is, am I doing this wrong? Since it's a server side issue, I can't pass the createHistory function because no DOM exists. I know that the documentation is still being worked on but I was hoping to see if there was something I was missing.
The versions I'm using are:
  "dependencies": {
    "history": "^1.12.6",
    "react": "^0.14.0",
    "react-redux": "^4.0.0",
    "react-router": "^1.0.0-rc3",
    "redux": "^3.0.2",
    "redux-router": "^1.0.0-beta3",
    "redux-thunk": "^1.0.0"
  },

You need to include the right version of reduxReactRouter from redux-router/server. The documentation is still WIP but the release notes are actually quite good and can serve as documentation: https://github.com/rackt/redux-router/releases/tag/v1.0.0-beta2

Thanks @apapirovski! I actually didn't notice the release notes but that was the issue!


Obtaining Application list for APIM Store Analytics

Description:
When displaying APIM Store Analytics, the Application list should be obtained after filtering based on application sharing etc. Currently this can't be achieved using SiddhiDataProvider.

Fixed with https://github.com/wso2/carbon-dashboards/pull/1179


Can't update AWS account identifiers.  Also, SM should remove any hyphens in identifiers.

I kept getting the following error even though I checked my IAM role settings and was able to manually sts.assume_role() via boto3 from the ec2 instance.
ClientError: An error occurred (AccessDenied) when calling the AssumeRole operation: Not authorized to perform sts:AssumeRole
"""
2017-08-07 01:50:33,284 ERROR: Job "run_change_reporter (trigger: interval[1:00:00], next run at: 2017-08-07 02:50:31.875327)" raised an exception [in build/bdist.linux-x86_64/egg/apscheduler/scheduler.py:520]
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/apscheduler/scheduler.py", line 512, in _run_job
retval = job.func(*job.args, **job.kwargs)
File "/usr/local/src/security_monkey/security_monkey/scheduler.py", line 32, in run_change_reporter
reporter.run(account, interval)
File "/usr/local/src/security_monkey/security_monkey/reporter.py", line 56, in run
(items, exception_map) = monitor.watcher.slurp()
File "/usr/local/src/security_monkey/security_monkey/cloudaux_watcher.py", line 77, in slurp
regions=self._get_regions(), conn_type='dict')
File "/usr/local/src/security_monkey/security_monkey/cloudaux_watcher.py", line 38, in _get_regions
_, regions = get_regions(account, self.service_name)
File "/usr/local/src/security_monkey/security_monkey/decorators.py", line 168, in get_regions
role = sts.assume_role(RoleArn='arn:aws:iam::' + account.identifier + ':role/' + role_name, RoleSessionName='secmonkey')
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/botocore-1.5.92-py2.7.egg/botocore/client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/botocore-1.5.92-py2.7.egg/botocore/client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
ClientError: An error occurred (AccessDenied) when calling the AssumeRole operation: Not authorized to perform sts:AssumeRole
"""
decorators.py near line 170 has the following line
role = sts.assume_role(RoleArn='arn:aws:iam::' + account.identifier + ':role/' + role_name, RoleSessionName='secmonkey')
account.identifier in the database has the account with hyphens 'NNNN-NNNN-NNNN' instead of 'NNNNNNNNNNNN' so the sts.assume_role() will not properly work.
Not sure if something has changed recently where the DB insert for account.identifier includes the account id with hyphens.
I believe I added the AWS account through the WebUI and when I put in the accountid, it seems to reformat it to include the hyphens no matter what I try.
If I do a DB update to remove the hyphens, the sts:AssumeRole error goes away
`
-[ RECORD 39 ]--+-----------------------------------------------------------------------------------------------
id              | 1
active          | t
third_party     | f
name            | redacted
notes           |
account_type_id | 1
identifier      | NNNN-NNNN-NNNN
update account set identifier = 'NNNNNNNNNNN' where identifier = 'NNNN-NNNN-NNNN'
-[ RECORD 39 ]--+-----------------------------------------------------------------------------------------------
id              | 1
active          | t
third_party     | f
name            | redacted
notes           |
account_type_id | 1
identifier      | NNNNNNNNNNNN
`

AccountManager.update() doesn't currently allow you to update account identifiers.
Also, SM should strip hyphens in AWS account identifiers before saving to the DB.

Thanks for the explanation, was able to fix manually in the DB for my case.  I probably copy/pasted from Amazon Web UI the account identifier (which includes hyphens by default).

you should also add trimming to remove whitespaces around the account identifier input when saving to db on ui or cli.
The identifier for my aws account in the Account table had a leading space "<PHONE_NUMBER>00"

Solution allows each account type to decide how to sanitize their identifiers.
For AWS:
def sanitize_account_identifier(self, identifier):
    """AWS identifer sanitization will strip and remove any hyphens.

    Returns:
        stripped identifier with hyphens removed
    """
    return identifier.replace('-', '').strip()

Fixed in #784


Resolve transitive dependencies based on package.json

When the newly added resolveDependenciesFromPackageJson flag is set to true, ATA will resolve the versions of any transitive dependency according to the package.json file of the same module (unless any // types: comment is specified).

@microsoft-github-policy-service agree company="wix"

To be clear, is the intent here to ensure that all dependencies are loaded transitively?
Should this flag be set for the website? Should it be disabled at all?

@jakebailey The intent is to allow resolution of transitive (indirect) dependencies according to their module's package.json file. Before this change, any indirect dependency gets resolved to latest, since the only way to control versioning is via the // types: comment

@jakebailey Hi, is any additional explanation needed before a review?


Wrong screen in dual monitor configuration

The notification pops up in the first monitor, whether the main Stage is displayed in first or second screen.
(Ubuntu 16.04 + KDE)

Could you provide additional informations, such as some code chunks for the related part ?


Annoying timer overlay on top of all

Since today I have a timer overlay at the top left, which I can't move or disable (didn't found anything within the settngs).

It is not by design. Does this come back when you restart the app?

Yes, this is permanent, even after a restart. I also have this issue on two different PC's.

Windows 10
Toggle version: 7.3.199

I noticed that logging out from the app and logging in again "solved" this (at least on one the devices).

This looks like the hover-tooltip of the notification icon on the taskbar.
@scrobbleme:
If the little box visible, does anything happen if you hover on the Toggl Desktop icon (in the notification area / systray) for a few seconds?

@amulware No, nothing. The box doesn't seem to be there for the mouse. When I hover or click the event is propaged to the app behind the box.

So far I have not been able to reproduce this. It seems like it only happens under specific circumstances.

Closing this until we get more information that helps us reproduce it.

The bug is still present, though not sure how to reproduce it

I encountered this bug randomly after using Toggl Desktop for a few months.  I found this thread.  Clicking on the Toggl logo in the sys tray fixed it for me.  Windows 10.

thanks, @linnflux. It suddenly showed up for me this morning after using Toggl Desktop for a couple years. Your method fixed it for me, too. Also on Windows 10.

Thanks @linnflux. I can also confirm your fix works for my version of the latest version of Toggle(to date) on my Windows 10 computer as well


Modification for regression

is it possible to modify the code inside NN folder for regression? If yes, can you suggest the possible changes?

How did you do it? Please let us know before closing the thread.


Is the Rust client ready for use?

Hi,
I'm wondering if this crate is already ready for use.
There isn't any indicator in the README that this is "Work-In-Progress", but there isn't a usable version on crates.io either.
If the client isn't ready: Is there any estimate when it will be usable?
I'd love to give Nebula a try! :)

Dear @Shylock-Hg,
We are in the shape of changing license and pushing to crates(other than new version uplift work), or?
Thanks

Hello, d4h0. It's not ready now. @Sophie-Xie Do we have to plan to do this?

Hello, d4h0. It's not ready now. @Sophie-Xie Do we have to plan to do this?

Recently we have some other more important things to do, so have no plans now.

@Shylock-Hg how much effort is left for nebula-rust ready to use, please? It's only blocked by license issue or actually still missing quite some jobs to be done?

@Shylock-Hg how much effort is left for nebula-rust ready to use, please? It's only blocked by license issue or actually still missing quite some jobs to be done?

A lot of work to update to nebula now.

Thanks everybody, for the fast response!
Maybe a short notice at the top of the README would be useful to communicate the current state of the package? Because with Rust we can install packages directly from GitHub (similar to Go, I believe). This would prevent potential users from installing an unfinished Nebula client (which could lead to a bad experience for this potential user).

Thanks everybody, for the fast response!
Maybe a short notice at the top of the README would be useful to communicate the current state of the package? Because with Rust we can install packages directly from GitHub (similar to Go, I believe). This would prevent potential users from installing an unfinished Nebula client (which could lead to a bad experience for this potential user).

Yes, I will add.

Thank you, I think this issue can be closed now.


[gssoc'23] - Custom Javascript Cursor Scroll //GSAP

GSAP/JAVASCRIPT - Custom Cursor Effect on Hover  #1774
Description:

this is custom javascript cursor
anyone can use these for making their website look elegant!
you can use this as a navbar or make it interactive with GSAP

screenshot :

when the cursor in hovering,

when you move the cursor over the text,

Example,

https://github.com/pranjay-poddar/Dev-Geeks/assets/93252366/21390b71-2d9e-4d3f-aef3-31e15ced9aae
Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy-to-understand README.md

@animex007 please add screen recording for your changes in PR description so that it's easy for Reviewer to review the PR. Thanks!

changes done ! added a screenshot and animated gif for better reference

@animex007 please resolve conflicts also.

@animex007 please resolve conflicts also.

resolve the merge conflict, and also the done the changes!


Please provide an example of seenreq with node-crawler

The don't believe the docs are clear enough on how to integrate seenreq with node-crawler. Please provide at least a basic example of the two working in unison. skipDuplicates: true doesn't seem to be working either. It's very important for my use case to avoid duplicates, so it would be much appreciated.
Thank you.

skipDuplicates: true should work, any more detail?

Oh my bad, you're right. I just tested by writing everything to JSON and the reason why I was seeing duplicates is because I was console logging each link before adding them to the queue. So as a new link was scraped from the page, it was logged before going through skipDuplicates.
Here's my script so you can see what I mean.
var Crawler = require('crawler');
const fs = require('fs');

url = '{siteURL}'
pageCount = 0
mms = []

let date = new Date().toLocaleDateString().replace(/\//g, '-');

var c = new Crawler({
    maxConnections: 100,
    skipDuplicates: true,

    callback: function(error, res, done) {
        if (error) {
            console.log(error);
        } else {
            var $ = res.$;

            function scraping(){

                mmArray = []

                function names() {
                    $('.K').each(function(i, elem) {
                        let name = $(this).text()
                        //console.log(name);
                        mmArray.push(name)
                    })
                }

                arMM()
                function arMM(){
                    names()
                    let ar = mmArray[0]

                    mmOBJ = {
                        mm: ar,
                        ar1: mmArray.slice(1,mmArray.length)
                    }

                    // Optional save to JSONs
                    function saveFile(){
                        fs.writeFile(`D:/sw_lbi_app/backend/mm/memory/${ar.replace(/ /g,"_")}_mm_${date}.json`, JSON.stringify(mmOBJ), function(err) {
                            if(err)
                            return console.log(err);
                        });
                    }
                    saveFile()

                    mms.push(mmOBJ)
                }
            }

            crawling()
            function crawling(){

                if(pageCount !== 0){
                    scraping()
                }

                $('a').each(function(i, elem) {
                    let links = $(this).attr('href');

                    // Verifies URL
                    function isArLink(links) {
                        return !!links.match(/^(?!\/info\.php|https|info\.php|\/)[A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19!-#%-*,-/\:;?@\[-\]_\{\}\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65\u3041-\u3096\u309D-\u309F+]+/)
                    }

                    // Filters correct URL's
                    if(isArLink(links)) {
                        let ArLink = `${url}${links}`

                        // Here as seen below, newly scraped links are logged before queued.

                        console.log(`Loaded page: ${pageCount++} - ${ArLink} Status: ${res.statusCode}`)
                        c.queue(ArLink)
                    }
                });
            }
        }
        done();
        //console.log(mms)
        console.log(mms)
    }
});
c.queue(url);

How would I go about only logging the newly scraped url's if they are approved by skipDuplicates? Is there a way to create a callback for skipDuplicates notifying me weather the link was skipped or approved? That way I can log only what has been loaded.
Cheers!

Great! Duplicates are just ignored without callback as mentioned in the document. If you wanna more detail, handle it in your own code either with seenreq or just a Set .

Duplicates only cache per run right? It doesn't cache forever does it?

Maybe you miss something, it's supposed to work in process's lifetime because the Set is stored in memory. Every time you start your script it refreshes.

Yeah I believe it's a separate issue. Thanks for your help.


Task / Resource Handles

The issue
Coming from an FreeRTOS background, I am used to being able to pass Queue and task handles around such that none of the tasks need to know of the other tasks existance. I'd like to be able to do the same thing with RTFM.
An example scenario:
A Task offloads a HttpRequest to the HttpClient task by enqueing the request onto a queue that the HttpClient Task is listening to. The client performs the request but how does it pass the result back? The result could be a simple message to say it completed, or it could actually have data to return.
One option is having a queue on the Callee task that the client task can push the result onto, but how do we communicate to the client task which queue to send it back to?
I don't really have any strong thoughts on how to solve this (bar hardcoding values, which I am doing currently). I'm guessing there would be some sort of tagging system such that a tag or handle can resolve to a resource in a safe way.

Hi, sorry for letting this going missed.
To communicate between tasks you have 3 options:

Use spawn interface to move data
Use a resource to indicate the information
Redesign so that both just generates events for a handler task so the handler task has all the information needed to make the distinction

The main issue you are describing is having a runtime selection of resources it seems?
For this I'd probably make a macro which expands to a switch which gives the correct resource based on some condition and panic if none of the conditions fit.

This fell off my radar too, but thanks for getting back to me.

The main issue you are describing is having a runtime selection of resources it seems?

Pretty much, though I've come to realise this probably isn't feasible with rtfm as inherently it is a runtime check.
My current solution (which is quite similar to what you suggested) is to tag data with a source, which is just a enum of tasks (currently manually created), something like:
pub enum TaskList {
    Dns,
    HttpClient,
    // ...
}

The transaction of the http client looking up a domain name would go like this:

HttpClient creates dns request, tags source as TaskList::HttpClient
The request is given to the Dns task via any of the three methods you mentioned above, in my case a queue
The Dns task completes the request, upon doing so looks up source and runs a callback on the HttpClient resource.

This seems to work pretty nicely. What would be nice is if rtfm could create that task list for me.


Give us Subject

StreamController is a good replacement for javas PublishSubject. But there is no replacement for the BehaviorSubject in rxdart.
Or I'm to stupid to get the latest emitted item of a StreamController

Having Subjects would be nice, however I'm focusing more on getting the Observable side as feature complete as possible.
Not that it's of the table though, once Observables are fleshed out more it is the next logical step.

+1

In progress,
see https://github.com/frankpepermans/rxdart/blob/master/lib/src/subject

In progress. Closing this ticket in favor of more specific items.