Windows: Error in compiling CUB block reduction kernels

From the new Windows CI https://ci.preferred.jp/cupy.win.cuda100/65528/#L96449 being introduced in #4362.  In principle we could intercept that by hijacking stdout's
01:57:31.180405 STDOUT 1912]	        # file descriptor (tested locally), but the problem is pytest also does
01:57:31.180405 STDOUT 1912]	        # the same thing internally, causing strange errors when running the tests.
01:57:31.180405 STDOUT 1912]	        # As a result, we currently maintain Jitify's default behavior for easy
01:57:31.180405 STDOUT 1912]	        # debugging, and wait for the upstream to address this issue
01:57:31.180405 STDOUT 1912]	        # (NVIDIA/jitify#79).
01:57:31.180405 STDOUT 1912]
01:57:31.180405 STDOUT 1912]	        try:
01:57:31.181367 STDOUT 1912]	            name, options, headers, include_names = jitify(
01:57:31.181367 STDOUT 1912]	                source, options, _jitify_header_source_map)
01:57:31.181367 STDOUT 1912]	        except Exception as e:  # C++ could throw all kinds of errors
01:57:31.181367 STDOUT 1912]	            cex = CompileException(str(e), old_source, cu_path, options, 'jitify')
01:57:31.181367 STDOUT 1912]	            dump = _get_bool_env_variable(
01:57:31.181367 STDOUT 1912]	                'CUPY_DUMP_CUDA_SOURCE_ON_ERROR', False)
01:57:31.181367 STDOUT 1912]	            if dump:
01:57:31.181367 STDOUT 1912]	                cex.dump(sys.stderr)
01:57:31.181367 STDOUT 1912]	>           raise JitifyException(str(cex))
01:57:31.181367 STDOUT 1912]	E           AssertionError: Only cupy raises error
01:57:31.181367 STDOUT 1912]	E
01:57:31.181367 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\testing\helper.py", line 40, in _call_func
01:57:31.181367 STDOUT 1912]	E               result = impl(self, *args, **kw)
01:57:31.181367 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\tests\cupy_tests\sorting_tests\test_search.py", line 230, in test_cub_argmin
01:57:31.181367 STDOUT 1912]	E               a.argmin(axis=self.axis)
01:57:31.181367 STDOUT 1912]	E             File "cupy\core\core.pyx", line 799, in cupy.core.core.ndarray.argmin
01:57:31.181367 STDOUT 1912]	E               cpdef ndarray argmin(self, axis=None, out=None, dtype=None,
01:57:31.181367 STDOUT 1912]	E             File "cupy\core\core.pyx", line 816, in cupy.core.core.ndarray.argmin
01:57:31.181367 STDOUT 1912]	E               return _statistics._ndarray_argmin(self, axis, out, dtype, keepdims)
01:57:31.181367 STDOUT 1912]	E             File "cupy\core\_routines_statistics.pyx", line 114, in cupy.core._routines_statistics._ndarray_argmin
01:57:31.181367 STDOUT 1912]	E               return _argmin(self, axis=axis, out=out, dtype=dtype, keepdims=keepdims)
01:57:31.181367 STDOUT 1912]	E             File "cupy\core\_reduction.pyx", line 560, in cupy.core._reduction._SimpleReductionKernel.__call__
01:57:31.181367 STDOUT 1912]	E               return self._call(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_reduction.pyx", line 346, in cupy.core._reduction._AbstractReductionKernel._call
01:57:31.182344 STDOUT 1912]	E               cub_success = _cub_reduction._try_to_call_cub_reduction(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_cub_reduction.pyx", line 684, in cupy.core._cub_reduction._try_to_call_cub_reduction
01:57:31.182344 STDOUT 1912]	E               _launch_cub(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_cub_reduction.pyx", line 520, in cupy.core._cub_reduction._launch_cub
01:57:31.182344 STDOUT 1912]	E               _cub_two_pass_launch(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_cub_reduction.pyx", line 455, in cupy.core._cub_reduction._cub_two_pass_launch
01:57:31.182344 STDOUT 1912]	E               func = _SimpleCubReductionKernel_get_cached_function(
01:57:31.182344 STDOUT 1912]	E             File "C:\Development\Python\Python37\lib\unittest\mock.py", line 951, in __call__
01:57:31.182344 STDOUT 1912]	E               return _mock_self._mock_call(*args, **kwargs)
01:57:31.182344 STDOUT 1912]	E             File "C:\Development\Python\Python37\lib\unittest\mock.py", line 1026, in _mock_call
01:57:31.182344 STDOUT 1912]	E               return self._mock_wraps(*args, **kwargs)
01:57:31.182344 STDOUT 1912]	E             File "cupy\_util.pyx", line 53, in cupy._util.memoize.decorator.ret
01:57:31.182344 STDOUT 1912]	E               result = f(*args, **kwargs)
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_cub_reduction.pyx", line 227, in cupy.core._cub_reduction._SimpleCubReductionKernel_get_cached_function
01:57:31.182344 STDOUT 1912]	E               return _create_cub_reduction_function(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\_cub_reduction.pyx", line 212, in cupy.core._cub_reduction._create_cub_reduction_function
01:57:31.182344 STDOUT 1912]	E               module = compile_with_cache(
01:57:31.182344 STDOUT 1912]	E             File "cupy\core\core.pyx", line 1883, in cupy.core.core.compile_with_cache
01:57:31.182344 STDOUT 1912]	E               return cuda.compile_with_cache(
01:57:31.182344 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\cuda\compiler.py", line 396, in compile_with_cache
01:57:31.182344 STDOUT 1912]	E               cache_in_memory, jitify)
01:57:31.183317 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\cuda\compiler.py", line 474, in _compile_with_cache_cuda
01:57:31.183317 STDOUT 1912]	E               log_stream, cache_in_memory, jitify)
01:57:31.183317 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\cuda\compiler.py", line 230, in compile_using_nvrtc
01:57:31.183317 STDOUT 1912]	E               name_expressions, log_stream, jitify)
01:57:31.183317 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\cuda\compiler.py", line 206, in _compile
01:57:31.183317 STDOUT 1912]	E               source, options, cu_path)
01:57:31.183317 STDOUT 1912]	E             File "C:\Windows\Temp\flexci\run-00135266\work\src\cupy\cuda\compiler.py", line 188, in _jitify_prep
01:57:31.183317 STDOUT 1912]	E               raise JitifyException(str(cex))
01:57:31.183317 STDOUT 1912]	E           Runtime compilation failed
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy\cuda\compiler.py:188: AssertionError
01:57:31.183317 STDOUT 1912]	---------------------------- Captured stdout call -----------------------------
01:57:31.183317 STDOUT 1912]	---------------------------------------------------
01:57:31.183317 STDOUT 1912]	--- JIT compile log for C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu ---
01:57:31.183317 STDOUT 1912]	---------------------------------------------------
01:57:31.183317 STDOUT 1912]	cupy/complex/complex.h(94): warning: __device__ annotation is ignored on a function("complex") that is explicitly defaulted on its first declaration
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/complex/complex.h(101): warning: __device__ annotation is ignored on a function("complex") that is explicitly defaulted on its first declaration
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(45): error: this declaration has no storage class or type specifier
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(48): error: expected a ";"
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(149): warning: parsing restarts here after previous syntax error
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(217): error: identifier "BlockReduceAlgorithm" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(217): error: identifier "BLOCK_REDUCE_WARP_REDUCTIONS" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(220): error: identifier "CUB_PTX_ARCH" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(236): error: BlockReduceWarpReductions is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(237): error: BlockReduceRakingCommutativeOnly is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(238): error: BlockReduceRaking is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(241): error: If is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(241): error: identifier "BLOCK_REDUCE_WARP_REDUCTIONS" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(243): error: If is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(243): error: identifier "BLOCK_REDUCE_RAKING_COMMUTATIVE_ONLY" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(243): error: type name is not allowed
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(248): error: name followed by "::" must be a class or namespace name
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(277): error: Uninitialized is not a template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(277): error: not a class or struct name
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_reduce.cuh(605): error: expected a declaration
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	iterator(25): warning: parsing restarts here after previous syntax error
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	iterator(27): error: a template argument list is not allowed in a declaration of a primary template
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	iterator(34): error: expected a declaration
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(84): warning: this pragma must immediately precede a statement
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(113): warning: this pragma must immediately precede a statement
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(145): warning: this pragma must immediately precede a statement
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(187): warning: parsing restarts here after previous syntax error
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(190): error: identifier "Vector" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(190): error: identifier "Vector" is undefined
01:57:31.183317 STDOUT 1912]
01:57:31.183317 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(190): error: identifier "block_ptr" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(190): error: identifier "linear_tid" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(190): error: identifier "VECTORS_PER_THREAD" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(194): error: expected a declaration
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(200): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(265): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(296): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(330): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(374): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(411): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(447): warning: this pragma must immediately precede a statement
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(563): warning: parsing restarts here after previous syntax error
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(636): error: identifier "BlockLoadAlgorithm" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(636): error: identifier "BLOCK_LOAD_DIRECT" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(639): error: identifier "CUB_PTX_ARCH" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(661): error: identifier "BlockLoadAlgorithm" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(669): error: identifier "BLOCK_LOAD_DIRECT" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(672): error: identifier "NullType" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(722): error: identifier "BLOCK_LOAD_VECTORIZE" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(722): error: class template "BlockLoad<InputT, BLOCK_DIM_X, ITEMS_PER_THREAD, ALGORITHM, BLOCK_DIM_Y, BLOCK_DIM_Z, PTX_ARCH>::LoadInternal" has already been defined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(805): error: identifier "BLOCK_LOAD_TRANSPOSE" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(805): error: class template "BlockLoad<InputT, BLOCK_DIM_X, ITEMS_PER_THREAD, ALGORITHM, BLOCK_DIM_Y, BLOCK_DIM_Z, PTX_ARCH>::LoadInternal" has already been defined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(872): error: identifier "BLOCK_LOAD_WARP_TRANSPOSE" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(872): error: class template "BlockLoad<InputT, BLOCK_DIM_X, ITEMS_PER_THREAD, ALGORITHM, BLOCK_DIM_Y, BLOCK_DIM_Z, PTX_ARCH>::LoadInternal" has already been defined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(947): error: identifier "BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(947): error: class template "BlockLoad<InputT, BLOCK_DIM_X, ITEMS_PER_THREAD, ALGORITHM, BLOCK_DIM_Y, BLOCK_DIM_Z, PTX_ARCH>::LoadInternal" has already been defined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(1055): error: Uninitialized is not a template
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(1055): error: not a class or struct name
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	cupy/cub/cub/block/block_load.cuh(1239): error: expected a declaration
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(8): warning: parsing restarts here after previous syntax error
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(99): error: identifier "type_in0_raw" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(114): error: identifier "type_in0_raw" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(139): error: name followed by "::" must be a class or namespace name
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(139): error: expected an identifier
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(142): error: name followed by "::" must be a class or namespace name
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(196): error: identifier "type_in0_raw" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu(204): error: identifier "BlockReduceT" is undefined
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	49 errors detected in the compilation of "C:\Windows\TEMP\flexci\run-00135266\tmp\tmp0td0_rkn\6d6a38c4a67aa39c2facf257f11c1901_2.cubin.cu".
01:57:31.184305 STDOUT 1912]
01:57:31.184305 STDOUT 1912]	---------------------------------------------------
01:57:31.184305 STDOUT 1912]	dtype is b

@allisonvacanti Quick question: Could this be related to the issues tracked in NVIDIA/cub#239? Any chance you already knew how to fix it? 🙂

That issue was for a different problem that came up with the CUB_NS_ macros. I've not seen this one before. If someone can come up with a small CUB-only example of this I can take a closer look.

error: this declaration has no storage class or type specifier

The compiler error doesn't say the symbol it's picking up here. The line info points to the CUB_NS_PREFIX macro, but it could be that a) this macro is set to something strange, or b) the macro itself is undefined.
This macro is set by users to inject namespaces around the top-level cub:: namespace. If it was set incorrectly, this error message could occur.
If the macro is not defined at that point, something weird is going on. At first glance, I wonder if headers from different versions of CUB are being mixed. CUB_NS_PREFIX will always be defined by cub/util_namespace.cuh, which was recently added to cub/config.cuh, which is then included by block_reduce.cuh. Maybe an older version of config.cuh was picked up that didn't have the namespace header?

Hi @allisonvacanti Thanks so much for your quick reply and pointers, and sorry for getting back late.

If someone can come up with a small CUB-only example of this I can take a closer look.

Ok thanks! I'll try to post a small snippet later and ping you, in a separate comment. We have a CUB block reduction kernel to optionally back all kinds of reductions in CuPy, and the code has to be compiled at runtime. The kernel body can be found in this function:
https://github.com/cupy/cupy/blob/616b6e940508e2931f39eff97e18b32b73fa665b/cupy/core/_cub_reduction.pyx#L23
Though it is indeed a bit convolved as we reused the code generation infrastructure and had to follow the macro usages elsewhere 😅

At first glance, I wonder if headers from different versions of CUB are being mixed.

Maybe an older version of config.cuh was picked up that didn't have the namespace header?

It's a good question. In this offending kernel the CUB is either bundled and pinged at 1.8.0 by CuPy (if on <11.0) or from CUDA's built-in one (if on 11.0+). So in the case of 1.8.0, the CUB_NS_ macros are defined in cub/util_namespace.cuh , which is directly included in cub/block/block_reduce.cuh. We recently switched from invoking a subprocess to call NVCC to using Jitify+NVRTC (#4228) for building this CUB kernel, and what we've found so far is that this Windows building error is gone if we revert back to NVCC, so looks like either Jitify or NVRTC is not playing well with Windows.
I think the Windows CI is on CUDA 10.0 (cc: @kmaehashi) so we shouldn't have the problem of mixing up different versions? Unfortunately I don't have access to a Windows CUDA environment for now to investigate further, so I turn my attention elsewhere 😅

I'll try to post a small snippet later and ping you, in a separate comment. We have a CUB block reduction kernel to optionally back all kinds of reductions in CuPy, and the code has to be compiled at runtime.

Hi @allisonvacanti, not sure if this is enough, here is one representative for the problematic kernels:
#include <cupy/complex.cuh>
#include <cupy/carray.cuh>
#include <cupy/atomics.cuh>

#include <cupy/cub/cub/block/block_reduce.cuh>
#include <cupy/cub/cub/block/block_load.cuh>

typedef double type_in0_raw;
typedef double type_out0_raw;

typedef double _type_reduce;

static_assert(sizeof(_type_reduce) <= 32,
    "The intermediate reduction type is assumed to be at most 32 bytes.");

// Compile-time constants for CUB template specializations
#define ITEMS_PER_THREAD  4
#define BLOCK_SIZE        32

// for hipCUB: use the hipcub namespace
#ifdef __HIP_DEVICE_COMPILE__
#define cub hipcub
#endif

#if defined FIRST_PASS
    typedef type_in0_raw  type_mid_in;
    typedef _type_reduce  type_mid_out;
    #define POST_MAP(a)   out0 = a;
#elif defined SECOND_PASS
    typedef _type_reduce  type_mid_in;
    typedef type_out0_raw type_mid_out;
    #define POST_MAP(a)   (out0 = type_out0_raw(a))
#else  // one-pass reduction
    typedef type_in0_raw  type_mid_in;
    typedef type_out0_raw type_mid_out;
    #define POST_MAP(a)   (out0 = type_out0_raw(a))
#endif

struct _reduction_op {
    __device__ __forceinline__ _type_reduce operator()(
        const _type_reduce &a, const _type_reduce &b) const {
        return a + b;
    }
};

extern "C"
__global__ void cupy_cub_sum(const void* _raw_in0, void* _raw_out0, const int _segment_size, const int _array_size) {
  unsigned int _tid = threadIdx.x;

  // Specialize BlockLoad type for faster (?) loading
  typedef cub::BlockLoad<_type_reduce, BLOCK_SIZE,
                         ITEMS_PER_THREAD, cub::BLOCK_LOAD_DIRECT> BlockLoadT;

  // Shared memory for loading
  __shared__ typename BlockLoadT::TempStorage temp_storage_load;

  // Specialize BlockReduce type for our thread block
  typedef cub::BlockReduce<_type_reduce, BLOCK_SIZE> BlockReduceT;

  // Shared memory for reduction
  __shared__ typename BlockReduceT::TempStorage temp_storage;

  // Declare reduction operation
  _reduction_op op;

  // input & output raw pointers
  const type_mid_in* _in0 = static_cast<const type_mid_in*>(_raw_in0);
  type_mid_out* _out0 = static_cast<type_mid_out*>(_raw_out0);

  // Per-thread tile data
  _type_reduce _sdata[ITEMS_PER_THREAD];
  #pragma unroll
  for (int j = 0; j < ITEMS_PER_THREAD; j++) {
      _sdata[j] = _type_reduce(0);
  }

  // each block handles the reduction of 1 segment
  size_t segment_idx = blockIdx.x * _segment_size;
  const type_mid_in* segment_head = _in0 + segment_idx;
  size_t i = 0;  // tile head within the segment
  int tile_size = (BLOCK_SIZE * ITEMS_PER_THREAD < _segment_size ?
                   BLOCK_SIZE * ITEMS_PER_THREAD :
                   _segment_size);

  #if defined FIRST_PASS
  // for two-pass reduction only: "last segment" is special
  if (_array_size > 0) {
      if (_array_size - segment_idx <= _segment_size) {
          _segment_size = _array_size - segment_idx;
      }
  }
  #endif

  // loop over tiles within 1 segment
  _type_reduce aggregate = _type_reduce(0);
  for (i = 0; i < _segment_size; i += BLOCK_SIZE * ITEMS_PER_THREAD) {
      // for the last tile
      if (_segment_size - i <= tile_size) { tile_size = _segment_size - i; }

      // load a tile
      BlockLoadT(temp_storage_load).Load(segment_head + i, _sdata, tile_size,
                                         _type_reduce(0));

      // Compute block reduction
      // Note that the output is only meaningful for thread 0
      aggregate = op(aggregate, BlockReduceT(temp_storage).Reduce(_sdata, op));

      __syncthreads();  // for reusing temp_storage
  }

  if (_tid == 0) {
      type_mid_out& out0 = *(_out0 + blockIdx.x);
      POST_MAP(aggregate);
  }
}

The option passed to Jitify is:
('--std=c++11', '-DCUPY_USE_JITIFY', '-I/home/leofang/dev/cupy_cuda10.2/cupy/core/include', '-I/home/leofang/dev/cupy_cuda10.2/cupy/core/include/cupy/_cuda/cuda-10.2', '-I/usr/local/cuda-10.2/include', '-ftz=true', '-arch=compute_75')

and the eventual option used to compile is:
('--std=c++11', '-DCUPY_USE_JITIFY', '-ftz=true', '-arch=compute_75', '--device-as-default-execution-space', '--pre-include=jitify_preinclude.h')

https://godbolt.org/z/oKM7a4

At the moment, we don't have any "official" support for NVRTC / Jitify in CUB. Some folks have been making parts of it work, but we lack testing coverage and would need to make a focused push to get any reliable level of support for it. This is something I'd like to do at some point, but don't have the cycles for right now, unfortunately.
But on a related note -- I'm working on addressing NVIDIA/cub#228 by adding more strict C++ conformance testing, specifically to work around some issues on NVRTC. I don't see how that could fix this problem, but then again I'm not sure why this problem is happening in the first place :) So maybe it will help?

At the moment, we don't have any "official" support for NVRTC / Jitify in CUB. Some folks have been making parts of it work, but we lack testing coverage and would need to make a focused push to get any reliable level of support for it. This is something I'd like to do at some point, but don't have the cycles for right now, unfortunately.
But on a related note -- I'm working on addressing NVIDIA/cub#228 by adding more strict C++ conformance testing, specifically to work around some issues on NVRTC. I don't see how that could fix this problem, but then again I'm not sure why this problem is happening in the first place :) So maybe it will help?

@leofang Can you reduce the reproducer in https://github.com/cupy/cupy/issues/4383#issuecomment-748283782 to remove external deps and just use headers from the CUDA Toolkit?

@allisonvacanti Yes, from the godbolt test (https://godbolt.org/z/oKM7a4) that I posted above, the first 3 cupy headers can be safely removed (I cherry-picked a specialization so that they are not needed), and the two CUB headers can be replaced by either those from CUDA Toolkit or from "legacy" CUB (1.8.0, which godbolt also provides). Note that godbolt built it just fine using nvcc.

@leofang Just to confirm -- You still see NVRTC fail with
cub/cub/block/block_reduce.cuh(45): error: this declaration has no storage class or type specifier

after those changes?

@leofang Just to confirm -- You still see NVRTC fail with
after those changes?

Yes @allisonvacanti, so this is precisely the test you're asking for:
https://github.com/cupy/cupy/blob/4e63310017851789a9a8787b8b11ffb62bcebe03/tests/cupy_tests/core_tests/test_raw.py#L1273-L1286
Previously (before I skipped it with xfail), it fails with the same error on Windows. The kernel there is just a very innocent one, with one CUB header included (which is not used at all) to test if Jitify is working as expected or not.
Just FYI, I tested CUB's master branch (by updating and force-using CuPy's CUB bundle) on Windows (#4824), but the same error still happens.

Thanks @leofang -- I heard back over the weekend and the compiler folks are looking for a reproduction without any extra headers at all, including those from CUB.
Does this still happen if the empty macro is defined in the input source directly?

Does this still happen if the empty macro is defined in the input source directly?

According to the test @emcastillo and I did (https://github.com/cupy/cupy/pull/4771#issuecomment-790271807), no, which is why we were so puzzled. @emcastillo also tried hiding the empty macros in a header and include it, and we had no luck. Perhaps we need to hide it deeper to confuse the compiler...

Update: This issue is fixed by #7851, where a coherent view of all CCCL headers is enabled.


I am not able to start the react application on Mac.

If you have a general question about Create React App or about building an app with Create React App we encourage you to post in GitHub Discussions instead of this issue tracker. The maintainers and other community members can provide help and answer your questions there: https://github.com/facebook/create-react-app/discussions
If you're looking for general information on using React, the React docs have a list of resources: https://reactjs.org/community/support.html
If you've discovered a bug or would like to propose a change please use one of the other issue templates.
Thanks!

Please be more specific here; what were the commands you ran, what versions did you use, can you reproduce the problem in a sample repository? The screenshot you tried to upload didn't successfully load either, could you try that again?


ble_gatt_chr_def, Required fields/characteristics in struct?

I am new to Rust and not very knowledgeable about programming in general so bear with me.
I am using an example from the ApolloLabs ESP32C3 repository.
The compiler seems to want a "cpfd" field or characteristic in the ble_gatt_chr_def struct.

I don't see that field listed here.
I have tried adding it to the struct and assigning various values or even variations of Option<>, but the compiler gives a few different errors after that point. Again, I have no idea what I'm doing to be honest.
Google is no help and doesn't return much in regards to "cpfd".
I'm compiling with 5.2.1.
My target is correct. "riscv32imc-esp-espidf"
The following is present in sdkconfig.
CONFIG_BT_ENABLED=y
CONFIG_BT_BLE_ENABLED=y
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
Any ideas?

It looks like it may be in Volume 3, Part G, Chapter <IP_ADDRESS> and <IP_ADDRESS> of the Bluetooth Core specification v5.3. "Characteristic Presentation Format Declaration". I completely stole the info pointing to the exact bluetooth spec from another forum. I won't take credit there.

This issue is the same as in #110, #123.
It was fixed in the main branch but not released as a new version.
I have just released version 0.6.1 which fixes this issue.
Please check.


Error AttributeError: module 'ESMF' has no attribute 'api'

I installed the required library but got the following error when import xesmf. It has problem when import ESMF.
I am working under CentOS 6.5.  I installed xESMF using conda install -c conda-forge esmpy.
Below is the error:
AttributeError                            Traceback (most recent call last)
 in ()
4 import numpy as np
5 import xarray as xr
----> 6 import xesmf as xe
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/xesmf/init.py in ()
1 from . import util
2 from . import data
----> 3 from . frontend import Regridder
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/xesmf/frontend.py in ()
7 import os
8
----> 9 from . backend import (esmf_grid, add_corner,
10                        esmf_regrid_build, esmf_regrid_finalize)
11
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/xesmf/backend.py in ()
17
18 import numpy as np
---> 19 import ESMF
20 import warnings
21 import os
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/ESMF/init.py in ()
54 #### IMPORT LIBRARIES #########################################################
55
---> 56 from ESMF.api.esmpymanager import *
57 from ESMF.api.grid import *
58 from ESMF.api.mesh import *
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/ESMF/api/esmpymanager.py in ()
9 from ESMF.api.constants import *
10 from ESMF.util.exceptions import *
---> 11 from ESMF.interface.cbindings import *
12 from ESMF.util.decorators import initialize
13
~/local/bin/miniconda3/envs/pyenv/lib/python3.6/site-packages/ESMF/interface/cbindings.py in ()
9 import sys
10
---> 11 import ESMF.api.constants as constants
12 from ESMF.util.decorators import deprecated, netcdf
13 from ESMF.interface.loadESMF import _ESMF
AttributeError: module 'ESMF' has no attribute 'api'

Seems the same as #19. Does the workaround there work?

I did try but it seems irrelevant. the error happened before importing netcdf:
---> 11 import ESMF.api.constants as constants
12 from ESMF.util.decorators import deprecated, netcdf
13 from ESMF.interface.loadESMF import _ESMF

I can only find CentOS 6.6 on Docker Hub: https://hub.docker.com/_/centos/
It seems to work fine:
$ docker pull centos:6.6
$ docker run --rm -it centos:6.6 /bin/bash
$ yum install -y wget bzip2 tar which
$ cd $HOME
$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
$ bash miniconda.sh -b -p $HOME/miniconda
$ export PATH=$HOME/miniconda/bin:$PATH
$ conda install -c conda-forge esmpy
$ python -c 'import ESMF'  # no error

OK I found a terribly old AMI on AWS: https://aws.amazon.com/marketplace/pp/B00IOYDTV6
(It is so old that it doesn't even support recent hardware types!)
But I can still run the above commands to install and import ESMPy without problems. Not sure how to reproduce your error...

Closing as no further responses.  Feel free to re-open.


Plans for setNotificationIcon feature?

Hi!
I was wondering if you have any plans for implementing setNotificationIcon.
Thanks!
https://support.iterable.com/hc/en-us/articles/115000331943#add-custom-icons-to-your-push-notifications

Hi @ktnishide
Currently, it's not in our roadmap. I encourage you to do it and send a PR with this, tho. WDYT?

Hi @ktnishide
This custom icon is for each project that implements the iterable sdk.
So to put your custom icon you just have to put it in the Manifest AndroidManifest.xml (android/app/src/main/AndroidManifest.xml) of your android project, this will work perfectly for you.
Please let me know if it worked for you to close this issue 🤓 .


How to integrate a ember app + mirage with cypress?

Question:
I have some e2e tests in cypress and today I've started to setup mirage (most of the routes are complete), but I need some context switching between scenarios inside the test.
I know the tutorial here: https://miragejs.com/quickstarts/cypress but I can't use this because mirage has already started when cypress run (or I just don't know how to do that).
Is there any way to use my already configured (ember-data/ember app + mirage) with cypress?

Hm – honestly, I might try moving off of Ember CLI Mirage and just using the miragejs package directly.
Ember CLI Mirage just auto-detects the files and passes them into your server, but you can use plain imports with miragejs to do that. Then you'd have total control over how and when your server is started and stopped. (We are planning on adding APIs to ec-mirage to allow for this kind of lower-level control.)
If you wanted to stay on ec-mirage, you could set ENV['ember-cli-mirage'].enabled = false and then follow the logic in the initializer to start Mirage yourself. I think you'd just need startMirage from here:
https://github.com/miragejs/ember-cli-mirage/blob/master/app/initializers/ember-cli-mirage.js
Think there was an example of it here from way back when: https://github.com/miragejs/ember-cli-mirage/pull/323/files

Thanks to your advices I'm almost done!
The tests already deal with mirage data! :D
And now I'm in trouble with development server and other things 😄
PS: (I've removed ember-cli-mirage from app).
By the way I've added this:
// app/initializers/cypress.js
import { Server, Response } from "miragejs";
import config from 'dash/config/environment';

export default {
  name: 'cypress.js',

  initialize() {
    if (window.Cypress) {
      new Server({
        environment: "test",

        routes() {
          let methods = ["get", "put", "patch", "post", "delete"];
          let hosts = [config.HOST, config.DOORMAN]; // my app connect with multi api's

          hosts.forEach((host) => {
            this.urlPrefix = host;

            methods.forEach((method) => {
              this[method]("/*", async (schema, request) => {
                let [status, headers, body] = await window.handleFromCypress(request);

                return new Response(status, headers, body);
              })
            })
          });
        }
      })
    }
  }
};

// mirage/config.js
import { Server, Model, belongsTo, JSONAPISerializer } from "miragejs"

import snakeCase from 'lodash.snakecase'; // used in serializers to transform attr keys.

export function makeServer({ environment = "test" } = {}) {
  return new Server({
    environment,

    models: {
      user: Model,
      store: Model,
      sale: Model,
      'store-user': Model.extend({
        company: belongsTo('store'),
        user: belongsTo('user')
      })
    },

    // omitted...
    // serializers
    // routes
  });
}

And the cypress/mirage handler
// cypress/support/index.js
Cypress.on("window:before:load", (win) => {
  win.handleFromCypress = function (request) {
    return fetch(request.url, {
      method: request.method,
      headers: request.requestHeaders,
      body: request.requestBody,
    }).then((res) => {
      let content =
        res.headers.map["content-type"] === "application/json"
          ? res.json()
          : res.text()
      return new Promise((resolve) => {
        content.then((body) => resolve([res.status, res.headers, body]))
      })
    })
  }
})

But now I've some questions, I'm glad if you can help:

Is there a way to get discover emberdata models working with this kind of setup?

I've found one of yours stackoverflow questions about importing files from outside of app/ in ember. Now I'm trying to start mirage inside of a new initializer based on ember-cli-mirage addon (as you suggested) but I just get import errors.

(I think this is not related to mirage itself, but if you know something about it will be great ;))
I've noticed my factories/model definitions can't find @ember/string when I running with cypress (they worked when I had the ec-mirage), do you know something about this kind of behaviour? (because of this I needed to install extra lodash libraries to do the @ember/string job!)

@samselikoff thanks a lot for your time, you rocks!


Redirect support?

Are you guys redirect if you get 302 response code?
I'm getting Completed for url which needs to be directed to other url

@UdiOshi85 Fetch has redirect enabled by default. You can also create a custom downloader to specify the client and the client settings that Fetch can use. Please have a look at the sample code and let me know if this helps.


Investigate test timeout from nextest

We had a slow-running test that was not terminated by nextest
We have configured a timeout of 1 min. Ideally if a test takes longer than 1 minute it should be terminated bu nextest.
But for the following run
https://github.com/neondatabase/neon/actions/runs/7530476784/job/20496964721
       SLOW [>7200.000s] pageserver tenant::remote_timeline_client::tests::index_part_download_ordering
        SLOW [>7200.000s] pageserver tenant::tests::test_images
        SLOW [>7200.000s] pageserver tenant::timeline::walreceiver::connection_manager::tests::connection_no_candidate
        SLOW [>7260.000s] pageserver tenant::remote_timeline_client::tests::index_part_download_ordering
        SLOW [>7260.000s] pageserver tenant::tests::test_images
        SLOW [>7260.000s] pageserver tenant::timeline::walreceiver::connection_manager::tests::connection_no_candidate```

It was wasn't terminated by nextest

This investigation already happened here: https://github.com/neondatabase/neon/pull/6355#issuecomment-1893745763

Sorry for missing the leading title. This issue is to fix the behavior where a test should be terminated if it run longer than 1 min

@problame If you are ok I will repoen this one and change the description slightly to match the above comment. Please let me know what are your thoughts on this

Yeah, go ahead and re-open after adjusting the titles.

Sorry for missing the leading title. This issue is to fix the behavior where a test should be terminated if it run longer than 1 min

1min would actually have been counter-productive in debugging https://github.com/neondatabase/neon/issues/6373


Add high-level gsettings module

Now that https://github.com/NixOS/nixpkgs/issues/54150 was implemented in https://github.com/NixOS/nixpkgs/pull/234615 thanks to @linsui, we can implement a high-level GSettings module as a replacement for extraGSettingsOverrides.
I imagine something like
programs.gsettings = {
  checkAgainst = [ pkgs.gsettings-desktop-schemas ];
  settings = {
    "org/gnome/desktop/background" = {
       primary-color = "#000000";
    };
  };
};

which would turn into something like
programs.dconf = {
  enable = true;
  profiles.user.databases = [
    {
      settings = {
        "org/gnome/desktop/background" = {
           primary-color = "#000000";
        };
      };
    }
  ];
}

cc @NixOS/gnome @NixOS/pantheon

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/changing-gdm-gsettings-declaratively/49579/6

Instead of program.gsettings or program.dconf, wouldn't we rather move this into something like services.xserver.desktopManager.gnome with either .gsettings or .gsettingsOverride?

It is not really GNOME specific. And GSettings overrides are a specific thing (which we plan to actually remove) once this issue is resolved, so using that name would make it confusing.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/changing-gdm-gsettings-declaratively/49579/8


Creating task with large ammount of images

I am having issues creating a task with a large ammount of images (>20k).
I have tried creating it through the browser on the same machine hosting the server, and I get this error about "too many images" and a suggestion for using the 'shared' option (which from what I understood
from another issue is not functional yet?).
Then I tried creating the task through the browser on another machine (running windows); on this one it was even weirder. When I get to the file dialog to pick the images, I go to the folder where they are and "select all", after thinking for a while all the images get highlighted like they are selected but the text box with the filenames remains empty, and confirming the selection like that indeed yields 0 images.
I saw some other similar issue that stated as a fix for this to edit base.py and increase the maximum number of images and data size. I did that but it did not work (same errors as above); did I have to rebuild after editing base.py? Is there any other way to create the task?
Thanks in advance

I have also another question related to the one here, and it may appears stupid, but please I need your support:
Does the tool support uploading videos or only images ?
if supports only images, then where can I convert the video into images?
if it supports video upload, then where the main video is stored ( either video or frames ) ?
Is there a possibility to link a certain folder path to be the storage area for any video uploading process ?
Many many thanks for your support and thanks for your great effort in this tool.

@4sfaloth

Data uploading from share works. Please refer to share path documentation.
Of course, you need rebuild a container after editing server files. You also can edit it direct in container and just rerun it.
I will check you issue with file uploading from windows platform later.

@AhmedRefaat

Our tool supports video files uploading.
The FFMPEG splits you video by frames.
Frames are stored at path /home/django/data/<task_id>/data ...
Original video (and any uploaded files) stored at path /home/django/data/<task_id>/.upload, but actually video files aren't used after task creating.
If I understand you correctly, you want mount a file share to container. In such case please refer to corresponding documentation and let me know if you will have any issues.

@bsekachev
Many thanks for your reply.
Regarding my last question, no you got my question wrongly
I want to upload the videos to another place (Not the share folder). either external HDD or other machine on the network. Can you help me where can I edit to make such setup ?
Many thanks for your fast response.

@bsekachev
Thank you for your fast reply.
I will try using data upload from share again in the future. In the meantime I've rebuilt the container after changing the maximum number of images. Now, when I try to create the task on the machine running the server (ubuntu) it no longer gives the "too many images" error, but simply nothing happends when I click 'submit'. The button goes down and then is re-enabled after a second or so and I remain on the task creation window, and it is not created

@bsekachev
update: I've tried using the shared functionality (edited the docker-compose.override.yml to look like the example, just changing the paths) but there must be wrong with yhe .yml. Launching the container fails with "The compose file './docker-compose.override.yml' is invalid because: services.cvat.volumes contains and invalid type, it should be an array

@4sfaloth

Do you have any console exceptions after press of "submit" button?
Oh, you found error in documentation.
Please replace line "cvat_share:/home/django/share:ro" to "- cvat_share:/home/django/share:ro". It will fix you issue.

@bsekachev thanks again for your fast replies. Below answers in the same order as your last questions:

Indeed I do. "Failed to load resource:  net::ERR_INSUFFICIENT_RESOURCES

Thanks a lot, that did it! I managed to create the task like that

@4sfaloth
It looks like browser don't have enough resources in order to upload you file into memory. What is file size?
Thanks for you issue, it was helpful for us.

@AhmedRefaat
If you want upload files in the CVAT from other devices (disks, PCs etc), you can:

Set volumes.cvat_share.driver_opts.device variable to full directory path of "share" (or any other directory). Please read documentation.
Mount any device or remote directory into this "share" directory and browse it from CVAT client.

Did I answer on you question?

@bsekachev
Many thanks for your response, but one more small correction, I want to upload to  (not from).
So, where can I change to change the uploading bath
I want to upload (to) another device or machine.
or the answer is the same.
thanks in advance.

@AhmedRefaat
I think you can setup cvat_data volume for this purpose.
Just change path value in docker-compose.yml for services.cvat.volumes.cvat_data

@bsekachev
Do not you support working with Amazon S3 storage?

@iheggo ,
As far I know it is possible to mount Amazon S3 storage as a local drive. Thus you can use it without any problems. Just mount your storage to /mnt/mydrive and specify that cvat_data points to the directory.

It seems that the issue already collected too many questions. Let's close it for now. Don't hesitate to as questions inside our gitter

How do we upload multiple mp4 files? I have tried zipping the folder which containes all my mp4 files and trying to upload that for creating a task. However it throws this error in my console:
INFO:     <IP_ADDRESS>:0 - "GET /api/auth/rules HTTP/1.0" 304 Not Modified
2023-08-30 11:41:30,343 DEBG 'uvicorn-0' stdout output:
INFO:     <IP_ADDRESS>:0 - "GET /api/auth/rules HTTP/1.0" 304 Not Modified

@ArunimaB1995
https://opencv.github.io/cvat/docs/manual/basics/create-multi-tasks/


Feature request: splash screen

This is a nice to have.  I have figured out a workaround for now.
The JavaAppLauncher does not load a splash screen as specified by the SplashScreen-Image attribute in the main jar.  I am able to get it to load by copying the splash image into the app folder and then updating the Info.plist properties as follows:
<key>JVMOptions</key>
<array>
  <string>-splash:$APP_ROOT/Contents/Java/splash.png</string>
  ...
</array>

This works, and for now I will add a task to modify the plist after it has been generated, but it would be convenient if there was a way of adding this option ahead of time.  Right now it looks like the only options you support this way are those that are of the form key=value which does not apply here.
From GenerateInfoPlistTask.groovy:
key('JVMOptions')
   array() {
       extension.javaProperties.each { k, v->
               string("-D$k=$v")
       }
       extension.javaExtras.each { k, v->
               string("$k=$v")
       }
   }

The reason I want a splash screen is because the bundled JRE seems to take a few seconds to initialize, and I'd prefer to have faster feedback for my users.
Thanks,
Matt

I think I can accommodate this by checking for a null value and just omit the equals in that case. Something like
if (v != null) {
string("$k=$v")
} else {
string("$k")
}

Done, hopefully next version will be shortly, once I figure out the new plugin publishing stuff


Timer finish() and cancel()

The timer class should have a finish and cancel functionality

done with #84


Error responses

Purpose:

Error responses should be robust and give the user enough information to resolve their problems. The added validation recommends certain fields be included and recommends a schema for those fields.

Changes:

Add a custom Spectral rule that applies a custom Spectral function to validate 4xx and 5xx responses.
Add a custom Spectral rule that validates the error response schema is an object, has fields, such as trace, code, errors or error, etc. and validates the schema of those fields to ensure the error response follows good practices.
Defines a deduplication function and passes it to spectral to avoid deduplicating response-error-response-schema errors with the same path.
Add a custom Spectral rule to check for content object in request bodies and non-204 responses.

Tests:

Add tests to ensure warnings are issued for missing fields or invalid/incomplete schemas for each field.
Add negative tests to ensure no warnings for valid error response.
Add tests to ensure warning when content object not provided

Docs:

document reponse-error-response-schema rule
document content-entry-provided rule

:tada: This PR is included in version 0.40.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


🪲[Bug]: Alignment of cards in about section

Description
there is not perfect padding in the cards section and is not visually appealing.
Assign me this issue under GSSoC so that I can start working on it and fix it
Refrence Image

Thank you

You can work through it

I would like to work on this issue. Please assign me this issue.

I would like to work on this issue , please assign this to me.
@varshith257

I have completed the issue, fixing some more bugs that I found while working on the assigned issue, I have created the pull request #562 , Please go through that, I am closing the issue with this commit.
Thank you for assigning me the issue.


use docker image 0.5.55

Problem

Move forward to the latest docker images.

Change overview

Change all images to 0.5.55

Testing
CI will validate this

/rebase

The prerequisite of this PR is #15252

Apparently image is not yet built. I will start  a build now (will take about 30 min)

Apparently only 0.5.54 is in master.

Merged #15252 and now started a build for 0.5.55. Expect it to take 30min-1hr.

Thank you!!

/rebase

/rebase

@pankore - Ameba build failure (about pwrpc) seems a real failure - retried it several times and Amebad generally is not flaky.

@pankore - Ameba build failure (about pwrpc) seems a real failure - retried it several times and Amebad generally is not flaky.

Noted, we will check on that. Thanks!

The Build example error is expected to be fixed by #15388 .

Hi @andy31415 @woody-apple ,
Please help to check this PR again, the build example error has been fixed.
Thanks

/rebase

Hi reviewer andy31415, anush-apple, balducci-apple, Byungjoo-Lee, bzbarsky-apple, carol-apple, cecille, chrisdecenzo, chshu, chulspro, Damian-Nordic, dhrishi, electrocucaracha, franck-apple, gjc13, hawk248, holbrookt, hrajendran-samsung, isiu-apple, jelderton, jepenven-silabs, jmartinez-silabs, kpschoedel, lazarkov, LuDuda, lzgrablic02,
Please help to check this PR as it is a blocking issue to PR #15257, many thanks!

/rebase

/rebase

/rebase


Add specific bundle configuration to quote

Suppose I have a bundle "A" with 2 possible product options "B" and "C".
I want to use the quote.addProducts API call to add the "A" bundle with the "B" option but I'm not able to add the "B" option to the quote, just the "A" bundle.
In the context, I'm passing a product model for the bundle "A" and in the configuration key of the model I'm adding the configuration model for the option "B" in the optionConfigurations array. Yet it seems the API does not take that in consideration since only adds the bundle without the option to the quote.

My advice to you is to update option B to be "selected" by default in your org. Then read the product via the the product.read API and copy the value of the response's configuration property. This is the portion of the product model that when used as an input to quote.addProducts add the product and its configuration (i.e. options). If you cannot leave option B as "selected" in the org, then you can programmatically add this configuration value to the product A after reading and and before using it to add products. Make sense?

@sseixas thank you, the issue at the end was that I wasn't setting the configured = true in the bundle's configuration.


Adding few CI scripts

Is your feature request related to a problem? Please describe.
More automated test = more quality and less work :)
Describe the solution you'd like
Have a look if any of the following CI is interesting for you:
https://github.com/zaphiro-technologies/cimgen/pull/2
in which case I will be happy to open an appropriate pr to you repo.
Describe alternatives you've considered
Will only merge this CI to our repo and live with that.
Additional context
N/A

I think we can close this as well. With my recent refactorings we added more CI pipelines which uses cimgen to generate code for all languages.


Added logo

Issue Title: LOGO FOR

[x] WEBSITE

resolve issue: #issue_number  #81
Type of change ☑
What sort of change have you made:

Checklist: ☑

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added things that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published in downstream modules.

How Has This Been Tested? ⚙
Describe how have you verified the changes made.
-I have not placed that in the main website as if you need any change you can tell me,i have added the file in your list as group1 png and even added the image with this message.So if you need anychange please do let me know-

@hritika2409 There is no need of the app name in the logo, just make it appealing and according to the color theme of the webapp.

I have changed the complete logo .Is it fine .Now i made it as simple as possible and even according to the website

@hritika2409 Don't you think this all black svg will not be visible in the webapp's logo?
Maybe you should add circle white BG or something to make it visible clearly.

@singodiyashubham87 Ok i can do that but is this the final one,like i just have to add a circle with white background or you need anyother changes?

@singodiyashubham87 I have made the changes as you asked but rather than white i changed it to grey according to the website
1)The changed version:

@)If its not that visible as its background is transparent so that it can fit,it will actually look like this ,when applied:

@singodiyashubham87 Or should i remove the outline of the circle

@hritika2409 Remove the outline and also make it png(transparent bg & not white), we just wanted the circle part to be visible which is there in the logo you created.

@hritika2409 One more thing, Do remember to pull the latest changes & make your repo sync with the latest code then push o/w it will create conflicts.

I have made the changes but everytime i tried to change the code the preview site is blank

@hritika2409 Maybe you are confused in something, You don't have to change the code, you just have to add two copies of the logo image with the appropriate names (webLogo.png & readmeLogo.png)


Next release?

We are encountering this error with node v18 in CI via our precinct v9.0.1 dependency error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "12.x || 14.x || 16.x". Got "18.2.0". This commit would fix it but it hasn't been released yet. Any plans of having the next release out soon?

That's an oversight, we should have released that already. I'll look to cut one this weekend.

Successfully published detective-postcss v6.1.0 to NPM


Checkstyle: fix MethodName supplied expression #319

#319
Ready for review

v1
@eugenepeh submitted v1 for review.

[v1 1/2] Checkstyle: fix MethodName supplied expression
[v1 2/2] Checkstyle: fix MethodName rule violations

(:books: Archive)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/366/1/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Thanks @yamgent, oops yes, there's nothing wrong with the first one.
will change that line to
"We should enforce a standardization such that only method names that follows this format
"sortList_emptyList_exceptionThrown" are allowed, and others such as
"sortList_EmptyList_ExceptionThrown" (capital after underscore) should prompt an error.

They are not enforced because the regex is not written to cover these cases.

Originally, there's a supplied regex expression though, just that it is not correct.

Originally, there's a supplied regex expression though, just that it is not correct.

Oh okay, then you can just mention that the regex that was enforcing the standard was written incorrectly. The original statement can be more concise that way.

v2
@eugenepeh submitted v2 for review.

[v2 1/1] Checkstyle: fix MethodName supplied expression

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v1 and v2)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/366/2/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v3
@eugenepeh submitted v3 for review.

[v3 1/1] Checkstyle: fix MethodName supplied expression

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v2 and v3)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/366/3/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v4
@eugenepeh submitted v4 for review.

[v4 1/1] Checkstyle: fix MethodName supplied expression

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v3 and v4)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/366/4/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.


Document a couple of import requirements

This suggests a couple of paragraphs to the README to cover things that I ran into when following the tutorial and then extending it out along the lines of the Calculator sample.

+1 for it. When I followed the guidance currently, I have got some problems with it

Thanks, this is really helpful!


Cannot use the configJSON property

Hello,
Your PCF is great, but i cannot put my configJSON in the property of the PCF. Actually, the property field only allow 100 characters whereas the field should be a multiple line of text.
Can you fix the issue (allow up to 5000 characters in the field) so I can use it ?
Thank you

Hi,
Thank you for your email.
Please go developer tools (F12) ==> Inspect the TEXTBOX ==> Increase the
max length of the textaree as shown in the attached screenshot.
Thanks and regards,
Shivakumar Paragi
On Wed, 17 Feb 2021 at 16:15, FredAlainCodjia<EMAIL_ADDRESS>wrote:

Hello,
Your PCF is great, but i cannot put my configJSON in the property of the
PCF. Actually, the property field only allow 100 characters whereas the
field should be a multiple line of text.
Can you fix the issue (allow up to 5000 characters in the field) so I can
use it ?
Thank you
[image: Config JSON issue]
https://user-images.githubusercontent.com/78079220/108193356-a451ac80-7115-11eb-99ba-2049f9f8cb09.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/shivuparagi/GenericLookupPCFControl/issues/2, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALH5WWLADZ52LYAUELBRUT3S7OM55ANCNFSM4XYDVKCQ
.

Just tried it, it works perfect !
Thank you for your swift answer.
Regards,
Fred-Alain Codjia

Thank you so much.
Thanks and Regards,
Shivakumar Paragi


Worksheet name should not be XML-encoded

If you include '&' in your worksheet name, when you retrieve it, it returns &. This can lead to broken links ("#ref" in Excel, plus a warning about external spreadsheets) when using the name of the sheet in a cell formula.
  context 'when a worksheet name has an & in it' do
    let(:book) { Axlsx::Package.new.workbook }

    before do
      sheet1 = book.add_worksheet :name => 'Matter & Anitmatter'
      sheet2 = book.add_worksheet :name => 'Reference'
      sheet2.add_row(["='#{sheet1.name}'!$A$1"])
    end

    it 'Reference worksheet should not have a broken reference' do
      expect(book.worksheets[1].rows[0].cells[0].value).to_not include '&'
    end
  end

I've worked around this by using CGI.unescapeHTML on the sheetname, but in general I expect(sheet.name = value).to eq sheet.name (for any object).

This also fails for anything with quote or apostrophes in the name. For example, a tab named Seward's "folly" breaks with a #REF error trying to link to Seward's &quotfolly&quot as the tab name.
Not only must you un-escape it but the quote character needs to be escaped with by doubling when inserting into a formula:
      sheet_name = CGI.unescapeHTML(category_sheet.name).gsub("'", "''")

This second isn't an error in the way names are presented, but would be of note for the use case of using a sheet name in a reference.


Native Hue sensor: Log spam with TypeError for "off" sensor

Home Assistant release with the issue:

0.92.1
Last working Home Assistant release (if known):
CustomControls
https://github.com/robmarkcole/Hue-sensors-HASS
Operating environment (Hass.io/Docker/Windows/etc.):

Docker
Component/platform:

https://github.com/home-assistant/home-assistant/tree/dev/homeassistant/components/hue
Description of problem:
Spammed with 2 entries every 6 seconds
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

Traceback (if applicable):
2019-04-28 00:52:08 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/components/hue/sensor_base.py", line 250, in async_maybe_update_ha_state
    await self._async_update_ha_state()
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 23, in _async_update_ha_state
    await self.async_update_ha_state(self, *args, **kwargs)
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 62, in state
    return self.sensor.temperature / 100
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
2019-04-28 00:52:08 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/components/hue/sensor_base.py", line 250, in async_maybe_update_ha_state
    await self._async_update_ha_state()
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 23, in _async_update_ha_state
    await self.async_update_ha_state(self, *args, **kwargs)
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 40, in state
    return 10 ** ((self.sensor.lightlevel - 1) / 10000)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
2019-04-28 00:52:14 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/components/hue/sensor_base.py", line 250, in async_maybe_update_ha_state
    await self._async_update_ha_state()
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 23, in _async_update_ha_state
    await self.async_update_ha_state(self, *args, **kwargs)
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/hue/sensor.py", line 62, in state
    return self.sensor.temperature / 100
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
...

Additional information:
Seems NOT NONE check is missing before sensor data is used.
Extracted from the CC binary_sensor.py:
    if response["state"]["temperature"] is not None:
        data = {"temperature": response["state"]["temperature"] / 100.0}
    else:
        data = {"temperature": "No temperature data"}

Native sensor:
binary_sensor.keller_bewegungsmelder2_motion | off |
battery_level: 100
friendly_name: Keller Bewegungsmelder2 motion
device_class: motion
Details from CC:
binary_sensor.keller_motion_bewegungsmelder2 | off |
light_level: No light level data
battery: 100
last_updated: none
lx: null
dark: null
daylight: null
temperature: No temperature data
on: false
reachable: true
sensitivity: 2
threshold: 16000
friendly_name: Keller motion Bewegungsmelder2
device_class: motion

Resolved in 0.93.0.dev0


Expolited

Name
Fake Airdrop website
Description
I have just exploited. I clicked to see Rhinofinance announce in X and there was a malicious comment about DVF with the same logo and design . The hacker accessed my wallet and I got drained in around 5k. The malicious address is 0xeA9132f103AB70256FbE83E5009410810aeF59E8.
Addresses
0x72d7CB2B294cd41dd910f257BA6Ad6C6a3497E0F
Meta Article URLs
The report above.

They will never reply you on here and they can’t do anything I almost lost all my funds few days ago thanks to blackhathacker who helped me reverse the transaction message him on telegram https://t.me/Blackhathacker110


Openshift-ci model-registry deployment configuration and testing

This pull request will:
merge the script and files needed to deploy and test model-registry as part of a rhods deployment using an odh nightly image.

Output from successful local run.
`Tony@WorkMac: ~/model-registry/openshift-ci/scripts (openshiftCIModelRegistryDeployNightly) $ ./oci-model-registry-deploy.sh
Deploying opendatahub-catalogue-source from ../resources/opendatahub-catalogue-source.yaml...
catalogsource.operators.coreos.com/model-registry-test-source configured
Deployment of opendatahub-catalogue-source succeeded.
../resources/opendatahub-operator-deploy.yaml deploying
Deploying opendatahub-operator-deploy from ../resources/opendatahub-operator-deploy.yaml...
subscription.operators.coreos.com/rhods-operator unchanged
Deployment of opendatahub-operator-deploy succeeded.
../resources/opendatahub-data-science-cluster.yaml deploying
Deploying opendatahub-data-science-cluster from ../resources/opendatahub-data-science-cluster.yaml...
Warning: oc apply should be used on resource created by either oc create --save-config or oc apply
datasciencecluster.datasciencecluster.opendatahub.io/default-dsc configured
Deployment of opendatahub-data-science-cluster succeeded.
Cloning into 'temp_repo'...
remote: Enumerating objects: 385, done.
remote: Counting objects: 100% (139/139), done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 385 (delta 90), reused 62 (delta 60), pack-reused 246
Receiving objects: 100% (385/385), 166.03 KiB | 1.93 MiB/s, done.
Resolving deltas: 100% (196/196), done.
✔ Success: Deployment model-registry-db is available
✔ Success: Deployment modelregistry-sample is available
! Info: Pod model-registry-db-56598d7869-hcz6v is not running or does not have 1 containers ready
! Info: Pod model-registry-db-56598d7869-hcz6v is not running or does not have 1 containers ready
! Info: Pod model-registry-db-56598d7869-hcz6v is not running or does not have 1 containers ready
! Info: Pod model-registry-db-56598d7869-hcz6v is not running or does not have 1 containers ready
✔ Success: Pod model-registry-db-56598d7869-hcz6v is running and 1 out of 1 containers are ready
! Info: Pod modelregistry-sample-75789476d8-thfl4 is not running or does not have 2 containers ready
! Info: Pod modelregistry-sample-75789476d8-thfl4 is not running or does not have 2 containers ready
! Info: Pod modelregistry-sample-75789476d8-thfl4 is not running or does not have 2 containers ready
! Info: Pod modelregistry-sample-75789476d8-thfl4 is not running or does not have 2 containers ready
✔ Success: Pod modelregistry-sample-75789476d8-thfl4 is running and 2 out of 2 containers are ready
✔ Success: Route 'modelregistry-sample-http' exists in namespace 'default'
✔ Success: Route server is reachable. Status code: 200 OK`


Remove usage of date picker for patient date of birth

It looked like a good idea to use bootstrap-datepicker for the selection of the patient date. However, it seems like it is easier to enter the patient date of birth by typing.

Thus the usage and the library itself should be removed for now.
See

https://github.com/ksch-workflows/ksch-workflows/blob/master/user-interface/src/main/resources/static/ksch/registration/PatientFormFields.html#L14
https://github.com/ksch-workflows/ksch-workflows/blob/master/user-interface/src/main/resources/static/js/bootstrap-datepicker.min.js

Fixed.


Use Shopify-Storefront-Request-Group-ID in useShopQuery

Description
Provide a group ID to storefront API requests to enable mapping parts of the RSC request to their underlying storefront API requests.
Use an existing Request-ID as the group ID if provided by the platform.
The Shopify-Storefront-Request-Group-ID header can be provided during a technical support inquiry to aid in the process.

Before submitting the PR, please make sure you do the following:

[x] Read the Contributing Guidelines
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123)
[ ] Update docs in this repository according to your change
[ ] Run yarn changeset add if this PR cause a version bump based on Keep a Changelog and adheres to Semantic Versioning

LGTM, but why are we accepting request-id instead of accepting Shopify-Storefront-Request-Group-ID? Wouldn't that make searching harder?

@AbdulRahmanAlHamali after some discussion with other folks on Oxygen, it seemed beneficial to to have Oxygen just provide a Request-ID header and have Hydrogen act as the glue.
My log querying isn't the best but afaik you can just use the value as the entire query and it should yield all results. We can also incorporate more complicated queries like request_id=value OR shopify_storefront_request_group_id=value. I admit that this connection is now a bit buried but I think ultimately we'll be relying on links and dashboards anyways.

@uri I'm wondering if this would better be implemented at the Oxygen platform layer? Especially if the platform eventually supports non-Hydrogen frameworks.


Migrate 2SV setup page to GOVUK Design System

Trello: https://trello.com/c/Ht3aHQTT
This PR adopts the GDS design system for the show and update actions on the TwoStepVerificationController. A user sees this page when they add or change the two-step verification code for their account.
The main change to the page is the switch from collapsable sections to having everything visible by default. We considered using the step-by-step, accordion or tabs components/patterns but it's not obvious that these are suitable for forms. Also since there's not a lot of content in each "step", it's not obvious that there's a lot of benefit to the user of hiding some of the "steps". So we've just made the "steps" into headings with non-collapsing content. We don't think this looks too bad. If there's too much content on the page, we could consider splitting the page into multiple pages.
As the design system recommends, we now show an error summary at the top of the page (with a link to the relevant heading) as well as highlighting the form field where the error has occurred. However, at the moment we've added the summary below the main page heading. This is because to add it any higher would mean we need to add it to the layout which currently applies to every page. However, it would definitely be possible if it's seen as important.
We've retained the QR code as it was previously rendered (using a data uri in an img tag). We noticed that the qrcode gem supports SVG rendering so we could adopt that as an enhancement (it would make the QR code more responsive to screen width). This would also fix a content security policy warning we're seeing in production[1].
The new version of the page doesn't include any of the tracking that was in the original version. Since it's not immediately obvious how to implement this in the new system we want to validate that the existing tracking was useful and actually being used before we go to the trouble of re-implementing it in the new system.
The following screenshots capture the main interactions, we can demo the additional states (such as a cancel link being available when the user first sets up 2sv) if it helps to review this.
[1] We see [Report Only] Refused to load the image... in production, but the QR code image does seem to render (in Chrome at least, we haven't tested it elsewhere). The image doesn't render in development, so changing it would improve the development story.
Before
Step 1 expanded (default)

Step 2 expanded

Step 3 expanded

When incorrect code entered

After
On page load

User opens additional details

When incorrect code entered

Design feedback:
Looks great! Few suggestions -

Can we switch the lead text and the warning - so 'make your signon account more secure' comes first, followed by warning
Can we use the step-by-step component for these pages, it's more like-for-like - https://components.publishing.service.gov.uk/component-guide/step_by_step_nav
Would be great to set up analytics for the show all/hide all toggle to see how users use this page
Warning needs to come above the title 'use a new phone' - https://design-system.service.gov.uk/components/error-summary/

Rebasing on main and force-pushing before merging.


[HW] Clare Ellis-Goss

Name: Clare Ellis-Goss
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/clare-ellis-goss-6a2ab24/
Attach the homework step I screenshots below:

Unfortunately I ran out of time to complete the homework step II app, but I have saved Ania's video and will be watching it & following her instructions as soon as I can (I have a 1 year old so have very minimal spare time...)

Awesome job Clare! No worries on part 2, it is an optional (but useful) portion.

Hey Clare Ellis, great job! Congrats! Here is your badge! https://api.badgr.io/public/assertions/VXq6fZS8QsiTF6DJIL7wMg


how to stream multisource camera in real-time with trtis

i have several models, for example: detection model, recognition model,...
output of previous model is input of later model. How can i use trtis to stream 10 or more camera in real-time. (not concern in hardware)  @deadeyegoodwin

Please take a look at the NVIDIA Deepstream project. Triton is integrated in the latest release. https://developer.nvidia.com/deepstream-sdk

hi @deadeyegoodwin @tanmayv25  . thank for your reply.
i use multhreading to send multi-source camera to trt server one by one.
Each thread processes 1 camera corresponding to 1 userdata. Like your example.
Howerver, when i process 2 or 3 camera. i usually got bellow error.
 self.batch_size)
  File "/home/ducht/.local/lib/python3.6/site-packages/tensorrtserver/api/__init__.py", line 1667, in async_run
    inputs, outputs, flags, batch_size, corr_id, priority, timeout_us, contiguous_input)
  File "/home/ducht/.local/lib/python3.6/site-packages/tensorrtserver/api/__init__.py", line 1293, in _prepare_request
    c_uint64(input_value.size * input_value.itemsize))))
  File "/home/ducht/.local/lib/python3.6/site-packages/tensorrtserver/api/__init__.py", line 261, in _raise_if_error
    raise ex
tensorrtserver.api.InferenceServerException: [ 0] expecting 1 invocations of SetRaw for input 'input0', one per batch entry

The inference calls across separate threads are not thread-safe. Looks like SetRaw calls are facing a race condition across separate threads. Are you using separate InferContext objects to process streams from different cameras?

i use same inferContext for different camera

i think it is similar with your code, you also create 1 infercontext
ctx0 = InferContext(FLAGS.url, protocol, model_name, model_version,
                        correlation_id=correlation_id0, verbose=FLAGS.verbose,
                        streaming=True)

and use this contex for 2 user (1 and 2). but i don't know what corr_id mean.
In Python API, there are no parameter like corr_id:
async_run(inputs, outputs, batch_size=1, flags=0)

In

The example indeed uses only one InferContext because here only one thread is issuing the requests. There is only one async_run call at a time. What I could get from your case was that there are multiple streams from camera sharing the InferContext object, and might be calling their own async_runs without protection. Internally, this call sets the inputs with SetRaw command and then issue the final inference. These two steps must be atomic. Because async_run is not thread-safe, you might be seeing the above exception when setting input for another request was attempted before the earlier request was issued.
Look here for the async_run documentation: Link.
For sequential (stateful) models with multiple instances, users can specify the correlation_id with the request. The server will ensure that request with identical correlation_id will go to the same model instance. Look here for more details.


Add Docker benchmarking.

LGTM. Please merge after fixing the doc comments.
Thank you!

I'm not sure if I interpreted your comments correctly, so I just deleted the explanations of the task breakdown. Is that close to what you meant?


Add notes for national clouds

@gsacavdm : Thanks for your contribution! The author, @aljo-microsoft, has been notified to review your proposed change.


Update advanced-hunting-expert-training.md

Updated the Youtube video on the site to the most recent one.

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/7629

@schmurky Please merge this PR. Thanks

It's the same video, no need to update. Kindly delete this branch.


Remove get(), post(), and various route helper functions

In gitlab by @A-Lawrence on Aug 24, 2016, 01:11
The get, post, and other route helper functions have been removed. You may use the Route facade instead.

In gitlab by @NFarrington on Sep 3, 2016, 00:11
Completed by 6dac7f01c786c8047226612acdf2098cae0c6666


when i use the git,the vscode will broke down

VSCode Version: Code 1.4.0 (6276dcb0ae497766056b4c09ea75be1d76a8b679, 2016-08-04T16:45:31.680Z)
OS Version: Windows_NT ia32 10.0.10586

Steps to Reproduce:

@WinDaX We can only help you if you provide sufficient informations. That includes precise steps to reproduce and a description of the problem

Closing since no response happened in 14 days.


[PS] C:\script>.\HealthChecker.ps1 -BuildHtmlServersReport Doesn't appear to be any Health Check XML files here....stopping the script[Issue] - Health Checker

Provide Version Number
Provide the version of the script that has the issue.
Describe the issue
A clear and concise description of the issue.
Expected behavior
A clear and concise description of what you expected to happen.
Script Output
If applicable, add the exception that wasn't handled.
Additional context
Add any other context about the problem here.

@samemee please provide a little more context about the issue that you see.

Well i am trying to run healthchecker on our exchange 2019, but it's take too long time on a server it's stuck more then 2 hours. On another server i wanted to get report but got this error: Doesn't appear to be any Health Check XML files here....stopping the script

You have to run the script normally before you can run the script with the -BuildHtmlServesReport as it requires the data from that to build the HTML report.
If it has been stuck for more than 2 hours, that can be because a cmdlet is having a problem which we have seen in the past before, which there is nothing that we can really do for that besides determine which cmdlet is causing the problem. The other is you put the Windows PowerShell session in SELECT mode which froze the screen.

Is this script safe to run on our production environment?

Is this script safe to run on our production environment?

Alot of our customers run this script in production. However, every environment has their own restrictions for security or business reasons. This would be dependent on your own business.

closing due to inactivity.

You have to run the script normally before you can run the script with the -BuildHtmlServesReport as it requires the data from that to build the HTML report.

^^Please add to the documentation/webpage


Evaluate channel flow for for the source-build repository

Right now source-build is flowing bits out of .NET Eng - Latest and into the main branches of a few repositories. I think this needs to be re-evaluated a bit, especially since coherency is apparently quite important (this will be a challenge). Some points to think about:

By convention, the .NET Eng channels are for engineering system binaries. @MichaelSimons indicates that source-build bits should be viewed as product dependency, and so I think the use of this channel doesn't make a ton of sense.
The source-build binaries flow to a mix of SDK (templating and sdk) and tooling repos (nuget.client, roslyn) - After .NET 6 ships, there will probably be a series of .NET 7 previews and .NET 6 SDKs that will insert into the same versions of VS. The SDK branches will be different for these two sets of releases, but the tooling repos will utilize the same branches. Typically, though...the tooling repos will remain on the servicing engineering channels, while .NET 7 will move forward on latest.
Many of the tooling repos do not take arcade updates super-actively. This is especially true with nuget.client, which typically ships bits on-demand out of the dev branch. In contrast, the source-build repo is very active in taking new arcade builds, which means it revs very often. This means that maintaining coherency is going to be very hard.
There may come a time in .NET 7 where some tooling repos are dependent on .NET 7 bits, and some are dependent on .NET 6.

Potential options/recommendations:

Source-build could be re-mapped onto a channel that maps to the supporting runtime, like .NET 6.
We could introduce new channels for source-build outputs.
I recommend that we drastically reduce the rate of change in the source-build repo. Do not take all arcade updates (maybe only on demand?). Otherwise coherency is going to be very difficult to achieve on a regular basis.

@MichaelSimons


Mixnet v1

This is a base branch for all subsequent Mixnet v1 implementation, so we don't mess the master branch before having stable mixnet implementation.

Hey @bacv, I'm requesting a review to you. This PR contains all Mixnet v1 implementations that have been reviewed as small individual PRs. I've merged all small PRs into this branch, to not mess up the master until I can have a confidence.
Now I think we can merge this into master. Although all small PRs have been reviewed separately, I'd like to ask for your review especially for deployment scripts because I've removed the mixnode binary from the nodes directory, and changed deployment stuff (docker, CI, ...) to make the cluster work only with libp2p (without enabling mixnet for now). After merging this, I'm going to add the mixnet compilation feature and add the mixnet network adapter for consensus, mempool, and DA. Please note that we're not gonna have the mixnode binary again. The mixnode functionality has been implemented to be embeded into the nomos-node binary.
@danielSanchezQ I think we can merge this PR to master without reviewing everything line by line again. After merging this, I'm gonna work on the remaining stuff and open new PRs directly to the master. I think it would be good to merge this now before we forget what we've discussed in the code reviews.


gclient sync --force --jobs=1   update failed.

hello ,
https://github.com/pagespeed/ngx_pagespeed/wiki/Building-PSOL-From-Source
depot_tools update failed. Conflict in /root/bin/depot_tools
Cannot rebase: You have unstaged changes.

That's weird, sounds like you (or someone else) had hand-edited something
in depot_tools, and then its attempts to self-update failed.
Does the first part ring any bells?
On Tue, May 23, 2017 at 10:49 PM, Patrick Peng<EMAIL_ADDRESS>wrote:

hello ,
https://github.com/pagespeed/ngx_pagespeed/wiki/Building-PSOL-From-Source
depot_tools update failed. Conflict in /root/bin/depot_tools
Cannot rebase: You have unstaged changes.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pagespeed/ngx_pagespeed/issues/1423, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ADl1RMhA9m7ztYkRxTctn6zwjtM6dRy_ks5r85qqgaJpZM4NkiI1
.


Successful sale should get an alert

Done in https://github.com/macterra/artx-market/commit/849181ba3b2f288450cd0215e22b1dd661fdbd75


BUG Don't fail on empty locale

Fixes #423
Not actually sure if this fixes the error, but need @derralf to please confirm.
If this doesn't fix the error please debug what var_dump($locale); is returning.

The CWP kitchen sink shows a bunch of touch points where this error is now occurring, e.g. https://travis-ci.org/silverstripe/cwp-recipe-kitchen-sink/jobs/389445192. Failing hearing from @derralf are you happy for me to test this change and approve it myself?

Confirming that this fixes the error when the locale is empty. You're right in your previous comment that the fact that this occurs indicates a bug somewhere, but including the changes in this PR now fixes the original problem safely in that the return value from DetectLocaleMiddleware::getDomainLocale is now always a string and never a Locale object


[Feature]: Keep scores of players in a session

Contact Details
<EMAIL_ADDRESS>Context
It would be nice if each player had a score for each session, so that a "match" can be built up.
Proposed Solution
Have a "reset scores" key, which will reset scores at the main screen. Show the scores when a game is finished. This means that there will have to be a "Player 1" and a "Player 2". Each of which can be O's or Crosses as they choose.
Alternatives
N/A
Version
1.0.0
What platforms are you using ?
Virtual Sphere
Relevant log output
No response
Code of Conduct

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

Also allow a user to enter their name, not to have "PLAYER 1" all the time - limit it to 10 characters.

Remember to push the content of this branch into DEVELOP - NOT MAIN !

Steps to achieve:

Move "Help" text to top line and change to H - Toggle Help
2).  Display Player1/Player 2 etc below the large X and Cross
Display the scores 3-4 character toward the center of the players

provide a method to enter player names - limit to 7 characters

Scores will be a max of 255 before they reset to zero.

Buggy score system - revamp :-)

Closed as completed and merged to develop


Embed version string from git description

so that rskey --version may be used to confirm the desired version is installed.

Offhand I'm guessing this isn't going to be sufficient to work with goreleaser 🤔


Release v7 of Variant Switcher

This has already been published.
To test, verify that you can see v7's changelog item showing up at https://www.figma.com/community/plugin/971482182464094790/Variant-Switcher, and that the plugin works as specified

I didn't notice this before but not recognizing the click on box, just the title.
https://user-images.githubusercontent.com/119693939/236918068-8ab7fe04-3709-4f0f-9045-2d2d791b0f9a.mov

(#65 shall be merged to dev first before I can merge dev to master)


Cannot save test generation report in case of Timeout

Description
Sometimes tests generation fails with timeout. Test report genaration must work correctly anyway.
To Reproduce
Generate tests for the following code snippet:
public class A {

    public int hangForSeconds(int seconds) {
        for (int i = 0; i < seconds; i++) {
                Thread.sleep(1000);
        }
        return seconds;
    }
}

Visual proofs (screenshots, logs, images)

Additional context
See bug https://github.com/UnitTestBot/UTBotJava/issues/1098 - it is a similar, but different issue
May be it's fix will be helpful.

I have this popup when I generate tests for Spring project.
And I think it's due to zero(?) spring report support, not to timeouts.


YoutubeMusic Volume

First of all, I'm a newb. I barely know what I'm doing.
Regardless, I still managed to put together a very simple player that looks and does exactly like I want by starting from the Rainmeter example provided. I exclusively use it for the browser version of YTM (https://music.youtube.com).
There's just one thing that's not working and that I would like to fix, if possible:
[MeasureVolume]
Measure=Plugin
Plugin=WebNowPlaying
PlayerType=Volume
Substitute="":"N/A"

[MeterVolProgressBar]
Meter=Bar
MeasureName=MeasureVolume
X=580
Y=7
W=7
H=42
BarColor=255,255,255,255
SolidColor=125,125,125,128
BarOrientation=Vertical
LeftMouseUpAction=[!CommandMeasure MeasureVolume "SetVolume 100-$MouseY:%$"]

[MeterVolumeDebug]
Meter=String
x=570
y=55
FontColor=255,255,255,255
Group=DynamicColors
MeasureName=MeasureVolume

It seems that I'm unable to get the MeasureVolume to work properly. It always output 100 regardless. Even when using the bar to change it 'manually', it will revert back to 100 on the next tick. I also tried a more straightforward SetVolume +5 like in the original example but that gave the same results.
Changing the volume inside the browser also does not affect the player Volume at all.
Maybe I'm missing something. Maybe it's just not something that,s possible with YTM. Either way, I don't really know where else to ask so I'm hoping someone here can help me shed some light on this issue.

Do you have the browser extension installed?
By "it will revert back to 100 on the next tick" do you mean the volume in rainmeter will revert, or that the YTM volume is stuck?

Yes I do have the extension installed.
I mean the volume in rainmeter. I can still play with the volume from the website itself, but the widget will always show like it's at full volume. like it's not picking up the volume value properly from youtube music.
Also, I just tested and:
It does however pick up the volume from Youtube itself. and it does adjust the bar according to what I adjust the youtube video  volume to be.
there's an issue if I try the other way around: if I change the volume from the the widget by clicking on the bar it doesnt adjust properly and only bring the volume down. But that might very well be an error on my part in the widget code.

Well I do know that the current extension does not read YouTube volume correctly, I'm not sure about ytm though. I have that fixed on a local version which I don't want to release yet so maybe I'll just backport the volume fixes later.

Alright well, I'll fiddle on my end, but let me know if I can provide any info that could also help you look as to why ytm is not working at all.

Just to let you know that I've managed to make the volume slider work as expected for Youtube itself.
but the YoutubeMusic is still a no go.
again, If I can provide any kind of information to help you find what might be causing the issue, do not hesitate.

I'm still unable to replicate this, are you perhaps also experiencing this issue?

Not a rainmeter plugin issue regardless, open an issue on keifufu/WebNowPlaying instead if you still experience this issue.


Application error: a client-side exception has occurred (see the browser console for more information).

This is the error message I get when I try using this code from the hosted subdomain.

hello, there! did you follow this https://github.com/abdibrokhim/humanaize?tab=readme-ov-file#-run-locally ?

Sorry, I haven't tried running it locally. I only pasted gpt generated text
on your subdomain. I am trying to go local right now. And I must say that
you are not just cool but also special!
On Thu, Dec 19, 2024 at 2:05 PM Ibrohim Abdivokhidov <
@.***> wrote:

hello, there! did you follow this
https://github.com/abdibrokhim/humanaize?tab=readme-ov-file#-run-locally ?
—
Reply to this email directly, view it on GitHub
https://github.com/abdibrokhim/humanaize/issues/1#issuecomment-2553432073,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AL5OG57HPUX3YGQA347KLID2GKSAJAVCNFSM6AAAAABT4V2ROGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJTGQZTEMBXGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

ohh, i seee the issue. will fix it)))

Thank you so much
On Thu, Dec 19, 2024 at 3:33 PM Ibrohim Abdivokhidov <
@.***> wrote:

ohh, i seee the issue. will fix it)))
—
Reply to this email directly, view it on GitHub
https://github.com/abdibrokhim/humanaize/issues/1#issuecomment-2553709257,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AL5OG56TCQONAZUB2TKFIID2GK4JZAVCNFSM6AAAAABT4V2ROGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJTG4YDSMRVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

there is an issue with ai ml api. i just send request to gpt via openai api not ai/ml api.

Yes sure, I suspected such an issue with the api.
On Thu, Dec 19, 2024 at 3:44 PM Ibrohim Abdivokhidov <
@.***> wrote:

there is an issue with ai ml api. i just send request to gpt via openai
api not ai/ml api.
Screenshot.2024-12-19.at.17.43.40.png (view on web)
https://github.com/user-attachments/assets/5259ff80-f575-40ba-932c-76e0ce14816e
—
Reply to this email directly, view it on GitHub
https://github.com/abdibrokhim/humanaize/issues/1#issuecomment-2553752539,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AL5OG54CFHUEE3Q3PFCTSBT2GK5TFAVCNFSM6AAAAABT4V2ROGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJTG42TENJTHE
.
You are receiving this because you authored the thread.Message ID:
@.***>