Error compiling Python Bindings

Bug Description
When compiling Python Bindings, more specific _dictionary.cpp I get the following error:
/usr/lib/ccache/c++ -fPIC  -fopenmp -O3 -DNDEBUG -shared  -o _lib_text_dictionary.cpython-38-x86_64-linux-gnu.so CMakeFiles/_lib_text_dictionary.dir/bindings/python/flashlight/lib/text/_dictionary.cpp.o  -Wl,-rpath,/opt/intel/mkl/lib/intel64 -flto libfl-libraries.a /opt/intel/mkl/lib/intel64/libmkl_gf_lp64.so /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.so /opt/intel/mkl/lib/intel64/libmkl_core.so -liomp5 -lm -lfftw3 -lfftw3f -lfftw3l -lgomp -lpthread /opt/kenlm/lib/libkenlm.a /opt/kenlm/lib/libkenlm_util.a -llzma -lbz2 -lz libfl-libraries-cuda.a -pthread /usr/local/cuda/lib64/libcudart_static.a -ldl -lrt /usr/local/cuda/lib64/libcudart_static.a -ldl -lrt
/usr/bin/ld: libfl-libraries.a(Dictionary.cpp.o): relocation R_X86_64_PC32 against symbol `_ZNKSt5ctypeIcE8do_widenEc' can not be used when making a shared object; recompile with -fPIC

But the thing is I'm correctly passing -fPIC at the beginning of the line
This is my Cmake configuration
cmake .. -Wno-dev -DCMAKE_VERBOSE_MAKEFILE="ON" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="/opt/flashlight" -DINTEL_MKL_DIR="/opt/intel/mkl" -DFL_BUILD_TESTS="OFF" -DKENLM_LIB="/opt/kenlm/lib/libkenlm.a" -DKENLM_UTIL_LIB="/opt/kenlm/lib/libkenlm_util.a" -DKENLM_MODEL_HEADER="/opt/kenlm/include/lm/model.hh" -DWITH_TORCH="OFF" -DGloo_INCLUDE_DIR="/opt/gloo/include" -DGloo_NATIVE_LIBRARY="/opt/gloo/lib/libgloo.a" -DBUILD_TESTING="OFF" -DPYBIND11_PYTHON_VERSION:STRING="3.8" -DBUILD_TESTS="OFF" -DFL_LIBRARIES_BUILD_FOR_PYTHON="ON"

Platform and Hardware
OS: Ubuntu 20.04
Kernel: Linux LP-TBC 5.8.14-050814-generic
CUDA: release 11.1, V11.1.74
MKL: intel-mkl-64bit-2020.3-111 and intel-mkl-32bit-2020.3-111

are you installing with pip install (where in setup.py --fPIC is already added)?

No, I'm compiling the whole project and setting -DPYBIND11_PYTHON_VERSION:STRING="3.8" -DFL_LIBRARIES_BUILD_FOR_PYTHON="ON" as I mentioned above.
When doing:
cd bindings/python
pip install -e .

I have a CMakeError because it cannot find Kenlm. But when compiling the whole project with cmake I can pass all the necessary paths. I think it's better this way.
Also, I had no problem doing things this way with wav2letter branch v0.2

Could you try to install with pip install first, here you need to do export of kenlm path before calling the pip install  export KENLM_ROOT_DIR=/path/to/kenlm? I never tried to compile / install in a different way.

I got also an error.
➜ env KENLM_ROOT_DIR=~/Projects/kenlm pip install -e .
Obtaining file:///home/aalvarez/Projects/flashlight/bindings/python
Installing collected packages: flashlight
  Running setup.py develop for flashlight
    ERROR: Command errored out with exit status 1:
     command: /home/aalvarez/.virtualenvs/flashlight/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"'; __file__='"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
         cwd: /home/aalvarez/Projects/flashlight/bindings/python/
    Complete output (36 lines):
    running develop
    running egg_info
    writing flashlight.egg-info/PKG-INFO
    writing dependency_links to flashlight.egg-info/dependency_links.txt
    writing top-level names to flashlight.egg-info/top_level.txt
    reading manifest file 'flashlight.egg-info/SOURCES.txt'
    writing manifest file 'flashlight.egg-info/SOURCES.txt'
    running build_ext
    make: *** No targets specified and no makefile found.  Stop.
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 101, in <module>
        setup(
      File "/home/aalvarez/.virtualenvs/flashlight/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/aalvarez/.virtualenvs/flashlight/lib/python3.8/site-packages/setuptools/command/develop.py", line 38, in run
        self.install_for_development()
      File "/home/aalvarez/.virtualenvs/flashlight/lib/python3.8/site-packages/setuptools/command/develop.py", line 140, in install_for_development
        self.run_command('build_ext')
      File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 55, in run
        self.build_extensions()
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 96, in build_extensions
        subprocess.check_call(
      File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j4']' returned non-zero exit status 2.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/aalvarez/.virtualenvs/flashlight/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"'; __file__='"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.

let me try to redo installation, could you confirm that you are on the current master and you tried with clean folder (removed build dir in bindings/python and then run pip install)?

It seems that I had modified something, now doing pip install -e . it works.
flashlight/bindings/python
➜ mktmpenv
created virtual environment CPython3.8.5.final.0-64 in 106ms
  creator CPython3Posix(dest=/home/aalvarez/.virtualenvs/tmp-5acf283951a8b55, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/aalvarez/.local/share/virtualenv)
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/preactivate
virtualenvwrapper.user_scripts creating /home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/postactivate
virtualenvwrapper.user_scripts creating /home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/get_env_details
This is a temporary environment. It will be deleted when you run 'deactivate'.

~/.virtualenvs/tmp-5acf283951a8b55 via tmp-5acf283951a8b55
➜ pip install packaging torch soundfile
Collecting packaging
  Using cached packaging-20.4-py2.py3-none-any.whl (37 kB)
Collecting torch
  Using cached torch-1.6.0-cp38-cp38-manylinux1_x86_64.whl (748.8 MB)
Collecting soundfile
  Using cached SoundFile-0.10.3.post1-py2.py3-none-any.whl (21 kB)
Collecting six
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting pyparsing>=2.0.2
  Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting numpy
  Using cached numpy-1.19.2-cp38-cp38-manylinux2010_x86_64.whl (14.5 MB)
Processing /home/aalvarez/.cache/pip/wheels/8e/70/28/3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4/future-0.18.2-py3-none-any.whl
Collecting cffi>=1.0
  Using cached cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl (410 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Installing collected packages: six, pyparsing, packaging, numpy, future, torch, pycparser, cffi, soundfile
Successfully installed cffi-1.14.3 future-0.18.2 numpy-1.19.2 packaging-20.4 pycparser-2.20 pyparsing-2.4.7 six-1.15.0 soundfile-0.10.3.post1 torch-1.6.0
WARNING: You are using pip version 20.2.3; however, version 20.2.4 is available.
You should consider upgrading via the '/home/aalvarez/.virtualenvs/tmp-5acf283951a8b55/bin/python -m pip install --upgrade pip' command.

~ via tmp-5acf283951a8b55
➜ cd Projects/flashlight/bindings/python

flashlight/bindings/python on  update-Docker-images [?] via tmp-5acf283951a8b55
➜ env KENLM_ROOT_DIR=~/Projects/kenlm pip install -e .
Obtaining file:///home/aalvarez/Projects/flashlight/bindings/python
Installing collected packages: flashlight
  Running setup.py develop for flashlight
Successfully installed flashlight

Although, I still have the error when compiling everything from the root folder with cmake as I said here

Also, I tried to install it using poetry and pipenv and failed in both cases.
~/Projects/test
➜ cat pyproject.toml
[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = ["Alejandro Alvarez"]

[tool.poetry.dependencies]
python = "^3.8"
packaging = "^20.4"
torch = "^1.6.0"
flashlight = {path = "/home/aalvarez/Projects/flashlight/bindings/python", develop = true}

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

~/Projects/test
➜ env KENLM_ROOT_DIR=~/Projects/kenlm poetry install --no-root
Creating virtualenv test-epHziXfH-py3.8 in /home/aalvarez/.virtualenvs
Updating dependencies
Resolving dependencies... (2.2s)

  PackageInfoError

  Unable to determine package info for path: /home/aalvarez/Projects/flashlight/bindings/python

  Fallback egg_info generation failed.

  Command ['/tmp/tmpiii3t4zz/.venv/bin/python', 'setup.py', 'egg_info'] errored with the following return code 1, and output:
  Traceback (most recent call last):
    File "setup.py", line 15, in <module>
      from packaging import version
  ModuleNotFoundError: No module named 'packaging'

  at ~/.poetry/lib/poetry/inspection/info.py:497 in _pep517_metadata
      493│                 try:
      494│                     venv.run("python", "setup.py", "egg_info")
      495│                     return cls.from_metadata(path)
      496│                 except EnvCommandError as fbe:
    → 497│                     raise PackageInfoError(
      498│                         path, "Fallback egg_info generation failed.", fbe
      499│                     )
      500│                 finally:
      501│                     os.chdir(cwd.as_posix())

I'm not an expert in python packaging and even less with python bindings. But it seems that the problem is that packaging should be specified as a build-system requirement and also using setup.py seems to be the old way of configuring it.

any updates on this?

Hey, sorry, had no time yet for that (at least you was able to install, so you are not blocked in usage, I guess).
About packaging - Yep, agree, pip and pypi is common case of distributing the python packages. However, it is more for pythonic libs where you don't have c++ for example under it. Pip is only copying files into right place, nothing more (as far as I know). So either you do all build on your own and then pip install only python files from pypi (I guess this is doable, but need to recheck) or you pack all in setup.py so not advanced users can run setup.py. Will try to look into it more to find better solution. Does this make sense for you?

Since PR #266 I've been experimenting the same problem I first posted here, but now also installing with pipi like:
env MKLROOT=/opt/intel/mkl KENLM_ROOT=~/Projects/kenlm pip install -e .

The key is here:
/usr/bin/ld: libfl-libraries.a(ForceAlignmentCriterion.cu.o): relocation R_X86_64_PC32 against symbol `_ZN89_GLOBAL__N__58_tmpxft_000af7b9_00000000_7_ForceAlignmentCriterion_cpp1_ii_f01b1c2e_71878613forwardKernelIfEEviiiPKT_PKiS5_S3_PS1_NS_13WorkspacePtrsIS1_EE' can not be used when making a shared object; recompile with -fPIC

From gcc output and this post I believed that the libraries should be compiled as shared, or we should use -fPIC as option when compiling (don't know exactly what fl-libraries or ForceAlignmentCriterion.cu).
Output
➜ env MKLROOT=/opt/intel/mkl KENLM_ROOT=~/Projects/kenlm pip install -e .
Obtaining file:///home/aalvarez/Projects/flashlight/bindings/python
Installing collected packages: flashlight
  Running setup.py develop for flashlight
    ERROR: Command errored out with exit status 1:
     command: /home/aalvarez/.virtualenvs/wav2vec_training/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"'; __file__='"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
         cwd: /home/aalvarez/Projects/flashlight/bindings/python/
    Complete output (296 lines):
    running develop
    running egg_info
    creating flashlight.egg-info
    writing flashlight.egg-info/PKG-INFO
    writing dependency_links to flashlight.egg-info/dependency_links.txt
    writing top-level names to flashlight.egg-info/top_level.txt
    writing manifest file 'flashlight.egg-info/SOURCES.txt'
    reading manifest file 'flashlight.egg-info/SOURCES.txt'
    writing manifest file 'flashlight.egg-info/SOURCES.txt'
    running build_ext
    -- The CXX compiler identification is GNU 9.3.0
    -- The C compiler identification is GNU 9.3.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/g++-9 - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/gcc-9 - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) (Required is at least version "1.10.0")
    -- googletest not found - will download and build from source
    -- Will build flashlight libraries.
    -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
    -- Checking for module 'cblas'
    --   No package 'cblas' found
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Check size of void*
    -- Check size of void* - done
    -- Checking for [Accelerate]
    -- Checking for [vecLib]
    -- Checking for [cblas - atlas]
    -- Includes found
    -- Looking for cblas_dgemm
    -- Looking for cblas_dgemm - found
    -- CBLAS Symbols FOUND
    -- CBLAS library found
    -- CBLAS found (include: /usr/include/x86_64-linux-gnu, library: /usr/lib/x86_64-linux-gnu/libcblas.so;/usr/lib/x86_64-linux-gnu/libatlas.so)
    -- Could NOT find FFTW3 (missing: FFTW3_DIR)
    -- FindFFTW using pkgconfig: FOUND=1 LIBRARIES=fftw3 LIBRARY_DIRS= LIBDIR=/usr/lib/x86_64-linux-gnu LINK_LIBRARIES=/usr/lib/x86_64-linux-gnu/libfftw3.so
    -- FindFTTW using pkgconfig: INCLUDE_DIRS= INCLUDEDIR=/usr/include
    -- Found FFTW3: /usr/include
    -- FFTW found
    -- Found OpenMP_C: -fopenmp (found version "4.5")
    -- Found OpenMP_CXX: -fopenmp (found version "4.5")
    -- Found OpenMP: TRUE (found version "4.5")
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
    -- Check if compiler accepts -pthread
    -- Check if compiler accepts -pthread - yes
    -- Found Threads: TRUE
    -- Looking for KenLM
    -- Using kenlm library found in /home/aalvarez/Projects/kenlm/build/lib/libkenlm.a
    -- Using kenlm utils library found in /home/aalvarez/Projects/kenlm/build/lib/libkenlm_util.a
    -- kenlm model.hh found in /home/aalvarez/Projects/kenlm/lm/model.hh
    -- Found kenlm: /home/aalvarez/Projects/kenlm
    -- Found kenlm (include: /home/aalvarez/Projects/kenlm, library: /home/aalvarez/Projects/kenlm/build/lib/libkenlm.a;/home/aalvarez/Projects/kenlm/build/lib/libkenlm_util.a)
    -- Looking for lzma_auto_decoder in /usr/lib/x86_64-linux-gnu/liblzma.so
    -- Looking for lzma_auto_decoder in /usr/lib/x86_64-linux-gnu/liblzma.so - found
    -- Looking for lzma_easy_encoder in /usr/lib/x86_64-linux-gnu/liblzma.so
    -- Looking for lzma_easy_encoder in /usr/lib/x86_64-linux-gnu/liblzma.so - found
    -- Looking for lzma_lzma_preset in /usr/lib/x86_64-linux-gnu/liblzma.so
    -- Looking for lzma_lzma_preset in /usr/lib/x86_64-linux-gnu/liblzma.so - found
    -- Found LibLZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.4")
    -- Found BZip2: /usr/lib/x86_64-linux-gnu/libbz2.so (found version "1.0.8")
    -- Looking for BZ2_bzCompressInit
    -- Looking for BZ2_bzCompressInit - found
    -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
    -- The CUDA compiler identification is NVIDIA 11.1.105
    -- Detecting CUDA compiler ABI info
    -- Detecting CUDA compiler ABI info - done
    -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
    -- Detecting CUDA compile features
    -- Detecting CUDA compile features - done
    -- CUDA found (library: /usr/local/cuda/lib64/libcudart_static.a;Threads::Threads;dl;/usr/lib/x86_64-linux-gnu/librt.so include: /usr/local/cuda/include)
    -- CUDA architecture flags: -gencodearch=compute_35,code=sm_35-gencodearch=compute_50,code=sm_50-gencodearch=compute_52,code=sm_52-gencodearch=compute_60,code=sm_60-gencodearch=compute_61,code=sm_61-gencodearch=compute_70,code=sm_70-gencodearch=compute_75,code=sm_75-gencodearch=compute_80,code=sm_80-gencodearch=compute_80,code=compute_80
    -- Found PythonInterp: /home/aalvarez/.virtualenvs/wav2vec_training/bin/python (found version "3.8.5")
    -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.8.so
    -- Performing Test HAS_FLTO
    -- Performing Test HAS_FLTO - Success
    -- LTO enabled
    -- Configuring done
    CMake Warning (dev) in CMakeLists.txt:
      Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC,
      empty CUDA_ARCHITECTURES not allowed.  Run "cmake --help-policy CMP0104"
      for policy details.  Use the cmake_policy command to set the policy and
      suppress this warning.

      CUDA_ARCHITECTURES is empty for target "fl-libraries".
    This warning is for project developers.  Use -Wno-dev to suppress it.

    -- Generating done
    -- Build files have been written to: /home/aalvarez/Projects/flashlight/bindings/python/build/temp.linux-x86_64-3.8
    Scanning dependencies of target pybind11
    Scanning dependencies of target gtest
    [  1%] Creating directories for 'pybind11'
    [  2%] Creating directories for 'gtest'
    Scanning dependencies of target fl-libraries
    [  3%] Performing download step (git clone) for 'pybind11'
    [  4%] Performing download step (git clone) for 'gtest'
    [  5%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cpu/CriterionUtils.cpp.o
    [  7%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cpu/ForceAlignmentCriterion.cpp.o
    Cloning into 'pybind11'...

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by switching back to a branch.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -c with the switch command. Example:

      git switch -c <new-branch-name>

    Or undo this operation with:

      git switch -

    Turn off this advice by setting config variable advice.detachedHead to false

    HEAD is now at 9a19306 bump version to 2.2.4
    Submodule 'tools/clang' (https://github.com/wjakob/clang-cindex-python3) registered for path 'tools/clang'
    Cloning into '/home/aalvarez/Projects/flashlight/bindings/python/build/temp.linux-x86_64-3.8/pybind11/src/pybind11/tools/clang'...
    [ 22%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/audio/feature/TriFilterbank.cpp.o
    [ 23%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/audio/feature/Windowing.cpp.o
    [ 24%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/common/String.cpp.o
    [ 25%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/common/System.cpp.o
    [ 27%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/lm/ConvLM.cpp.o
    Note: switching to '703bd9caab50b139428cea1aaff9974ebee5742e'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by switching back to a branch.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -c with the switch command. Example:

      git switch -c <new-branch-name>

    Or undo this operation with:

      git switch -

    Turn off this advice by setting config variable advice.detachedHead to false

    HEAD is now at 703bd9ca Googletest export
    Submodule path 'tools/clang': checked out '6a00cbc4a9b8e68b71caf7f774b3f9c753ae84d5'
    [ 28%] Performing update step for 'gtest'
    [ 29%] Performing update step for 'pybind11'
    [ 30%] No patch step for 'pybind11'
    [ 31%] No patch step for 'gtest'
    [ 32%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/lm/ZeroLM.cpp.o
    [ 34%] No configure step for 'pybind11'
    [ 35%] Performing configure step for 'gtest'
    loading initial cache file /home/aalvarez/Projects/flashlight/bindings/python/build/temp.linux-x86_64-3.8/googletest/tmp/gtest-cache-Release.cmake
    [ 36%] No build step for 'pybind11'
    [ 37%] No install step for 'pybind11'
    [ 38%] Completed 'pybind11'
    [ 38%] Built target pybind11
    [ 40%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/lm/KenLM.cpp.o
    -- The C compiler identification is GNU 9.3.0
    -- The CXX compiler identification is GNU 9.3.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/gcc-9 - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/g++-9 - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    [ 41%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/LexiconDecoder.cpp.o
    -- Found PythonInterp: /home/aalvarez/.virtualenvs/wav2vec_training/bin/python (found version "3.8.5")
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    [ 42%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/LexiconFreeDecoder.cpp.o
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    [ 43%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/LexiconSeq2SeqDecoder.cpp.o
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/aalvarez/Projects/flashlight/bindings/python/build/temp.linux-x86_64-3.8/googletest/src/gtest
    [ 44%] Performing build step for 'gtest'
    make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
    Scanning dependencies of target gtest
    [ 12%] Building CXX object googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
    [ 45%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/LexiconFreeSeq2SeqDecoder.cpp.o
    [ 47%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/Trie.cpp.o
    [ 48%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/decoder/Utils.cpp.o
    [ 49%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/dictionary/Utils.cpp.o
    [ 50%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/dictionary/Dictionary.cpp.o
    [ 51%] Building CXX object CMakeFiles/fl-libraries.dir/flashlight/lib/text/tokenizer/Tokenizer.cpp.o
    [ 52%] Building CUDA object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cuda/CriterionUtils.cu.o
    [ 54%] Building CUDA object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cuda/ForceAlignmentCriterion.cu.o
    [ 55%] Building CUDA object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cuda/FullConnectionCriterion.cu.o
    [ 56%] Building CUDA object CMakeFiles/fl-libraries.dir/flashlight/lib/sequence/criterion/cuda/ViterbiPath.cu.o
    [ 57%] Linking CXX static library libfl-libraries.a
    [ 57%] Built target fl-libraries
    Scanning dependencies of target _lib_text_dictionary
    Scanning dependencies of target _lib_audio_feature
    Scanning dependencies of target _lib_sequence_criterion
    [ 58%] Building CXX object CMakeFiles/_lib_text_dictionary.dir/bindings/python/flashlight/lib/text/_dictionary.cpp.o
    [ 60%] Building CXX object CMakeFiles/_lib_audio_feature.dir/bindings/python/flashlight/lib/audio/_feature.cpp.o
    [ 61%] Building CXX object CMakeFiles/_lib_sequence_criterion.dir/bindings/python/flashlight/lib/sequence/_criterion.cpp.o
    [ 25%] Linking CXX static library ../lib/libgtest.a
    [ 25%] Built target gtest
    Scanning dependencies of target gmock
    [ 37%] Building CXX object googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
    [ 62%] Linking CXX shared module ../../flashlight/_lib_text_dictionary.cpython-38-x86_64-linux-gnu.so
    [ 50%] Linking CXX static library ../lib/libgmock.a
    [ 50%] Built target gmock
    Scanning dependencies of target gmock_main
    [ 62%] Building CXX object googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
    [ 63%] Linking CXX shared module ../../flashlight/_lib_sequence_criterion.cpython-38-x86_64-linux-gnu.so
    [ 75%] Linking CXX static library ../lib/libgmock_main.a
    [ 75%] Built target gmock_main
    Scanning dependencies of target gtest_main
    [ 87%] Building CXX object googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
    [100%] Linking CXX static library ../lib/libgtest_main.a
    [100%] Built target gtest_main
    [ 64%] No install step for 'gtest'
    [ 65%] Completed 'gtest'
    [ 65%] Built target gtest
    Scanning dependencies of target _lib_text_decoder
    [ 67%] Building CXX object CMakeFiles/_lib_text_decoder.dir/bindings/python/flashlight/lib/text/_decoder.cpp.o
    [ 68%] Linking CXX shared module ../../flashlight/_lib_audio_feature.cpython-38-x86_64-linux-gnu.so
    [ 68%] Built target _lib_text_dictionary
    Scanning dependencies of target CeplifterTest
    [ 69%] Building CXX object flashlight/lib/test/CMakeFiles/CeplifterTest.dir/audio/feature/CeplifterTest.cpp.o
    /usr/bin/ld: libfl-libraries.a(ForceAlignmentCriterion.cu.o): relocation R_X86_64_PC32 against symbol `_ZN89_GLOBAL__N__58_tmpxft_000af7b9_00000000_7_ForceAlignmentCriterion_cpp1_ii_f01b1c2e_71878613forwardKernelIfEEviiiPKT_PKiS5_S3_PS1_NS_13WorkspacePtrsIS1_EE' can not be used when making a shared object; recompile with -fPIC
    /usr/bin/ld: final link failed: bad value
    collect2: error: ld returned 1 exit status
    make[2]: *** [CMakeFiles/_lib_sequence_criterion.dir/build.make:114: ../../flashlight/_lib_sequence_criterion.cpython-38-x86_64-linux-gnu.so] Error 1
    make[1]: *** [CMakeFiles/Makefile2:236: CMakeFiles/_lib_sequence_criterion.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 70%] Linking CXX executable CeplifterTest
    [ 70%] Built target CeplifterTest
    [ 70%] Built target _lib_audio_feature
    [ 71%] Linking CXX shared module ../../flashlight/_lib_text_decoder.cpython-38-x86_64-linux-gnu.so
    [ 71%] Built target _lib_text_decoder
    make: *** [Makefile:160: all] Error 2
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 102, in <module>
        setup(
      File "/home/aalvarez/.virtualenvs/wav2vec_training/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/aalvarez/.virtualenvs/wav2vec_training/lib/python3.8/site-packages/setuptools/command/develop.py", line 34, in run
        self.install_for_development()
      File "/home/aalvarez/.virtualenvs/wav2vec_training/lib/python3.8/site-packages/setuptools/command/develop.py", line 136, in install_for_development
        self.run_command('build_ext')
      File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 55, in run
        self.build_extensions()
      File "/home/aalvarez/Projects/flashlight/bindings/python/setup.py", line 97, in build_extensions
        subprocess.check_call(
      File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j4']' returned non-zero exit status 2.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/aalvarez/.virtualenvs/wav2vec_training/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"'; __file__='"'"'/home/aalvarez/Projects/flashlight/bindings/python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.

Temporary Fix
This was easily solved by passing to cmake CMAKE_POSITION_INDEPENDENT_CODE=TRUE
In my case:
cmake -B build -S . -Wno-dev -DCMAKE_VERBOSE_MAKEFILE="TRUE" -DCMAKE_BUILD_TYPE="Release" -DFL_BACKEND="CUDA" -DINTEL_MKL_DIR="/opt/intel/mkl" -DFL_BUILD_TESTS="ON" -DKENLM_ROOT="/opt/kenlm" -DGloo_INCLUDE_DIR="/opt/gloo/include" -DGloo_NATIVE_LIBRARY="/opt/gloo/lib/libgloo.a" -DFL_LIBRARIES_BUILD_FOR_PYTHON="ON" -DPYBIND11_PYTHON_VERSION="3.8" -DCMAKE_POSITION_INDEPENDENT_CODE="ON" && \
cmake --build build -j`nproc`

Although, this should be the default for shared libraries as stated here.
So, I think you should check how is fl-libraries being created.

@alealv — thanks for posting that fix - we'll make sure that that's the default when building those shared libs - I think that's the behavior that CMake has anyways when BUILD_SHARED_LIBS=ON, so it's odd that there were still issues. Seems like this is working in master either way.


Fix FUNDING.yml GitHub line

I suspect the GitHub line was left commented out unintentionally. As a result, the Sponsor button is shown on the repo, however, using it results in GitHub giving back an error:
The FUNDING.yml file does not currently contain valid funding links.
Learn more about formatting FUNDING.yml.

Thanks @Addvilz!

@scottdejonge have you applied to GitHub sponsor program though? Because now that this is merged, the button shows a different error, and I suspect that's the reason.
https://github.com/sponsors


Upgraded bugsnag and sprockets gems.

Upgraded bugsnag and sprockets gems.
Fixed #89 and #90.
Also following were fixed by previous PRs: #82, #83, #86.

Thanks @jasnow


Where to find aamConfig address?

Can you tell me where I can find the aamConfig address, please?

It would be nice to have an example of how to programmatically interact with this program.

It would be nice to have an example of how to programmatically interact with this program.

You can refer to: https://github.com/raydium-io/raydium-cpi-example/tree/master


Documentation

Kindly provide the documentation link to use this code. because authorization steps make confuse, and parameters to pass in example.php file

sorry i think this is not issue. i mistakenly post this in issue comment.


Fix message filtering

Use something better than similarity.js (deletes "discord")
Fix vuln where message edits are tolerated

#113 fixes the first part

now it fixes both

Resolved by #113. Thanks @HordLawk !


bump k8s.io to 1.24.15 and replace boskos client

add context. Context
replace boskos client in test-infra with sigs.k8s.io/boskos
bump k8s.io to 1.24.15

related: #761

/assign @vteratipally

add context. Context
Any specific reason for splitting the context

because context is required in new k8s client

Can we split this PR into 2 or more? Adding context can be done before upgrading dependencies. And I think we can do the same with the Boskos client (correct me if I'm wrong on this one).

Can we split this PR into 2 or more? Adding context can be done before upgrading dependencies. And I think we can do the same with the Boskos client (correct me if I'm wrong on this one).

Yes,  I agree with Mike. It will be clear if we split the PR in two parts.

I've opened two pr. And I will bump the dependencies after these two pr has been merged.
Could you please take a look? Thanks! @mmiranda96 @vteratipally


feat(ContactUs): add contact us module (DEV-682)

resolves DEV-682

It might be beneficial to have the footer as one footer.view. Atm there is no footer as such. There is a DaschCopyright.view, a ContactUs.view and a Licencing.view. I would rather have none of these but instead one Footer.view. If the sub modules need to be there as submodules (which I don't think so), I still prefer to have one Footer.view combining them. There is no such thing as a footer atm, there is a div in the playground combining views to build a footer, i.e. one possible footer. What if we need to change classes/css? It would be nice to have it defined in one footer module rather than everywhere the footer will be used. What do you think?

Yes this is what I had in mind, once all of these module are merged, I'll make a Footer module. That's the "story" I'm working towards. I can make another subtask for the main Footer.

ok, nice.


Initialize window_hints to fix minimum size setting in release mode

When compiling in release mode for linux, the window size constraints (ie. setMinimumSize) weren't being enforced.
This happened because the window_hints variable was not initialized and contained garbage data (while it was zero in debug mode).

LGTM


fix(CollectionRepeat): remove the +1px added to each item height. fixes #3349

Thanks. That was deliberately put in to fix other issues. If it's causing a problem for you, I think a more elaborate solution is in order. Lets continue the discussion on #3349 to come up with a proper fix.


PowerToys Run - Unable to find applications installed through chocolatey

Environment
0.18.1
PowerToys Run
Steps to reproduce
Install an application through chocolatey (cmder is shown)
Expected behavior
When searching cmder in the run dialog it appears in the list
Actual behavior
Does not appear in list of applications
Screenshots
Showing 3 different run methods

Win key and searching
Keypiranha
PowerToys run

I'm not sure if this should be a separate issue, but under v.0.18 I could find an executable on my D: drive after adding that drive to Indexing Options. After the v.0.18.1 update I can no longer find executables that are not on the C: drive.

and #3425 for steam

@samwdp, since cmder is a run command, we need to enter the action keyword to search for it which is > cmder. However, if there is any other application installed using choco which you are unable to find please let us know. Also, right now PowerToys Run does not index applications which are installed while it is running in the background, it indexes it at constant intervals and at startup, so for it to show immediately up you might have to restart PT run.

going to track this inside #4200 as the main issue.


Natural language queries exhibit unexpected behavior when processing Chinese text.

Describe the bug
Currently, when using the natural language query feature, it works well in an English environment. For example, with a query like "(Who is Obama) OR (good boy)", Tantivy parses it into a BooleanQuery, with each subquery composed using TermQuery:
BooleanQuery {
    subqueries: [
        (Should, BooleanQuery {
            subqueries: [
                (Should, TermQuery(Term(field=1, type=Str, "who"))),
                (Should, TermQuery(Term(field=1, type=Str, "is"))),
                (Should, TermQuery(Term(field=1, type=Str, "obama")))
            ]
        }),
        (Should, BooleanQuery {
            subqueries: [
                (Should, TermQuery(Term(field=1, type=Str, "good"))),
                (Should, TermQuery(Term(field=1, type=Str, "boy")))
            ] })
    ]
}

This looks quite reasonable. However, in a Chinese language environment, unexpected behavior occurs. For example, when parsing the query "(Who is Obama) OR 伊文斯隐瞒秘密", Tantivy interprets the Chinese part as a PhraseQuery:
BooleanQuery {
    subqueries: [
        (Should, BooleanQuery {
            subqueries: [
                (Should, TermQuery(Term(field=1, type=Str, "who"))),
                (Should, TermQuery(Term(field=1, type=Str, "is"))),
                (Should, TermQuery(Term(field=1, type=Str, "obama")))
            ]
        }),
        (Should, PhraseQuery {
             field: Field(1), phrase_terms: [
                 (0, Term(field=1, type=Str, "伊文")),
                 (1, Term(field=1, type=Str, "伊文斯")),
                 (2, Term(field=1, type=Str, "隐瞒")),
                 (3, Term(field=1, type=Str, "秘密"))], slop: 0
         })
] }

This behavior differs from what we expect. When parsing Chinese, we expect it to also use Should to combine each individual tokens, as demonstrated below in our expected behavior.
BooleanQuery {
    subqueries: [
        (Should, BooleanQuery {
            subqueries: [
                (Should, TermQuery(Term(field=1, type=Str, "who"))),
                (Should, TermQuery(Term(field=1, type=Str, "is"))),
                (Should, TermQuery(Term(field=1, type=Str, "obama")))
            ]
        }),
        (Should, BooleanQuery {
             subqueries: [
                (Should, TermQuery(Term(field=1, type=Str, "伊文"))),
                (Should, TermQuery(Term(field=1, type=Str, "伊文斯"))),
                (Should, TermQuery(Term(field=1, type=Str, "隐瞒"))),
                (Should, TermQuery(Term(field=1, type=Str, "秘密")))
             ]
         })
] }

Which version of tantivy are you using?
Our tantivy-search is based with Tantivy 0.21.1 version.
To Reproduce
In the current Tantivy code, Tantivy may not support Chinese tokenizers. When using the default tokenizer, it treats "伊文斯隐瞒秘密" as a single token. We have integrated the Cang-jie and ICU tokenizers into tantivy-search, which can properly tokenize Chinese text.
To reproduce the abnormal parsing behavior of natural language queries for Chinese, you may need to first integrate a simple Cang-jie tokenizer into Tantivy. Then, use the following code to recreate the scenario:
  let sentence = "(Who is Obama) OR 伊文斯隐瞒秘密";
  let text_query: Box<dyn Query> = parser.parse_query(sentence).unwrap();
  println!("{:?}", text_query);

Is it possible to consider adding a new subquery type (such as a TermsQuery) to LogicalLiteral and introducing a special character in the natural language query to represent special languages (such as Chinese, Japanese, etc.)? Currently, these are the only potential solutions I can think of.

I think the core issue is here that e.g. a query for <IP_ADDRESS> with the default tokenizer would produce the tokens[127,0,0,1]. To handle this use case, the query should be converted to a phrase query. The are other use cases like UUID. Ideally this would be handled already properly by the tokenizer.
Not sure if we should have some flags on the queryparser, config on the field, character detection, or something else to control that behaviour.


Added Pixelfed, Tusky, and other icons

Description

Added icon for Pixelfed and Tusky.
Type of change

:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)

Icons addition information

Icons added

Pixelfed (com.pixelfed) - added from icon request form
Tusky (com.keylesspalace.tusky) - added from icon request form
Hue (com.philips.lighting.hue2) - added from icon request form
Parcel Pending (com.parcelpendingmobile.app) - added from icon request form
TubeLab (app.fedilab.tubelab) - added from icon request form
Etsy Seller (com.etsy.butter.sell_on_etsy) - added from icon request form
Libretrack (org.proninyaroslav.libretrack) - added from icon request form
Nextcloud Talk (com.nextcloud.talk2) - added from icon request form
Floatplane (com.floatplane.floatplane) - added from icon request form

This is my first pull request (and first attempt at an SVG icon), so please be easy on me! :)

Hey! Thanks for contributing. Unfortunately there'll have to be a few changes:
* `appfilter.xml` links should be in alphabetical order. I recommend using icontool.py. There's no guide for it yet but you can add an icon SVG and link like this:
  `python3 icontool.py -s /path/to/icon.svg -c com.app.app/com.app.app.appActivity -n "App Name"`.

* The icon canvas is too large. It should be 192x192. Currently its 725x725 (or at least it is when exporting).

* Some icons could also have more rounded corners present. I'll show some example now with circle where it could be rounded

- `pixelfed.svg` has the correct canvas size however the icon doesn't fit the content area size and a little bit of the inside part seems to be sticking out.

I'll review more icons after all of them have the 192x192 content area size since some things may look a little different then.
Also mind me asking how the tusky.svg icon was made? There is 2 paths. Kinda inner and out. I've noticed many people do it. Do you draw 2 lines or is it exported like that? The problem with it is that although the stroke is set to 8, it will be a little thicker due to there being 2 lines beside each other with an approximate difference of 1px making it around 9px thickness.

Hey there! Thank you so much for the feedback!
The sizing issue was due to inkscape- it defaults to mm instead of px so I had it set to 192 mm by accident! That's been fixed now :)
I also went through and smoothed out angles in each of the icons but let me know if there are any that can still be improved! I fixed the sizing on the Pixelfed icon as well, and the icontool was very very helpful!
For Tusky, I used the Inkscape edge trace feature, that seems to be what leaves the dual lines. I've gone ahead and fixed it manually :D

Made some additional corrections after going through them :)

Thanks for making the changes. Most icons look fine but they all are a bit smaller than the 160x160px content area size. So you'll need to size them up

floatplane.svgs icon seems a little wonky. Could you make it a perfect circle. Seems small but I can see it on the github preview too
Some corners/edges on libretack are a bit wonky too. Not sure how you made this but I would put guidelines where I would place a point and then just make the path and make the corners rounded. If the corners are not rounded enough, then I would round it manually with the round tool thing (not sure what the exact name for it is but I also use Illustrator so it could be called different)
parcelpending.svg and tubelab.svg still have the wrong canvas size.
Two more things I should've mentioned previously
* Lawnicons only using two stroke sizes that shouldn't be change in width for each own path. In `tubelab.svg` I noticed that it kinda comes out and in sometimes. Though it is how the original icon looks, unfortunately it doesn't fit the lawnicons guidelines. If I'm not wrong, tubelab icon circle doesn't seem to be a perfect circle so maybe you could just have that?

* the `hue.svg` icon has a very thin stroke. It should be 8px or 12px. If you'd like a smaller stroke for the philips text you can use 6px. Try minimally rounded the corners for the philips text too.

Sorry for so many changes. Standards need to be kept the same or else the overall quality of icons will get worse...

That's ok!! It helps me get better :) Try these and see if they work better!

I fixed some icons up but theres some icons here that I just won't be able to fix up quickly. (Good rework on the hue.svg icon)
pixelfed.svg has a line that is wonky.
parcel_pending.svg stroke is too small... Not sure how to really change it to look good with 8px but maybe the squares can be smaller?
libretrack.svg is still a bit wobbly in some parts? I suppose I could do it myself when I have time if you think it may be too difficult.

I think I got them this time! :) (And thank you, I figured the bulb works a lot better anyway XP)

Added two more icons but I think these ones should both be pretty good- they're fairly simple


Add VIBSO:0000017 (total integration time setting)

This PR adds the term VIBSO:0000017 (total integration time setting) as requested in #30.

thanks for the trial, we don't need it any more as discussed


Updating d3 & Angular to v11: ERROR - event was not found in d3

After updating d3 to v6.3.1 and Angular to latest v11.0.6, getting the following error while doing ng build --prod. Earlier with d3 v5.4.0 and Angular v6.0.3, everything was working fine.
Error while ng build --prod:
"export 'event' was not found in 'd3'
    at HarmonyImportSpecifierDependency._getErrors (<application-path>\node_modules\webpack\lib\dependencies\HarmonyImportSpecifierDependency.js:109:11)
    at HarmonyImportSpecifierDependency.getErrors (<application-path>\node_modules\webpack\lib\dependencies\HarmonyImportSpecifierDependency.js:68:16)
    at Compilation.reportDependencyErrorsAndWarnings (<application-path>\node_modules\webpack\lib\Compilation.js:1463:22)
    at hooks.finishModules.callAsync.err (<application-path>\node_modules\webpack\lib\Compilation.js:1258:10)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (<application-path>\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:53:1)
    at AsyncSeriesHook.lazyCompileHook (<application-path>\node_modules\webpack\node_modules\tapable\lib\Hook.js:154:20)
    at Compilation.finish (<application-path>\node_modules\webpack\lib\Compilation.js:1253:28)
    at hooks.make.callAsync.err (<application-path>\node_modules\webpack\lib\Compiler.js:672:17)
    at _done (eval at create (<application-path>\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:9:1)
    at _err1 (eval at create (<application-path>\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:36:22)
    at _addModuleChain (<application-path>\node_modules\webpack\lib\Compilation.js:1185:12)
    at processModuleDependencies.err (<application-path>\node_modules\webpack\lib\Compilation.js:1097:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)
 @ ./src/app/app.module.ngfactory.js
 @ ./src/main.ts
 @ multi ./src/main.ts

It seems that event is being referred from the following code:
import * as d3 from 'd3';
// Save x,y cordinates on drag start.
this.originalX = d3.event.x;
this.originalY = d3.event.y;
d3.event.sourceEvent.stopPropagation();

After googling a bit, someone suggested to install @types/d3 and then try; but after installing it, Webstorm starts to throw error on the usage of d3.event.
Has the API changed for accessing event via d3? Or something else is missing?

Please read the release notes.

Please read the release notes.

Events are now handled in the callback, like all other web events.

Events are now handled in the callback, like all other web events.

This breaking change was introduced in v6. But after downgrading D3 to v5.16.0 and this error is still popping up.

This breaking change was introduced in v6. But after downgrading D3 to v5.16.0 and this error is still popping up.


Character pointer strings not supportd

The current implementation depends on using "sizeof()" to calculate the size of each argument.  This doesn't work for character pointers.  In this situation sizeof() returns the size of the pointer (8 on a 64-bit machine) rather than the length of the actual string.
# This example from examples/stdout works correctly
char some_string[] = "this is some string";
CDEFMT_INFO"some string \\\"{:s}\\\"", some_string);
# cdefmt correctly identifies this as a 20 byte string and logs it

# This example does not work
char* some_string = "this is some string";
CDEFMT_INFO"some string \\\"{:s}\\\"", some_string);
# cdefmt logs the pointer value instead of the string, and then the decoder tries to print the binary pointer as a string resulting in garbage.

In this situation, strnlen() needs to be used instead of sizeof() to determine the argument size.
In the example above the character pointer points to a constant - but it doesn't need to:
# This example does not work
char* some_string = malloc(64);
snprintf(some_string, 64, "hello %s, this is iteration number %d", user_name, iter_num);
CDEFMT_INFO"some string \\\"{:s}\\\"", some_string);
# cdefmt logs the pointer value instead of the string, and then the decoder tries to print the binary pointer as a string resulting in garbage.

Hi Chris,
You're correct, runtime allocated buffers are currently not supported.
Since the parsing logic depends on all sizes being known at compile time as it takes the size/length information directly from the debugging information.
Currently the only way to output arrays (and strings) is to use fixed size arrays as shown in the example.
I might consider adding more advanced logic in the future to support variable sized elements but currently I don't have any plans for that.
Regards,
Tal


WIP: BPE Training with k2 ctc loss

FYI @glynpu
My current result are as follows (without transformer decoder, say att_rate = 0.0):

decoding model
WER % on test-clean
WER % on test-other

avg epoch 18 - 28
11.94
26.78

avg epoch 9 - 13
31.65
58.88

There was a bpe_run.sh in master branch, posted by Liyong in https://github.com/k2-fsa/snowfall/pull/217, it only did decoding things, so I rename it to bpe_decode.sh.  All the training and decoding pipeline are in bpe_run.sh script in this PR.

We will discuss BPE training with k2 ctc loss in this PR https://github.com/k2-fsa/snowfall/pull/219


HTML export styles

Hello and good day!
Thank you very much for this wonderful theme.
I wanted to start my own theme but since I found this there is no need anymore ;)
I have one issue though with HTML exports.
When I use the dark style and export an HTML file it's also styled dark and the H1 is not correctly colored.
Could you leave it to the default light style for exports or create a setting that exports won't be affected by the application style?
I don't have that issue with built in themes. When I use a built in dark theme the exports are still default white.
Best
marco

Hi @hyphone , I style the note preview via the loadNoteCssFile-method. I actually didn't expect that these styles  would be inserted into exported html-files also, but according to these Joplin plugins docs that is intentional:
https://github.com/joplin/plugin-templates/blob/add65341a3fda5220a7fa0a4ce0c4359800dea48/api/JoplinWindow.d.ts#L18
That means there is not much I can do, except a suggestion to switch the theme to light when exporting (or set it to auto and toggle the system's dark/light mode to prevent to having to restart Joplin every time ;)).


allow_lazy removed from django.utils.functional

Django 2.0 removes allow_lazy from django.utils.functional. Userena uses this here: https://github.com/bread-and-pepper/django-userena/blob/master/userena/utils.py#L3
So it's an immediate import error when testing with Django 2.0

I have made a fork of this project at django-userena-ce which supports django 2.0 from v3.1.0.


valueChanged should (?) not being called on componentWillReceiveProps

Every time, the + or - button is triggered, valueChanged callback is triggered causing the initialValue to be "frozen" to its mounted state.

Hi @jchirschy Can you post a code snippet of the component? So I may examine your usage.

Hello,
Here it is :
import React from 'react';
import { View, Text } from 'react-native';
import PropTypes from 'prop-types';
import SimpleStepper from 'react-native-simple-stepper';
import _ from 'lodash';

class EnhancedStepperInput extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: undefined,
    };
    this.onSubmitEditing = _.debounce(this.props.action, 250);
  }

  componentWillMount() {
    this.setState({ value: this.props.item.value });
  }

  onValueChange(value) {
    this.setState({ value }, () => {
      this.onSubmitEditing(value);
    });
  }

  render() {
    const item = this.props.item;
    return (
      <View>
        <View>
          <SimpleStepper
            initialValue={this.state.value}
            minimumValue={item.min}
            maximumValue={item.max}
            step={item.step}
            valueChanged={value => this.onValueChange(value)}
            {...this.props}
          />
        </View>
        <Text>
          {this.state.value}
        </Text>
      </View>
    );
  }
}

EnhancedStepperInput.propTypes = {
  item: PropTypes.object.isRequired,
  action: PropTypes.func,
};

EnhancedStepperInput.defaultProps = {
  action: () => console.log('EnhancedStepperInput submitted'),
};

export default EnhancedStepperInput;

This pull request solves my issue : #17
Thanks

I have the same issue and the changes in #17 seems to fix it for me also 👍

I'm open to add a prop called pureValueChanged to address this.


optimize: avoid redundant blob fetching

I read through the code of proxyBlobStore. I found that the logic of ServeBlob could be optimized. We don't need to request twice for the same blob when caching it.

Codecov Report

Merging #3569 (c182ba3) into main (5f1974a) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #3569      +/-   ##
==========================================
+ Coverage   56.36%   56.38%   +0.02%
==========================================
  Files         101      101
  Lines        7310     7300      -10
==========================================
- Hits         4120     4116       -4
+ Misses       2535     2531       -4
+ Partials      655      653       -2

Impacted Files
Coverage Δ

...tion/distribution/registry/proxy/proxyblobstore.go
57.95% <0.00%> (+1.83%)
:arrow_up:

Continue to review full report at Codecov.

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

/cc @milosgajdos @deleteriousEffect

We should address the CodeQL issues despite their not being directly related to this PR.

We should address the CodeQL issues despite their not being directly related to this PR.

So let't disable the configuration for insecure cipher suites?

I am not quite sure about the original idea to use go rountine to async calls the storeLocal(). But this PR changes it to sync mode, if I understand correctly. Is it expceted? cc @milosgajdos

Any progress on this optimization? It appears to be a valuable approach for eliminating redundant blob requests to the registry.

This needs a rebase @justadogistaken

This needs a rebase @justadogistaken

I will rebase it later.

@thaJeztah @wy65701436 Please help review this work.

If a copy is already in flight, does it just fall back to streaming directly from the remote store to the client?
Just trying to get my head around the logic before adding a LGTM.

If a copy is already in flight, does it just fall back to streaming directly from the remote store to the client? If that is the case, a comment might be good there.
Just trying to get my head around the logic before adding a LGTM.

Yes, it will fall back to streaming directly from remote store. Which is what it used to be.
This work majorly reduces a redundant blob fetching when "the requested blob does not exist locally" and "the blob digest it not in the flight."

I'd appreciate a comment in ServeBlob explaining that if there is already a copy in flight that the current thread will just proxy straight from the remote to the client, I assume because there's no sensible way to join in with the tee.
But that's not blocking and overall, very sensible change, lgtm.

Thank you. And the comments are added.


ClickOnce

What do you think about moving this towards a click once deployment model?  Is it even worth it as I believe the Service Bus team is likely trying to include these types of features in the portal.

@vonlar I'd rather see bits released via GitHub releases.
This is WIP for issue #2

Hi guys, I can't spend time on this, it would be great if you could help me, thanks :)

ClickOnce or Desktop Bridge (Project Centennial)?
Looks like #49 superseeds this.
@vonlar if you agree, please let know and we'll close this in favor of #49. Thanks.

@SeanFeldman So let's chat about this a bit more.
ClickOnce is preferable over an installer, but since we can't save the connection without editing the config file, ClickOnce isn't a good solution (the config file will likely get put in an arbitrary hard to find place).
I can implement #49, but I would want to use VSTS.  I'm already working on the CI process anyway.  It will also solve #2.  However I would likely use semver, but we can tag a valid release now and semver would take over from there.  You wouldn't touch the versioning inside the app.config.

@vonlar #49 is being worked on already (@msimecek could you please confirm?) and it would be great to get your help with it. @paolosalvatori is also working on it according to his comment.
What I question is the need in VSTS. We already chose AppVeyor for CI/CD. It's fully capable of everything what we wanted to have with much less ceremony. Including solution for #2*. And a the great part about it - it's all in the repo and can be modified as we need to.
Just an FYI, AppVeyor is used by many OSS projects, including MSFT ones. Check it out, you might like it 😃
* versioning was discussed in the past #29. I'll reopen the issue to have that conversation again.

@SeanFeldman I'm familiar with AppVeyor, I just stick with VSTS since it's free and I'm not well versed in AppVeyor.  It's good since it's free for OSS projects.  I wouldn't be of much help with the CI CD process then.
As far as ClickOnce goes, I'd still prefer it over an installer any day it would also get rid of that darn installer project as well.  But then a prerequisite is being able to save the connection strings.  Really up to you guys since you're heading the charge.  I'm more than happy to help with anything, unfortunately time is just limited as I am sure is the same with everyone :)

@vonlar never say never (in regards to helping with AppVeyor).
Now back to the original issue - ClickOnce. I'm not an expert on this subject. Based on my quick read, it seems like Desktop Bridge (Project Centennial) is the promoted way of deploying desktop applications that are not originally created as UWP. This means SBE would be available in the Windows Store. That to me is a significant step. Correct me if I'm mistaken, but with ClickOnce it's not an option.
Saying that, personally I don't need neither Windows Store version nor ClickOnce version. I need a standalone portable version.  How about this: we move forward with APPX (#49) first and evaluate this issue after? I see no problem with having multiple packaging options with CD using AppVeyor.

@SeanFeldman Agreed.  After seeing a broadcast today to the MVPs about Bridge, it's not ready yet (imo).  I wholeheartedly concur with you about the staged deployment approach.
The only thing I will mention is that I can have a CI / CD process for automated builds and releases completed in about 20 minutes with VSTS ;).
I'll add one other comment to one of the other posts concerning the installer and WiX.
Please note these are just comments and I'll defer to you.

I'll add one other comment to one of the other posts concerning the installer and WiX.

👍
Closing for now. We'll review this once APPX is completed.

Regarding the Desktop Bridge - it's available for submissions, only the developer needs their account provisioned with specific capabilities.
Technically, I got the process of generating APPX ready in VSTS. I'm not familiar with AppVeyor, but I guess it should work there as well, because it's just calling an EXE file with appropriate manifest. So as long as the build machine runs Windows, it should be fine.

This will have the same problems as a ClickOnce deployment if we don't allow for saving of the connection string. Do we have an issue open on that one yet?

@msimecek AppVeyor is Windows Server based. I can help with integration if needed. Open a PR marked as [WIP]?

@vonlar a single connection string can be read from an environment variable.

I guys, I'm reading the thread just now ad I disconnected during vacation. I'm not an ALM expert, but let me know how I can help you. In my opinion, you may explore all the possible ways and eventually extend the documentation on GitHub or blog about your solution. I don't see any problems to bring forward multiple approaches as soon as someone takes the ownership and responsibility to maintain it.
Connection strings and any other settings can be stored in environment variables ad Sean said. This requires some coding, but it's doable


SteamGameCoordinator not opening game

Running var game = new Steam.SteamGameCoordinator(client, 440); however the game is not being launched.
Running after user is logged in. Client is a valid instance of Steam.SteamClient()

Creating a SteamGameCoordinator instance isn't supposed to launch the game. What gave you that idea?

Misread documentation. I'm a tard.
Thanks for the response.
On Tue, Sep 1, 2015 at 5:37 AM, Nikolai Vavilov<EMAIL_ADDRESS>wrote:

Creating a SteamGameCoordinator instance isn't supposed to launch the
game. What gave you that idea?
—
Reply to this email directly or view it on GitHub
https://github.com/seishun/node-steam/issues/240#issuecomment-136583150.


net.run() doesn't work with Node.js

Hey guys,
I tinker around with the RNNTimeStep model. Worked fine for me in Browser with plain JS and HTML, but now I want to create a serious application with Node.js. I installed brain.js via NPM and call the app with a .bat file, like this:
node main.js
and in my app, I declare the network like this:
  const config = {
    inputSize: 1,
    inputRange: 3,
    hiddenLayers: [10, 10],
    outputSize: 1,
    learningRate: 0.01,
    decayRate: 0.999
  };

  const net = new brain.recurrent.RNNTimeStep( config );

Just CopyPasta from the tutorial section. the net.train() function seems to work fine, but if I call net.run() or net.toFunction().toString(); it gives me this error
C:\Users\Groudon\node_modules\brain.js\src\recurrent\rnn.js:287
    if (this.model.equations.length === 0) {
                   ^

TypeError: Cannot read property 'equations' of null
    at RNNTimeStep.get isRunnable [as isRunnable] (C:\Users\Groudon\node_modules\brain.js\src\recurrent\rnn.js:287:20)
    at RNNTimeStep.runNumbers (C:\Users\Groudon\node_modules\brain.js\src\recurrent\rnn-time-step.js:249:15)
    at RNNTimeStep.run (C:\Users\Groudon\node_modules\brain.js\src\recurrent\rnn-time-step.js:107:19)
    at Object.<anonymous> (C:\Users\Groudon\Desktop\BRAIN JS\main.js:52:27)
    at Module._compile (internal/modules/cjs/loader.js:707:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
    at Module.load (internal/modules/cjs/loader.js:605:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
    at Function.Module._load (internal/modules/cjs/loader.js:536:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)

Changing the config values for the net didn't work. Any suggestions?

Cheers

How are you running .run()?

I tried this:
console.log(String( net.run([1,1,0]) ));
just the execute like this:
net.run([1,1,0])
don't work too. IF I try to generate the model class for save:
require('fs').writeFileSync('savedModel.txt', String(net.toFunction().toString()) );
exact the same error. It says that the property equations is null. I looked in the code, but didn't find something strange - but you know the code more well than me, maybe you can find a solution ^^ In the meanwhile I will try different network models and reply again.

I solved the problem. It was caused by lazy coding from me. I gave the train() method accidently strings, instead of ints. The train process doesn't broke up, but if the run() method is called, there is just a not trained model. Anyway, it is working now. Except the toFunction() thing. Don't know why, but there is no data saved. If I can figure this out, I will reply again.

Do you have a reproduction script?  That would be very helpful.

I am also having trouble with .run(). I don't think I'm having the same issue, but I still can't figure it out.
I'm training a very basic model, trying to predict if a string is a youtube screen_name or id. Here's my script.
const brain = require('brain.js');
const fs = require('fs');

const encode = str => {
    var coded = [];
    for(let i = 0; i < str.length; i++) {
        coded.push(str.charCodeAt(i) / 255);
    }
    return coded
}

// create a simple feed forward neural network with backpropagation
const net = new brain.recurrent.LSTM()

const data = [
    {
        input: encode("neworder"),
        output: "screen_name"
    },
    {
        input: encode("OfficialSabbath"),
        output: "screen_name"
    },
    {
        input: encode("DepecheModeVEVO"),
        output: "screen_name"
    },
    {
        input: encode("PowerfulJRE"),
        output: "screen_name"
    },
    {
        input: encode("FrankSinatra"),
        output: "screen_name"
    },
    {
        input: encode("gratefuldead"),
        output: "screen_name"
    },
    {
        input: encode("greenday"),
        output: "screen_name"
    },
    {
        input: encode("KateBushMusic"),
        output: "screen_name"
    },
    {
        input: encode("madonna"),
        output: "screen_name"
    },
    {
        input: encode("MetallicaTV"),
        output: "screen_name"
    },
    {
        input: encode("UCSJ4gkVC6NrvII8umztf0Ow"),
        output: "id"
    },
    {
        input: encode("UCrTC0tOY5aujQFYDRf65xiw"),
        output: "id"
    },
    {
        input: encode("UCzQUP1qoWDoEbmsQxvdjxgQ"),
        output: "id"
    },
    {
        input: encode("UCuP2vJ6kRutQBfRmdcI92mA"),
        output: "id"
    },
    {
        input: encode("UCP9GKAbvDxLBqCcEaw4HDiw"),
        output: "id"
    },
    {
        input: encode("UC2D6eRvCeMtcF5OGHf1-trw"),
        output: "id"
    },
    {
        input: encode("UC5WjFrtBdufl6CZojX3D8dQ"),
        output: "id"
    },
    {
        input: encode("UC29ju8bIPH5as8OGnQzwJyA"),
        output: "id"
    },
    {
        input: encode("UCsBjURrPoezykLs9EqgamOA"),
        output: "id"
    },
    {
        input: encode("UCJLpammGMzjc4A2RfBVMbOg"),
        output: "id"
    }
]

net.train(data, { iterations: 2000, log: true });
fs.writeFileSync('./network.json', JSON.stringify(net.toJSON()), null, 2);

// const networkData = JSON.parse(fs.readFileSync('./network.json'));
// net.fromJSON(networkData);

const output = net.run(encode("PewDiePie"));
console.log(output);

My problem is that when I log the output, many times it gives me something very different than an output that I've set. Here's an example output.
alecmather in ~/Desktop/Projects/youtube-ai  > node index
creen_name
alecmather in ~/Desktop/Projects/youtube-ai  > node index
creen_name
alecmather in ~/Desktop/Projects/youtube-ai  > node index
0.38431372549019610.30980392156862746screen_name
alecmather in ~/Desktop/Projects/youtube-ai  > node index
0.38431372549019610.30980392156862746screen_name
alecmather in ~/Desktop/Projects/youtube-ai  >

As you can see, it's giving me creen_name instead of screen_name, adding these weird decimals before the result. Sometimes I've gotten what seems like random strings such as XvrTl5s. And sometimes it logs nothing at all, like an empty string.

.run() works as intended in Brain.js version 2.0.0-beta.14.  Try that and see if you can reproduce.  Likely this was a bug that was resolved with unit tests, oh which there are now many.


Simplify Spanner DB New

"You're not going to need it"

I was just thinking the same as @pavelkalinnikov, this is basically *spanner.Client?

This basically removed the whole thing? The best PR :)

This truly is an excellent PR! 😄


Your Linux Files are not Installing Properly

Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'eosio' instead of './eosio_1.8.5-1-ubuntu-16.04_amd64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
eosio : Depends: libicu55 but it is not installable
E: Unable to correct problems, you have held broken packages.
When using the native Ubuntu version 18 installer, it installs then does not display a launch button.

The 16.04 deb won't work on 18.04 and vice versa. That's expected.
All of eosio's applications are command line applications. I realize that some command line applications in Ubuntu do get a launch button. Say, for example, fortune. But launching nodeos is significantly more complex: the first time you launch it you must provide a genesis-json or a snapshot on the command line to connect to an existing chain. There isn't a way to even specify those options in the config file. And once you've used genesis-json or snapshot once you need to not specify it subsequent times.
So, I don't believe a launch button will be useful currently. If someday we have a GUI front end to nodeos, cleos, and keosd it may make more sense.


bump fil-actor-states to the latest release

Summary of changes

Changes introduced in this pull request:

https://github.com/ChainSafe/forest/pull/3734 failed at it for now.

Reference issue to close (if applicable)

Closes
Other information and links

Change checklist

[x] I have performed a self-review of my own code,
[x] I have made corresponding changes to the documentation,
[x] I have added tests that prove my fix is effective or that my feature works (if possible),
[x] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

This has already been bumped in my other PR, but I don't mind resolving the conflict.


Excessive spacing between license icons

Describe the bug

License icons are excessively spaced now that #723 has been merged, see attached pictures.
To Reproduce

Go to https://ccsearch-dev.creativecommons.org/
Search for something
See error when hovering on an image
Click on image to see image details
See error under the Attribution tab
Click on the Info tab
See error again

Screenshots

Desktop (please complete the following information)

OS: Win 10 Pro 1809
Browser: Firefox Dev. Ed. 74.0

Can I work on this ?

@akmadian I have corrected it in #773 :)


Add sideEffects to all style loaders

I got into a problem where importing component from library like material-components-web doesn't load css in production.
This is because the library author marked the component as side effects free which remove css also from production.
So, suppose if I import snackbar component like this and then compile for production, the css will not included in production.
  import {MDCSnackbar} from '@material/snackbar';
  import<EMAIL_ADDRESS>

 // require('@material/snackbar/dist/mdc.snackbar.css');   // this will be imported because of old-style require.

  // ... some other react code ..

So, the solution is to add sideEffects:true in all loaders including sass, css, less etc.
Here's the open bug about this: https://github.com/webpack/webpack/issues/6571
and the implementation in create-react-app here:
https://github.com/facebook/create-react-app/blob/317f5002233029942394df9e87183420359b18cf/packages/react-scripts/config/webpack.config.js#L457

Hi, thanks for creating an issue. We currently recommend using https://nextjs.org/docs/basic-features/built-in-css-support as the plugins have been deprecated in favor of the built-in support.


Scrolling Invalid when using linux screen command

When using linux screen command tool, the scroll bar disappeared.
Scrolling will change the command history but not show the terminal output above.
os: win10
ssh remote system os: Debian 9
plugins: ssh, community-color-schemes, core, plugin-mananger, settings, terminal
terminus version: 1.0.73

This is a feature of screen, since you can have multiple "tabs" inside screen itself, scrolling in the terminal wouldn't really make sense (same for tmux):
https://unix.stackexchange.com/questions/40242/scroll-inside-screen-or-pause-output

This is a feature of screen, since you can have multiple "tabs" inside screen itself, scrolling in the terminal wouldn't really make sense (same for tmux):
https://unix.stackexchange.com/questions/40242/scroll-inside-screen-or-pause-output

Unix & Linux Stack Exchange**Scroll inside Screen, or Pause Output**I use screen for my command-line tasks while managing the servers where I work. I usually run small commands (mostly file-system tasks) but sometimes I run more extensive tasks (like DBA).
The out...

oh it works, that's great! thx~


Port of command API v2 to 1.12.2

A very creative description detailing what I did.
(I'd prefer if it were looked over before being merged, just in case I borked something.

Why does Gradle do this?
It builds, but only after it fails the first time.
Gradle pls just exist...

Still not positive just how much of it works, but things can always be fixed later if I did break it.


"unprotected system wide changes" remediation fails

security authorizationdb read system.preferences > /tmp/system.preferences.plist; defaults write /tmp/system.preferences.plist shared -bool false; security authorizationdb write system.preferences < /tmp/system.preferences.plist
is not delivering the expected result

Fixed using NIST's version:  security authorizationdb read system.preferences > /tmp/system.preferences.plist; /usr/libexec/PlistBuddy -c "Set :shared true" /tmp/system.preferences.plist; security authorizationdb write system.preferences < /tmp/system.preferences.plist


Changing php version to 7.2

Default version of php shipping with centos is 5.x which is vulnerable and no longer maintained:
https://www.php.net/supported-versions.php
Upgrading this to 7.2 using the remi-repo

Don't RedHat backport fixes for CVEs? For example:
* Tue Jan 23 2018 Remi Collet<EMAIL_ADDRESS>- 5.4.16-45
- gd: fix buffer over-read into uninitialized memory CVE-2017-7890

from php.spec in php-5.4.16-46.el7.src.rpm.

Don't RedHat backport fixes for CVEs? For example:
* Tue Jan 23 2018 Remi Collet<EMAIL_ADDRESS>- 5.4.16-45
- gd: fix buffer over-read into uninitialized memory CVE-2017-7890

from php.spec in php-5.4.16-46.el7.src.rpm.

You are indeed correct, but I have been advised that we want to upgrade to the latest version to get all the latest features/bugfixes not just the critical CVEs


Fix unconditional crash on MatrixRequestError <500

If a HTTP error with a code < 500 is received, don't just re-raise the
exception, crashing the listener thread, but pass it to exception_handler if
provided.
Fixes #182: HTTP error <500 during sync crashes listener thread

Signoff please?

Signed-off-by: Магtіn vаո Βeіlеn @Coffee:matrix.org

Thanks!


add the ability to change the prefix "icon-" to "some-ico" or other different

It would be very useful to be able to change the icon- prefix to any other prefix. to play nicely with other icon- stylesheets. It could be another config value in the exported json

You can change prefix and icon library name as well. Please check below screenshot.
http://screenshots.sharkz.in/anil/2017/01/2017-01-04_16-46-53.png


Remove local patch against w3c_navigation_timing.js as issue resolved upstream

This will need to be simultaneously applied with google/closure-compiler#3347

Closing this as @jDramaix applied the equivalent in 5149d8f5df88ef4d55d6d2dfccbae5d3a4be60ad


Transactions - Silver + Core

We need a silver layer for transactions with a core view.
Essential components for this first layer are:

[ ] Deduplication. Chainwalkers will include duplicates, so we need to ensure the initial silver__transactions model only has 1 record per transaction.
[ ] Incremental Macro
[ ] Gap tests
[ ] Recency tests
[ ] Uniqueness / no dupes test

TODO

[ ] Design the schema for this table
[ ] Get confirmation on schema
[ ] Build schema
[ ] Schema build review
[ ] Submit Pull Request for review by pod

Initial Schema:

tx_id,
block_id,
block_timestamp,
network,
chain_id,
pub_key,
gas_limit,
fee_raw,
fee_denom,
memo,
tx,
_ingested_at,
_inserted_timestamp

The terra.js docs include how to decode the public key into the actual address, which would give us the sender of the tx. This is to be added to the model.
In core - the tx fee paid will be decimal adjusted, to be left as raw in silver.


Feat:Redesign the reservation page  and form make it professional

Describe the feature
This page is so laggy and creating worst user experience so can i work on this?
Design of form is also not good
please assign me this i want to contribute
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a gssoc-24-extd contributor
[X] I want to work on this issue

@Sawan-Kushwah send some UI screenshot if you have

@RamakrushnaBiswal  currently i don't have any design but if you assign me with appropriate level i can surely design this more professionally

Ok then go for it
Attach some screenshot while rising the PR


Decide if we should manage both TCP and UDP for a single service

Apparently services of type loadBalancer can only have one protocol.
The Service "service-test" is invalid: spec.ports: Invalid value: []core.ServicePort{core.ServicePort{Name:"http", Protocol:"TCP", Port:80, TargetPort:intstr.IntOrString{Type:0, IntVal:80, StrVal:""}, NodePort:0}, core.ServicePort{Name:"unreal", Protocol:"UDP", Port:80, TargetPort:intstr.IntOrString{Type:0, IntVal:80, StrVal:""}, NodePort:0}}: cannot create an external load balancer with mix protocols

we need to support both protocols. But given the k8s service spec and our LB spec, they don't see eye to eye. So we need to create two different service in case a single k8s service expose ports on various protocols. This is the reason for our clustername-namespace-svc-protocol naming convention.


Add python to the PATH variable in r-session-complete

Closes #481
I've noticed this issue crop up a few times in the last week with both internal teams and a customer. I prepended the /opt/python/${PYTHON_VERSION}/bin path to the PATH variable in the container to make it more immediately accessible to users.

I tested this locally and verified it worked with https://github.com/rstudio/platform-helm/pull/60/files 🔥


Problem on content types where Draft & publish feature is activated

Strapi Version: 4.10.6
Node Version: 18.16.0
This may very well be related to #3
Steps to reproduce using the admin UI:

Go to the Content-type Builder, create a new collection type and enable Draft & publish on the advanced settings tab
Add a regular short text field (this is only to prevent falling into #3)
Add another field of custom type UUID (from this plugin)
Save the model and wait for the server to restart
Go to the Content Manager and create a new entry for the type just created
Observe that the UUID is correctly generated, but the save button is disabled.
Input something on the text field, now the save button is enabled. Save the draft, but do not publish it.
Now we came back to editing the entry because we want to publish it. The UUID is there on the field, but upon clicking on Publish an error is shown on the field This value is required.
Try to edit the value, the error now shows  The value does not match the regex

Same here, i could correctly publish, even without adding a text field.


WHD_BUS_SPI_BACKPLANE_READ_PADD_SIZE error in cyw43_bus_pio_spi.c

Hello,
I don't know if this is an issue that may be due to just doing a git pull and git submodule update (I had an older version of the Pico SDK before), but I encountered a weird error when trying to build code for Pico W (I have not used the Pico W before).
The error was related to WHD_BUS_SPI_BACKPLANE_READ_PADD_SIZE not being recognized. I don't know which file that definition is declared in.
To get the code to compile, I had to hack in the following into the cyw43_bus_pio_spi.c file:
#define WHD_BUS_SPI_BACKPLANE_READ_PADD_SIZE        (4)
Now the code successfully builds and I get my binary file. I have not tried running it yet.
My question is, was that a real bug, or has my update of the Pico SDK gone wrong somewhere?
Many thanks.

i think your submodules are out of sync - i just hit the same error when i was moving back and forth between new/old SDK versions (and i fixed it by updating submodules correctly)


Install Hypershfit failed: no matches for kind "ServiceMonitor"

The openshift version is 4.8
The hypershift is lastes
After run the install command:
hypershift install --oidc-storage-provider-s3-bucket-name=server-foundation-hosted-mode-hypershift --oidc-storage-provider-s3-region=us-east-1 --oidc-storage-provider-s3-credentials=/root/.aws/credentials

I got error:
Error: no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

Did anyone get this issue before?

It seems ok in the latest version.


Journaldriver was not added into the module list

https://github.com/NixOS/nixpkgs/blob/06061b7188e6beafb9651dabdda316d19b9419a5/nixos/modules/services/logging/journaldriver.nix#L1
@tazjin
journaldriver should be imported into the top-level module list, so that it is visible without manually importing this module.
Might be go if it goes in here.
https://github.com/NixOS/nixpkgs/blob/06061b7188e6beafb9651dabdda316d19b9419a5/nixos/modules/module-list.nix#L305

Thanks for pointing this out! Didn't notice it because we import modules from pinned nixpkgs versions.


Story for generic document factory

Problem

This was first brought at the JLab team meeting by @bollwyvl
Nick modified ipydrawio to support retrolab. This resulted in quite some hack to replace the file editor by the custom document from ipydrawio factory.
It will be nice if custom factories can be supported out of the box.
Proposed Solution

As retrolab is single document oriented set through URL, one idea could be to support generic URL pattern <baseURL>/retro/<factory name>/?path=<path>. This will support:

multiple factories for the same path
unique URL (that can be shared, saved,...)

The challenge is likely to be on the list of core plugins that need to be loaded on that page - we may need to support customization of the base modules in app/index.js, to change how core packages are distributed and to support dynamic plugin load.

Thanks @fcollonval for opening this.

one idea could be to support generic URL pattern

Or maybe via a query string parameter such as ?factory=, so it also works with JupyterLite.
Probaby the doc manager plugin defined here could be slightly tweaked to open widgets with a different factory:
https://github.com/jupyterlab/retrolab/blob/3b9b2bb17c6a87946bb3100a9210bb43eb32b2ce/packages/docmanager-extension/src/index.ts#L17-L48

Yeah... I don't know how much I care about pretty urls, but definitely do
care about getting "free" lite support. And rise would be similar, I
suppose.
On video chat, I went down a similarly aggressive path, but with tree...
That one would make sense as a new url, as it has a server component.
Settings is maybe like that.
Of course we might be able to solve fancy retro urls at lite build time, if
they can be predictably derived from package.json metadata...

query string parameter such as ?factory=, so it also works with JupyterLite

:+1: to get Lite happier :smile:

Thinking about this more, we'll probably want to make it generic enough so it can open other arbitrary widgets in new browser tabs. For example the new settings editor.

Just opened https://github.com/jupyter/notebook/pull/6315 to start exploring this.


The reason why the video quality generated by connecting animatediff node  is very poor

I am now encountering a problem. When performing video rendering under comfyui, as long as the animatediff node is connected, the quality of the pictures generated by the collector will be very poor, and each picture will be marked with a mosaic of color blocks. If animatediff is removed, the generated image will have no problem, but such an image cannot guarantee that subsequent videos will not be motivated. I have tried many methods but none worked (nodes such as Comfyui and animatediff are all the latest versions). I have modified Lora weights, sampling methods, animatediff models, prompt words, replaced large models and vae, but there has been no change. I have the same problem even when I run it on a cloud server. Can anyone help me with the answer? Thank you very much~
Below is the picture generated by adding the animatediff node, the quality is very poor.

workflow Link:https://pan.quark.cn/s/4d79e27520f0

workflow :v2v.json
Hope someone can help me, I have been troubled by this problem for 3 days~

You can confirm if AnimateDiff-Evolved is working as expected by running the basic txt2img workflow in the readme: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved?tab=readme-ov-file#txt2img

It works very well. The basic txt2img workflow has no problem.
specs of pc
i5 12600KF
32gb ram
rtx 4070ti oc 12gb

same problem , who knows how to solve it?

I doubt there is any problem. The generated image image here looks like the consequence of not using the required amount of latents for AnimateDiff to do its thing. The sweet spot for AnimateDiff is to sample 16 latents at a time (if doing more than 16, context options must be plugged in with a context_length=16 to trick AnimateDiff into sampling a sweet spot amount of latents at a time.
For @Lengyia , an example workflow wor d just fine, so in their workflow they likely did not use the use the minimum amount of latents to get a good result.

我也遇到了相同的问题cy

The issue here was clearly the not enough latents (16 for AD, 8 for hotshot) to render properly. Closing issue.


[fix](inverted index) normal process query for null condition when in…

…dex is missing
Proposed changes
https://github.com/apache/doris/pull/33663

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Feature add preset url for glide

added new url function to support the glide preset

Merged in 26015870. Thank you @imknight!


update Readme file with more reability

When I read this readme, I felt confused and didn't quite understand what the Go Langauge is and no idea on how to start using it. In order to make new users like me to understand it quickly, I propose the following changes.

An introduction part describing what the Go Language is with a more specific functionalities. It briefly introduce the similarity between Go and C, advantages of Go, and several main functionalities of using Go. In addtion, it also includes a hint to remind users to choose the correct version and set up the correct envrionment in case of unexpected errors while in use.

A simple tutorial teaching new users how to run and use Go language, including a guide to print the 'hello world' message to console, and a guide to build a simple local web server.

New users would have a better understanding of what the Go language is and using methods of it by applying these modifications.

Duplicate of #58463


Immovable block support

Should there be indications that immovable blocks are immovable?
I put the annotation in a separate commit in case you don't want to merge it (I'm not sure if it's idiomatic or not).

This change is

This PR is intended to address #304.  Are there any other avenues that need to be addressed?  That is, can end users move blocks via non-dragging methods (e.g. via a11y tools)?

Generally looks good.  I'm curious if you've tried this out.  Does the event bubble up to allow the workspace to pan?  Also, can we get an new test case in DraggerTest for this?

I've tested this manually, but I'm working on creating Espresso-based unit tests.  I'll create a test for panning.

Thanks, @geppy. You rock!

It looks like this would let the event bubble up and be handled by the Workspace, though that's the current behavior on the web as well so seems reasonable.
Please add a test, but otherwise lgtm. Thanks, geppy!

Should there be indications that immovable blocks are immovable?

Non-movable blocks do not have any distinguishing rendering compared to movable block. Thanks for asking.

@geppy
Just checking in.  Have you found any time to work on this, or run into any problems along the way?

@AnmAtAnm Thanks for the reminder, I got sidetracked by another project.  I'll try to get this wrapped up this weekend.


[WIP] [deliver] Reset the summary rating

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
A quick summary of the ratings feature from Apple:

Ratings and reviews influence how your app ranks in search results, and can affect whether someone downloads your app. Users can rate your app on a scale of 1 to 5 stars. They can also add a written review for iOS and macOS apps.

Individual ratings inform your app’s summary rating, which is displayed on your product page and in search results. This summary rating is specific to each territory on the App Store and you can reset it when you release a new version of your app. However, we recommend using this feature sparingly; while resetting the summary rating can ensure that it reflects the most current version of your app — useful if an update addresses users’ previous concerns — having few ratings may discourage potential users from downloading your app.

You can reset ratings while uploading the new version to AppStore via AppStoreConnect - there's a checkbox for doing that.

For now it is not possible to reset the summary rating via deliver tool - the input parameter is missing. This change is about adding reset_ratings parameter and make it possible to reset the summary rating of your application.

closes https://github.com/fastlane/fastlane/issues/14266
Description

I added the new optional input parameter to the deliver options: reset_ratings.
💡 Wondering if I should modify/add something to deliver docs or it is going to be updated automatically based on the changes in options.rb file? 🤔

I added unit tests although I'd really appreciate the help with manual testing 🙏 🙏

💡 Wondering if I should modify/add something to deliver docs or it is going to be updated automatically based on the changes in options.rb file? 🤔

Those will be recreated automatically.
You could add an example using this option or even a section in the action docs (Found at https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb in this case) though if you want to highlight its usage.

@janpio the documentation has been updated 👍


Increase limit: number of positions (~ words) per attribute

Related to this tiny spec: https://github.com/meilisearch/specifications/pull/80
The current number of positions per attribute is currently 1000.
See the docs page
This limit will be increased to 65 535.
@meilisearch/docs-team. The whole explanation remains unchanged, only the 1000 word should be replaced by 65 535.

TODO:

[x] Merge this PR: https://github.com/meilisearch/milli/pull/368
[x] Release milli
[x] Update the milli dependency in this repo

⚠ @meilisearch/docs-team
A warning must be added to the changelogs (release and article) to say the disk space can be increased between v0.23.0 and v0.24.0 due to this change!
This addition is considered as breaking for the users

Milli 0.18.0 is out containing this change 🎉
https://github.com/meilisearch/milli/releases/tag/v0.18.0

Very excited for this enhancement! It allows me to come back to MeiliSearch (I've been using typesense since I encountered the 1,000 word limit)
One suggestion:
I think it's important for MeiliSearch to notify the user whenever it drops data. Silently dropping data is bad :)
I spent half a day debugging my search queries to try and figure out why I couldn't find a document, turned out it was because MeiliSearch silently dropped all the data beyond the 1,000th word.
When getting the update status, it would be great if the response contained something to show that data was ignored.
Perhaps:
{
  "warnings": [
    { "id": "<document_id>", "truncatedAttributes": [ "<attribute_id>" ] }
  ]
}

Hello @Sembiance!
 Does it work for you?
I opened a ticket in the product repo so that the product team could take your suggestion of warning into account: https://github.com/meilisearch/product/discussions/305

Have you tried v0.24.0rc2? Does it work for you?
Not yet. Currently working on another project, might be a month or so before I can circle back to MeiliSearch.

I opened a ticket in the product repo so that the product team could take your suggestion of warning into account: meilisearch/product#305

Thanks :)

Hello @remram44,
the "words" criterion targets the word of the user query and will remove/ignore the last query words 1 by 1 to fill the response. For instance, we have a query "t-shirt covfefe" requesting 20 documents, because in our imaginary store we only have 1 t-shirt with a covfefe print and we would return 20 documents, the criterion will remove the covfefe word in the query and will rerun a search returning others documents matching the word t-shirt.
The "attribute" criterion will rank documents depending on the position of the matching word in the document:

if a match is in a higher attribute, the document is boosted
if a match is at the beginning of an attribute, the document is boosted

We could rename this criterion wordPosition but it would be confusing because of the words criterion. Moreover, the weight over the attribute position is more important than the weight of the word position in the attribute.
I hope my explanations were clear, and I encourage you to try meilisearch and see if it can fit your needs despite our weaknesses.
Anyway, Thanks a lot for your feedback! Don't hesitate to ask more question. +1

@ManyTheFish Thanks a lot for the explanation. I'm not sure if this is useful to anyone else, but this brings up another issue due to "attribute" technically handling two different cases which should be separated into two different rules.
To me it seems like there should be an "attribute" ranking, which is based on the match being in the higher attribute to boost the result, and then another possible "matchPosition" or "wordPosition" within the attribute, which boosts depending on position closer to the beginner of an attribute.
This has become an issue that I can't separate the two rules, since I'm indexing long documents into multiple docs, where the "matchPosition" doesn't matter to me.. where I would technically want to leave it out as a rule (ignoring it), but still sort by important of attribute (such as the title being more important than the description of an article).
Maybe this has already been discussed, but I was unable to find any mention of in the product discussions. It seems like a useful addition/improvement, for those of us indexing long documents into multiple MeiliSearch documents referring to the same piece of content. When indexing these long documents, the position of the match within the attribute is not useful at all, and should be ignored.

Hey @mikerogerz! Thanks for your complete response!
I think your point of view is really interesting, and it may be discussed (poke @gmourier).
I think that nothing will be changed before 2022, but we will do at least a "public response" of "why did we choose or not to split the attribute ranking rule in 2?".
Thanks a lot for your feedback! 👍

Hello @mikerogerz, I just opened a ticket in the product repository so that you ensure we take into consideration your feedback -> https://github.com/meilisearch/product/discussions/329

Hey @curquiza I really appreciate it. I'll follow that discussion to see how it progresses.


Random short (~1 second) disconnects

Several miners have reported it on prod, and I was able to reproduce it via local testing - so it is likely not a network issue. Needs investigation

as odd as this sounds; i have seen the stratum actually report an issue with the result of getblocktemplate - when this occurs.. even after running perfectly for some time..
will try to get this in a logfile and put here