Error When loading 'openbmb/MiniCPM-Llama3-V-2_5'

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[x] 2. The bug has not been fixed in the latest version.

Describe the bug
I try loading and make inference using the sample code given in the github examples directory. The model that i want to load is MiniCPM-Llama3-V-2_5. Could someone help me.
Reproduction
from lmdeploy import pipeline
from lmdeploy.vl import load_image
pipe = pipeline('openbmb/MiniCPM-Llama3-V-2_5')
image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('describe this image', image))
print(response)
Environment
sys.platform: linux
Python: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
CUDA available: True
MUSA available: False
numpy_random_seed:<PHONE_NUMBER>
GPU 0,1: NVIDIA A100 80GB PCIe
CUDA_HOME: /usr/local/cuda-12.2
NVCC: Cuda compilation tools, release 12.2, V12.2.140
GCC: x86_64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
PyTorch: 2.2.2+cu121
PyTorch compiling details: PyTorch built with:
  - GCC 9.3
  - C++ Version: 201703
  - Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v3.3.2 (Git Hash 2dc95a2ad0841e29db8b22fbccaf3e5da7992b01)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - LAPACK is enabled (usually provided by MKL)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 12.1
  - NVCC architecture flags: -gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90
  - CuDNN 8.9.2
  - Magma 2.6.1
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=12.1, CUDNN_VERSION=8.9.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-stringop-overflow -Wsuggest-override -Wno-psabi -Wno-error=pedantic -Wno-error=old-style-cast -Wno-missing-braces -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=2.2.2, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF,

TorchVision: 0.17.2+cu121
LMDeploy: 0.4.2+
transformers: 4.41.2
gradio: Not Found
fastapi: 0.111.0
pydantic: 2.7.3
triton: 2.2.0

Error traceback
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[1], line 7
      4 pipe = pipeline('openbmb/MiniCPM-Llama3-V-2_5')
      6 image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
----> 7 response = pipe(('describe this image', image))
      8 print(response)

File ~/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/serve/async_engine.py:326, in AsyncEngine.__call__(self, prompts, gen_config, request_output_len, top_k, top_p, temperature, repetition_penalty, ignore_eos, do_preprocess, adapter_name, use_tqdm, **kwargs)
    318 if gen_config is None:
    319     gen_config = GenerationConfig(
    320         max_new_tokens=request_output_len,
    321         top_k=top_k,
   (...)
    324         repetition_penalty=repetition_penalty,
    325         ignore_eos=ignore_eos)
--> 326 return self.batch_infer(prompts,
    327                         gen_config=gen_config,
    328                         do_preprocess=do_preprocess,
    329                         adapter_name=adapter_name,
    330                         use_tqdm=use_tqdm,
    331                         **kwargs)

File ~/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/serve/async_engine.py:402, in AsyncEngine.batch_infer(self, prompts, gen_config, do_preprocess, adapter_name, use_tqdm, **kwargs)
    399 need_list_wrap = isinstance(prompts, str) or isinstance(
...
--> 402 assert isinstance(prompts, List), 'prompts should be a list'
    403 if gen_config is None:
    404     gen_config = GenerationConfig()

AssertionError: prompts should be a list

How did you install LMDeploy? The version 0.4.2 doesn't support openbmb/MiniCPM-Llama3-V-2_5, you should build the latest code or copy the latest code to the installation folder.

How did you install LMDeploy? The version 0.4.2 doesn't support openbmb/MiniCPM-Llama3-V-2_5, you should build the latest code or copy the latest code to the installation folder.

i install using pip install lmdeploy.

which version do i need to install. I thought version 0.4.2 is the latest version

2024-06-13 07:19:06,357 - lmdeploy - ERROR - Engine loop failed with error: MiniCPMV.forward() missing 1 required positional argument: 'data'
Traceback (most recent call last):
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/request.py", line 17, in _raise_exception_on_finish
task.result()
File "/usr/lib/python3.10/asyncio/futures.py", line 201, in result
raise self._exception.with_traceback(self._exception_tb)
File "/usr/lib/python3.10/asyncio/tasks.py", line 232, in __step
result = coro.send(None)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 824, in async_loop
await __step(True)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 810, in __step
raise e
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 802, in __step
raise out
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 751, in _async_loop_background
await self._async_step_background(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 659, in _async_step_background
output = await self._async_model_forward(inputs,
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/utils.py", line 250, in __tmp
return (await func(*args, **kwargs))
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 576, in _async_model_forward
return await __forward(inputs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 554, in __forward
return await self.model_agent.async_forward(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/model_agent.py", line 735, in async_forward
...
return self._call_impl(*args, **kwargs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
TypeError: MiniCPMV.forward() missing 1 required positional argument: 'data'
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/pygments/regexopt.py:77: RuntimeWarning: coroutine 'AsyncEngine.batch_infer..gather' was never awaited
'|'.join(regex_opt_inner(list(group[1]), '')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
CancelledError                            Traceback (most recent call last)
File /usr/lib/python3.10/asyncio/tasks.py:234, in Task.__step(failed resolving arguments)
233     else:
--> 234         result = coro.throw(exc)
235 except StopIteration as exc:
File /usr/lib/python3.10/asyncio/queues.py:159, in Queue.get(self)
158 try:
--> 159     await getter
160 except:
File /usr/lib/python3.10/asyncio/futures.py:285, in Future.await(self)
284     self._asyncio_future_blocking = True
--> 285     yield self  # This tells Task to wait for completion.
286 if not self.done():
File /usr/lib/python3.10/asyncio/tasks.py:304, in Task.__wakeup(self, future)
303 try:
--> 304     future.result()
305 except BaseException as exc:
306     # This may also be a cancellation.
File /usr/lib/python3.10/asyncio/futures.py:196, in Future.result(self)
195     exc = self._make_cancelled_error()
...
--> 178         exit(1)
179     continue
180 except Exception as e:
NameError: name 'exit' is not defined

0.4.2 is the latest version published, but openbmb/MiniCPM-Llama3-V-2_5 is added after that release.
To use openbmb/MiniCPM-Llama3-V-2_5, you could use one of the following method.

build LMDeploy yourself according to our docs
Use Githbu Action to build LMDeploy according to this comments
Install 0.4.2 and replace the installation file with latest file.

i already git clone the repo. After that i got new error.  Below is the error:
2024-06-13 07:19:06,357 - lmdeploy - ERROR - Engine loop failed with error: MiniCPMV.forward() missing 1 required positional argument: 'data'
Traceback (most recent call last):
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/request.py", line 17, in _raise_exception_on_finish
task.result()
File "/usr/lib/python3.10/asyncio/futures.py", line 201, in result
raise self._exception.with_traceback(self._exception_tb)
File "/usr/lib/python3.10/asyncio/tasks.py", line 232, in __step
result = coro.send(None)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 824, in async_loop
await __step(True)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 810, in __step
raise e
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 802, in __step
raise out
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 751, in _async_loop_background
await self._async_step_background(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 659, in _async_step_background
output = await self._async_model_forward(inputs,
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/utils.py", line 250, in __tmp
return (await func(*args, **kwargs))
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 576, in _async_model_forward
return await __forward(inputs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 554, in __forward
return await self.model_agent.async_forward(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/model_agent.py", line 735, in async_forward
...
return self._call_impl(*args, **kwargs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
TypeError: MiniCPMV.forward() missing 1 required positional argument: 'data'
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/pygments/regexopt.py:77: RuntimeWarning: coroutine 'AsyncEngine.batch_infer..gather' was never awaited
'|'.join(regex_opt_inner(list(group[1]), '')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
CancelledError Traceback (most recent call last)
File /usr/lib/python3.10/asyncio/tasks.py:234, in Task.__step(failed resolving arguments)
233 else:
--> 234 result = coro.throw(exc)
235 except StopIteration as exc:
File /usr/lib/python3.10/asyncio/queues.py:159, in Queue.get(self)
158 try:
--> 159 await getter
160 except:
File /usr/lib/python3.10/asyncio/futures.py:285, in Future.await(self)
284 self._asyncio_future_blocking = True
--> 285 yield self # This tells Task to wait for completion.
286 if not self.done():
File /usr/lib/python3.10/asyncio/tasks.py:304, in Task.__wakeup(self, future)
303 try:
--> 304 future.result()
305 except BaseException as exc:
306 # This may also be a cancellation.
File /usr/lib/python3.10/asyncio/futures.py:196, in Future.result(self)
195 exc = self._make_cancelled_error()
...
--> 178 exit(1)
179 continue
180 except Exception as e:
NameError: name 'exit' is not defined

Clone repo is not enougth.
You should either build LMDeploy yourself (the first two methods) or copy the latest code to the installation folder (/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy).

i already follow your step. After that i got new error. Can you help me. Below is the error:
2024-06-13 07:19:06,357 - lmdeploy - ERROR - Engine loop failed with error: MiniCPMV.forward() missing 1 required positional argument: 'data'
Traceback (most recent call last):
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/request.py", line 17, in _raise_exception_on_finish
task.result()
File "/usr/lib/python3.10/asyncio/futures.py", line 201, in result
raise self._exception.with_traceback(self._exception_tb)
File "/usr/lib/python3.10/asyncio/tasks.py", line 232, in __step
result = coro.send(None)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 824, in async_loop
await __step(True)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 810, in __step
raise e
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 802, in __step
raise out
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 751, in _async_loop_background
await self._async_step_background(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 659, in _async_step_background
output = await self._async_model_forward(inputs,
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/utils.py", line 250, in __tmp
return (await func(*args, **kwargs))
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 576, in _async_model_forward
return await __forward(inputs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/engine.py", line 554, in __forward
return await self.model_agent.async_forward(
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/lmdeploy/pytorch/engine/model_agent.py", line 735, in async_forward
...
return self._call_impl(*args, **kwargs)
File "/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
TypeError: MiniCPMV.forward() missing 1 required positional argument: 'data'
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
/home/mcmcssuserdata/fahmie/lm_deploy/lm_deploy/lib/python3.10/site-packages/pygments/regexopt.py:77: RuntimeWarning: coroutine 'AsyncEngine.batch_infer..gather' was never awaited
'|'.join(regex_opt_inner(list(group[1]), '')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
CancelledError Traceback (most recent call last)
File /usr/lib/python3.10/asyncio/tasks.py:234, in Task.__step(failed resolving arguments)
233 else:
--> 234 result = coro.throw(exc)
235 except StopIteration as exc:
File /usr/lib/python3.10/asyncio/queues.py:159, in Queue.get(self)
158 try:
--> 159 await getter
160 except:
File /usr/lib/python3.10/asyncio/futures.py:285, in Future.await(self)
284 self._asyncio_future_blocking = True
--> 285 yield self # This tells Task to wait for completion.
286 if not self.done():
File /usr/lib/python3.10/asyncio/tasks.py:304, in Task.__wakeup(self, future)
303 try:
--> 304 future.result()
305 except BaseException as exc:
306 # This may also be a cancellation.
File /usr/lib/python3.10/asyncio/futures.py:196, in Future.result(self)
195 exc = self._make_cancelled_error()
...
--> 178 exit(1)
179 continue
180 except Exception as e:
NameError: name 'exit' is not defined

You are using the pytorch backend. However, currently MiniCPM-V only works with turbomind backend.

See also: https://lmdeploy.readthedocs.io/zh-cn/latest/api/pipeline.html

pipe = pipeline('openbmb/MiniCPM-Llama3-V-2_5')

@Fahmie23
If you replaced all files, the above code will use turobmind backend to init the pipeline, but according to your log, there are lines like lmdeploy/pytorch/engine/engine.py saying that you are actually using pytorch backend.

can i know how can i get the latest code?

Git clone will clone the latest code.
But I have no way to know whether your correctly replaced the installation files. The log information is not right as pytorch backend should not be used.
So I suggest you to build LMDeploy with github action and install the built wheel package.

@irexyc  I run the MINICPMV-2,5 infer in lmdeploy successfully, Nice Work!
one question is that the model forward in lmdeploy is based on Fastertransfomer or pytorch ?
since there is a bug in the batch infer in Huggingface  modeling_minicpmv.py [https://huggingface.co/openbmb/MiniCPM-Llama3-V-2_5/discussions/29], so dose lmdeploy supports a correct batch infer?
Thank U!  ^_^

@AnyangAngus
Currently, the LLM part of INICPMV-2.5 only support turbomind backend which is developed based on Fastertransfomer. But in the last few versions, almost all kernels except for sampling have been rewritten.  And we support batch inference.

@AnyangAngus
For offline usage(pipeline api), you can refer to this docs
For servering, we provide openai-compatible api usage, you can refer to this docs

@AnyangAngus
For offline usage(pipeline api), you can refer to this docs For servering, we provide openai-compatible api usage, you can refer to this docs

@irexyc
As for minicpm offline usage pipeline api, I observe that the backend_config and VisionConfig do not go into effect
I reduce the cache_max_entry_count but the GPU memory still need 55G as the same as cache_max_entry_count=0.8
backend_config = TurbomindEngineConfig(cache_max_entry_count=0.2)
pipe = pipeline('/models/MiniCPM-Llama3-V-2_5', backend_config=backend_config))
I set the batch size try to reduce the GPU memory, but I still can infer batch items and the GPU memory dose not change.
vision_config=VisionConfig(max_batch_size=1)
pipe = pipeline('/models/MiniCPM-Llama3-V-2_5', vision_config=vision_config)
Is the way I passed the parameters incorrect？
and How can I pass this parameters to Minicpm2,5 correctly?
Many Thanks

This issue has been identified and has been resolved through fix #1778.

which branch should i use for suppoorting the minicpm-v-2.5?

the latest main


Running error: method does not override or implement a method from a supertype

Hi there.
When I trying to run "react-native run-android" I'm getting the following error:
Task :react-native-lanscan:compileDebugJavaWithJavac FAILED F:\Projects\JS\lanscan\node_modules\react-native-lanscan\android\src\main\java\com\odinvt\lanscan\LANScanReactModule.java:15: error: method does not override or implement a method from a supertype     @Override
Library linked according to instruction. Also I tried to remove build/.grandle folders but it's doesn't helped.
My configuration:
"react": "16.6.1", "react-native": "0.57.5", Android SDK Build Tools 27.0.3

In build.gradle, the dependency points to the latest version of the facebook sdk for android. If you look for the file in facebooks repository, they removed one of the methods from the interface
ReactPackage
My dirty solution was to go to the build.gradle file of the package in the node_modules folder and set the version to 0.20.1. Your dependencies section would end like this:
dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.facebook.react:react-native:0.20.1'
}


December 10, 2019, update for Office Online Server

Should this update (and possibly others) be added to this list?
December 10, 2019, update for Office Online Server (KB4484175)
https://support.microsoft.com/en-us/help/4484175/december-10-2019-update-for-office-online-server-kb4484175

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

ID: 9600e2c8-5479-d143-3c27-b670583f9a98
Version Independent ID: 1afa076b-0b49-a7ef-a55a-8f526d4f63c9
Content: Office Online Server release schedule
Content Source: OfficeOnlineServer/office-online-server-release-schedule.md
Product: office-online-server
GitHub Login: @santanu-wac
Microsoft Alias: samukhe

This Microsoft employee blog suggests it is a newer Cumulative Update.
https://blog.stefan-gossner.com/2020/02/11/february-2020-cu-for-office-online-server-is-available-for-download/

I would also like to see this updated if there is a new cumulative version.

new updates released monthly.
grub the latest one from https://www.catalog.update.microsoft.com/Search.aspx?q=Office Online Server

new updates released monthly.
grub the latest one from https://www.catalog.update.microsoft.com/Search.aspx?q=Office Online Server

I believe what this article states is that the last supported version is the last full release, which is Nov 2018.


【SharedPreferencesELinux】Unable to save

i run main.dart, always "Button tapped  1 time", when i restart App, it become "0 times".I just added some printing:
Future _incrementCounter() async {
final Map<String, Object> values = await prefs.getAll();
final int counter = (values['counter'] as int? ?? 0) + 1;
print('_incrementCounter:values:$values');
setState(() {
_counter = prefs.setValue('Int', 'counter', counter).then((bool success) {
print('_incrementCounter:success:$success');
return counter;
});
});
}
No matter how many times i click，output always:
_incrementCounter:values:{}
_incrementCounter:success:true
...
No error message is reported。
so，where might the problem occur?
Looking forward to your reply,
thanks.

I found the json file under ~/.local/share/app_name. The content inside is always {"count": 1}, which is not affected by clicks.

I located the problem, which is _defaultPrefix. The definitions of key between getAllWithParameters and setValue are not consistent. I can temporarily use final Map<String, Object> values = await prefs.getAllWithPrefix(""); to solve the problem.


On demand dependencies

This is one candidate solution to #126 . It is a somewhat unorthodox / outside-the-box approach. I look forward to your consideration and feedback.
Summary
This change proposes a way for Tachometer to install webdriver-related packages for specific browsers on-demand.
Background
Currently, chromedriver, geckodriver and iedriver are listed as "dependencies" in Tachometer's package.json. One noted consequence of this is that all these browser-specific webdriver packages are installed every time Tachometer is installed, even if just a subset (or none) of the related browsers are used.
Details
This change includes a new install module that contains a special async helper: installOnDemand. Using this helper, browser-specific webdriver packages are installed just in time as they are needed, as determined by the local Tachometer configuration.
As described in the code documentation, an "on-demand" dependency is any package the fits the following requirements:

It is a package listed in "devDependencies"
It is enumerated in the non-normative package.json field "installsOnDemand"

The enumeration is an attempt to be explicit about which packages may eventually be installed by Tachometer over time. However, it is not strictly required to achieve the desired result of this change.
Some additional notes about the change:

Some unrelated formatting changes resulted running npm run format, and are reflected in the diff
A new dependency pkg-install was used, but required an additional tsc flag: "esModuleInterop"

This resulted in some light code changes in a few unrelated modules in order to fix errors resulting from how imports are declared

Alternatives considered
Another suggested approach would be to try to leverage "peerDependencies". Such an approach would probably be a tiny bit more burdensome on the package author, and otherwise would not require as much code on our part. But, it also seems a semantic abuse of "peerDependencies". From the docs:

In some cases, you want to express the compatibility of your package with a host tool or library, while not necessarily doing a require of this host. This is usually referred to as a plugin. Notably, your module may be exposing a specific interface, expected and specified by the host documentation.

If we were to use "peerDependencies" to specify compatibility with e.g., "chromedriver", that seems like it would be a semantic inversion of the intended relationship between a package and its peer dependencies.

Very nice to see some progress on this task!
However, it is not clear why this cannot be solved with peerDependencies. Npm documentation says "usually", making this a recommendation, not a strong guideline.
Often tools use peerDependencies as a way to inform customers about bringing their own heavy dependency. A similar example can be found in jest-puppeteer package. It has a peerDependency on puppeteer, even though jest-puppeteer works as a "host" package in your terms.
This works great for package consumers, they explicitly install the package and handle all necessary side effects of it, for example handling custom URL to download the browser distribution.

@just-boris the Puppeteer example you gave fits the documentation's stated purpose of "peerDependency". In that case, puppeteer is indeed a basic, required dependency in order for jest-puppeteer to work.
By contrast, in the case of Tachometer, none of the "on-demand" dependencies may be required at all (when only testing Safari or Edge, for example), and in a very common case (Chrome), only one of them is needed.
To be clear, I think the "peerDependencies" approach could work. It will require some explanation, though, because the usage in Tachometer would run against the intended grain of the feature. Putting aside the documentation for a second, this is the message that NPM shows users when "peerDependencies" are unmet:
npm WARN<EMAIL_ADDRESS>requires peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

If we take a "peerDependencies" approach, documentation will probably have to explain that at least one additional package will be needed in a very common case (Chrome). And, users will be warned on every NPM install about the unmet "peerDependencies" when they aren't testing every browser, so we would probably have to reassure them that this is normal and that they only need the packages for browsers that they actually test.
Ultimately it would be simpler to rely on "peerDependencies", but less ergonomic and possibly confusing for users. I'm happy to let the Tachometer maintainers decide what suits their preference best.

One open question I have about "peerDependencies": what happens if tachometer has a peer dependency on chromedriver, and a user tries to do npx tachometer?
I don't actually know what to expect, but my intuition is that invoking Tachometer this way would no longer work for cases where a "peerDependency" was missing but required.

There are a few use-cases where peerDependencies work better.

Custom download URL for chromedriver. Their documentation recommends the following: npm install chromedriver --chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver. How will this work in case of on-demand install? Where should people pass this flag?
Running tests separately from install. For example, running tests in AWS Lambda. In this case, you prepare all artifacts at the build machine, and you do not expect any extra installations during lambda run. How can people force chromedriver installation and skip the on-demand install?

On-demand may seem nice for simple use-cases, but this magical experience wears off when it hits real use-cases.

Should it use npm or yarn?
Which working directory should it use for installation?
What if installation requires different permissions to the file system (for example, if build is happening inside docker container)?

Using peerDependencies lets consumers resolve these issues at the moment of the installation. With on-demand installation it is more difficult to support.

@just-boris thank you for your considered feedback. There are a number of threads worth pursuing here:

Custom download URL for chromedriver. Their documentation recommends the following: npm install chromedriver --chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver. How will this work in case of on-demand install? Where should people pass this flag?

At least in the case of chromedriver, the module automatically detects an existing ChromeDriver binary in the system and automatically copies it over to node_modules upon installation.
I'm not sure if the --chromedriver_cdnurl flag is even passed through when installing tachometer today. Can you or anyone else confirm that it works when chromedriver is installed as a transitive dependency?

Running tests separately from install. For example, running tests in AWS Lambda. In this case, you prepare all artifacts at the build machine, and you do not expect any extra installations during lambda run. How can people force chromedriver installation and skip the on-demand install?

This point about supporting hermetic installation is well taken @just-boris . It dovetails with some discussion I had with @aomarks yesterday. In the discussion, it was suggested that we might omit the on-demand dependencies from "devDependencies", and thus gain some free coverage for the on-demand install capabilities when we run tests.
I agree that supporting a hermetic installation of tachometer is virtuous. It seems like we support it today (although I haven't confirmed this), and it would be unfortunate to regress if that is the case. This seems like a strong argument in favor of enumerating the packages as dependencies of some kind.
I went scouring through the docs to see if there was a way to get npm to install a package's "devDependencies" in a production scenario. My thought was that if it were possible to do this, we could support a hermetic installation by telling users to install "devDependencies" even though it might seem like they don't need them. Unfortunately, there does not seem to be a way to do this, so it's not an option.
"optionalDependencies"
Then I stumbled upon something that I was not previously aware of: "optionalDependencies". These are some of the qualities of "optionalDependencies":

They are recognized by both npm and yarn
"optionalDependencies" are installed in cases where "dependencies" would be
Allegedly, yarn install --ignore-optional / npm install --no-optional will prevent "optionalDependencies" from being installed automatically

In theory we might enumerate the on-demand packages as "optionalDependencies". The standard npm install tachometer would be suitable for hermetic installation. Users who wished to have a more dynamic installation would be able to install with npm install tachomoter --no-optional, and tachometer would fall back to installing missing "optional" packages on-demand.
One hypothetical caveat to the above approach is that npx tachometer would install all "optionalDependencies". I looked and I wasn't able to find a way that this might be prevented. npx does not support forwarding npm-specific flags outside of specifying a custom npmrc file path. It is a shame, since it is probably the ideal use case for on-demand dependencies.
Settling back into reality: I experimented with several versions of Node.js and npm. I cannot seem to get "optionalDependencies" to be ignored when using the --no-optional flag. A cursory search on Github suggests that --no-optional does seem to be impotent for a few inscrutable cases, and this seems to have been going on for some time (2016, 2018).
Manual dependency installation
In the proposed change before you, we check to see if a module can be resolved by package specifier (using require.resolve) before we attempt to install it. If it can be resolved, we don't attempt to install it.
We could probably leverage this behavior to support some form of manual installation of on-demand dependencies. Either we could explain to users how to install the dependencies ahead of time themselves, or we could detect a flag, environment variable, configuration file option or equivalent at install time that triggers an ahead-of-time installation of on-demand dependencies.
I would like to hear @aomarks thoughts on this approach as a potentially suitable middle-ground to support hermitic installation.

Should it use npm or yarn?

The pkg-install module that we are leveraging to install packages on demand makes a best-effort to be adaptive depending on whether NPM or Yarn is used in the local environment. This will certainly be more brittle than the "peerDependencies" approach in absolute terms. That said, it's worth sketching out where this will break in practice, lest we make a mountain out of a mole hill. What are the user stories where pkg-install is unlikely to work as intended?

Which working directory should it use for installation?
What if installation requires different permissions to the file system (for example, if build is happening inside docker container)?

Today Tachometer does not allow these details to be customized (discounting whatever ways in which npm/yarn and Node.js can be configured in general). The on-demand modules will be installed adjacent to the rest of the tachometer module's dependencies (which is what already happens today). Would "peerDependencies"/"optionalDependencies" unlock greater flexibility here?

I would like to hear @aomarks thoughts on this approach as a potentially suitable middle-ground to support hermitic installation.

After chatting side-band with @aomarks , we agreed that it would be fine to as folks who want a hermetic installation to install the on-demand dependencies manually.
I tested this approach with npm and it worked as intended. In a test package, I installed tachometer with npm install tachometer chromedriver. The installOnDemand helper correctly detected that the chromedriver module could be resolved, so it did not attempt to install the package on-demand.
I will make a note about this in the README.

After chatting side-band with @aomarks , we agreed that it would be fine to as folks who want a hermetic installation to install the on-demand dependencies manually.

Yeah, it seems like the two main user stories are covered just fine by this PR, and we don't need peerDependencies or optionalDependencies. In the common interactive case, drivers get lazily auto-installed. If you need to control exactly which version of a particular driver you want, or want it to be installed up-front, just install it manually yourself, and we won't auto-install because the package will already be resolvable.

I'm not sure if the --chromedriver_cdnurl flag is even passed through when installing tachometer today. Can you or anyone else confirm that it works when chromedriver is installed as a transitive dependency?

chromedriver_cdnurl flag turns into npm_config_chromedriver_cdnurl environment variable, which is passed to all postinstall scripts, including transitive dependencies.
I tested npm install tachometer --chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver command and it worked as expected, chromedriver picked up the mirror url

Full installation log
$ npm install tachometer --chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver
npm WARN deprecated<EMAIL_ADDRESS>Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this package has been reintegrated into npm and is now out of date with respect to npm
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js

><EMAIL_ADDRESS>install /Users/just-boris/coding/test/node_modules/chromedriver
> node install.js

Current existing ChromeDriver binary is unavailable, proceeding with download and extraction.
Downloading from file:  https://npm.taobao.org/mirrors/chromedriver/84.0.4147.30/chromedriver_mac64.zip
Saving to file: /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/84.0.4147.30/chromedriver/chromedriver_mac64.zip
Received 1040K...
Received 2080K...
Received 3120K...
Received 4160K...
Received 5200K...
Received 6240K...
Received 7160K total.
Extracting zip contents to /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/84.0.4147.30/chromedriver.
Copying to target path /Users/just-boris/coding/test/node_modules/chromedriver/lib/chromedriver
Fixing file permissions.
Done. ChromeDriver binary available at /Users/just-boris/coding/test/node_modules/chromedriver/lib/chromedriver/chromedriver

><EMAIL_ADDRESS>install /Users/just-boris/coding/test/node_modules/iedriver
> node install.js

Downloading 64 bit Windows IE driver server
-----
invalid config loglevel="notice"
Downloading https://selenium-release.storage.googleapis.com/3.14/IEDriverServer_x64_3.14.0.zip
/var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver64/IEDriverServer_x64_3.14.0.zip extracted to /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver64
copying /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver64 to /Users/just-boris/coding/test/node_modules/iedriver/lib/iedriver64
Success! IEDriverServer binary available at /Users/just-boris/coding/test/node_modules/iedriver/lib/iedriver64\IEDriverServer.exe

Downloading 32 bit Windows IE driver server
-----
Downloading https://selenium-release.storage.googleapis.com/3.14/IEDriverServer_Win32_3.14.0.zip
/var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver/IEDriverServer_Win32_3.14.0.zip extracted to /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver
copying /var/folders/nh/77hlfv1j54ncm15vybt3r3kh0000gn/T/iedriver to /Users/just-boris/coding/test/node_modules/iedriver/lib/iedriver
Success! IEDriverServer binary available at /Users/just-boris/coding/test/node_modules/iedriver/lib/iedriver\IEDriverServer.exe

><EMAIL_ADDRESS>postinstall /Users/just-boris/coding/test/node_modules/geckodriver
> node index.js

Downloading geckodriver... Extracting... Complete.
npm WARN saveError ENOENT: no such file or directory, open '/Users/just-boris/coding/test/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/just-boris/coding/test/package.json'
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.

+<EMAIL_ADDRESS>added 364 packages from 398 contributors and audited 364 packages in 39.16s

11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

I agree that supporting a hermetic installation of tachometer is virtuous. It seems like we support it today

As far as I understand the definition of "hermetic installation" it does not work today. For this use case, I created and maintain a fork of tachometer, and this is how I ended up in this PR, hoping that the need for my fork can be resolved now.
The approach "check if the module already exists and install it otherwise" works for primary cases, but still has caveats. For example, I could prepare Chrome-only test artifacts with chromedriver dependency pre-installed, but then if it attempts to run against geckodriver, it would still spin up unexpected installation (the expected result would be an error message like "can't find geckodriver module. Run npm install geckodriver to continue").
The currently proposed auto-installation mode can be compared with driving a car that takes control over a steering wheel and smashes into a wall, because "99% of users wanted an auto-turn left there".
As a data-point, a popular bundler tool, Parcel, currently also has auto-install behavior, which is sometimes considered harmful and there are plans to disable it https://github.com/parcel-bundler/parcel/issues/2081 https://github.com/parcel-bundler/parcel/issues/4298

@just-boris thank you for your continued attention to this discussion and the useful feedback.
If I understand your comments correctly, it sounds like even without this change, you have to take extra steps in order to prepare your images correctly.
Although I personally think it is good to support hermetic installation, ultimately it is down to the maintainers of this project to decide what use cases are supported and the relative order of their priority. I think the user story you described, where an error is displayed in place of installing a module on-demand, is possible to satisfy. Perhaps all it would take is a configuration option to turn off on-demand installation.
I'll defer to @aomarks best judgement, but I would also gently offer that this may require a separate feature request (especially if Tachometer doesn't already work the way you want it to today).

Thank you for considering my replies!

it sounds like even without this change, you have to take extra steps in order to prepare your images correctly.

This is correct, this PR even in the current state is definitely makes a big progress towards more isolated installs

Perhaps all it would take is a configuration option to turn off on-demand installation.

That would be very great. It will align with what other tools (e.g. Parcel bundler) are offering for auto-install..

I'll defer to @aomarks best judgement, but I would also gently offer that this may require a separate feature request (especially if Tachometer doesn't already work the way you want it to today).

Sounds good to me!

It looks as though the tests are running into this issue: https://github.com/nodejs/node/issues/31803
TL;DR when resolving a module path - even when doing so by require.resolve - Node.js maintains a persistent cache of the results stat-ing all of the resolved lookup main entrypoints for that module.
https://github.com/nodejs/node/blob/e3e0927bb93ed92bcdfe81e7ad9af3d78ccc74fb/lib/internal/modules/cjs/loader.js#L137-L146
Based on discussion in the issue, it does not look as though there is any movement towards changing this behavior.
One potential workaround would be to spawn a child Node.js process and test for the module's presence there. This would theoretically keep the parent process' stat cache clean until we have the chance to install the missing package. It would still fall over if an ancestor module fails an attempt to require/resolve the missing package first. This failure case may amount to an edge condition, though; such an ancestor may depend explicitly on the package, so it could have already been installed.
I will experiment with the child process approach.

It looks as though the tests are running into this issue: nodejs/node#31803
TL;DR when resolving a module path - even when doing so by require.resolve - Node.js maintains a persistent cache of the results stat-ing all of the resolved lookup main entrypoints for that module. When the lookup fails initially, it foils subsequent attempts to require the desired module.
https://github.com/nodejs/node/blob/e3e0927bb93ed92bcdfe81e7ad9af3d78ccc74fb/lib/internal/modules/cjs/loader.js#L137-L146
Based on discussion in the issue, it does not look as though there is any movement towards changing this behavior.
I'm not 100% sure why this does not prevent the original solution from working outside of a testing context. I'll investigate further and report back what I learn.
One potential workaround would be to spawn a child Node.js process and test for the module's presence there. This would theoretically keep the parent process' stat cache clean until we have the chance to install the missing package. It would still fall over if an ancestor module fails an attempt to require/resolve the missing package first. This failure case may amount to an edge condition, though; such an ancestor may depend explicitly on the package, so it could have already been installed.
I will experiment with the child process approach.

Looks like you can delete entries from the resolve cache, according to https://nodejs.org/api/modules.html#modules_require_cache. Maybe that would work here?

@aomarks unfortunately, this is not a matter of clearing the module cache. There is a lower-level cache that is not directly modifiable that caches the result of fs.stat on files that are checked during the entrypoint resolution phase for a module. Clearing the module cache will work if you are hot-reloading an already-available module. But, it doesn't seem to help if no module existed the first time you tried to load it - in that case, there is no entry in require.cache at all.

The current failure in CI is a failed expectation in Firefox, where a mean statistic derived from 10 measures is expected to be greater than 20, but comes in at 19.9:
https://github.com/Polymer/tachometer/blob/88f98064dad8e1f518dd6406bd7529e1955522f7/src/test/e2e_test.ts#L172-L176
This failure appears to be a flake, and is probably unrelated to this PR. I did some very unscientific hammering on Firefox on my local machine to see if I could reproduce results that could hypothetically lead to the mean being less than 20. In fact, Firefox will sometimes measure 19ms for the length of a timeout configured to call back after 20ms. Here are the raw results of a run with 200 measures:

As you can see in the second to last row, at least one of them came in as 19. If enough come in below 20, it could pull the mean below 20 and cause the test to fail. The likelihood of failing the expectation could go up rather quickly when the sample size is small, depending on the machine that is recording the results.
I'm open to suggestions for how to address this issue. The most pragmatic choice may be to increase the sample size of the test, but there are possibly other options as well.

I have attempted to address the flake in this test by increasing the sample size to 30. This will increase the time it takes to run the test, but hopefully decrease the likelihood of a flake at the same time.

I'm open to suggestions for how to address this issue. The most pragmatic choice may be to increase the sample size of the test, but there are possibly other options as well.

Ah interesting, seems like a faulty assumption on my part that a setTimeout would always be at least the given ms. Larger sample size would probably drop the error rate a bunch, or we could rewrite the check for the mean to be within some range, instead of > the given time.


Message content length.

Hello,
I am not sure if this is a bug or a setting I missed. Is there a max content length for the email message body? They seemed to get trimmed around 2500 characters.

We have reviewed the models in the tool and in principle, there is no restriction in the length of the message. They are properly stored, but we need a bit more testing on this to verify. We'll report on this shortly. Can you please add the version of OnTask you are using?
Thanks!

We are using Version: B.2.3.1
Sorry I did a very poor job of describing the issue.
On the Actions edit_out  screen if you enter a large body of text and hit preview the pop up will not load and the text entered will be removed from the form text field content area. The content will be saved properly if you hit save first but you will not be able to preview the message.

should also note the send_email preview works with large text.

Thanks for the extra information.
We have pinpointed the issue. The fix is not trivial and may take a bit, but will be included in the next release. Stay tuned to this ticket.

Fixed in version 2.5.1


[feature]  - Add disconnect function to Ethers5

What problem does this new feature solve?
There's no function to disconnect the wallet for custom buttons.
Describe the solution you'd like
We can add the disconnect function in this hook useWeb3ModalAccount
const { address, chainId, isConnected, disconnect } = useWeb3ModalAccount()

disconnect()

or
const { open, close, disconnect } = useWeb3Modal()

disconnect()

sorry guys ,can you add olso support fo javascript ,for disconect olso ?
// im using its this way
import {createWeb3Modal} from '@web3modal/ethers5';
Last question is this already in production ? its possible to use this feature?
Thanks a lot ,
Vadim Chilinciuc

@vadimchilinciuc for JavaScript it will be modal.disconnect(). This will be on production in the next minor


Fix previousLineCount calculation

Previously the previousLineCount only added one extra line if the input wrapped, which would fail if the line was more than twice the width of the terminal.

Thanks! Looks really good. I'll publish as a patch

published


Upgrade to ember-qunit@v5 due to error in setupRenderingTest

I had to do this while I was taking a stab at implementing the TrackedStorage primitives.
This'll be required before that work lands.
There were a bunch of errors around tearing down the rendering context and this newer test packages/boilerplate resolves

cc @chriskrycho ;)

Thank you! Beta and Canary failures were already happening, so landed this.


az vm create command generates stderr for public-ip behaviour change

Describe the bug
Command Name
az vm create (as below)
az vm create -g $rgName -n $vmName --location $location
--nics $nicName--image $image --size $vmSku
--data-disk-sizes-gb $size--storage-sku $storageSku
--admin-username $userName --admin-password $pwd
--tags @("tag1=value1","tag2=value2")
-o json
Errors:
Error generated from Azure DevOps build agent when running comand (windows-latest)
#[error]WARNING: It is recommended to use parameter "--public-ip-sku Standard" to create new VM with Standard public IP. Please note that the default public IP used for VM creation will be changed from Basic to Standard in the future.
##[error]Script has output to stderr. Failing as failOnStdErr is set to true.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.
Simply run the command populated with appropriate values, and a warning will be generated to stderr about the public ip.
This causes a pipeline run task to fail unless stderr is ignored.

Create resource group and Nic to allow command to run

Expected Behavior
No public IP was specified in the command, I would not expect there to be an error output to stderr about the public-ip behaviour change. If there was going to be a warning generated regardless, I would expect it to be a stdout message as it is not a breaking warning, stderr seems to be incorrect here.
Environment Summary
Windows-10-10.0.18362-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.33.0

Extensions:
aks-preview 0.5.51
automation 0.1.1
azure-devops 0.23.0
connectedk8s 1.2.0
containerapp 0.2.0
resource-graph 2.1.0

Dependencies:
msal 1.16.0
azure-mgmt-resource 20.0.0

Additional Context

Compute

The topic of using failOnStdErr is tracked by https://github.com/Azure/azure-cli/issues/18372.


[BUG] Bloxstrap doesn't apply to the cursor

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
When I was playing Roblox after the update, the cursor became the new cartoony icon instead of the 2016 or 2007 cursor, and even when I applied it, it's still the same cartoony icon as in 2016 and 2006.

See sections 2 and 3 of https://github.com/pizzaboxer/bloxstrap/wiki/Roblox-is-still-capped-to-60-FPS-after-raising-the-limiter


IE and Safari reporting fetching errors

Both IE and Safari was reporting that there was errors fetching images when loaded into Tiles Administrator

Can not replicate this issue in latest baseline.  Closing ticket.


Added My name to the hello world.cpp

please merge this to the main repository i have added my name to the hello_world.cpp

Great job


Issue 3 readme incorrect

Gah, one sec, I accidently pushed this to my fork instead of PTD, reopening in a second


Add net/context helper.

We want to be able to easily grab a logger from the
golang.org/x/net/context#Context type we're passing around. Rather than
implementing it in each and every application, I thought it made sense
to have a helper in the logging package itself that had a sane default
behaviour.

LGTM
The only thing I think we should add is some godocs for the LogFromContext and SaveToContext functions.
Both of these helpers are going to be really handy!

I'll add godocs before merging, good point.

Docstrings added. PTAL.

Great! :+1:


@raw doesn't work correctly with JavaScript

The example in the documentation shows:
@raw
<script>
  const foo = "foo";
  console.log("This is ${foo}");
</script>
@endraw

but are you sure that is valid JavaScript?  A template literal is using a ` not a "
When it generates the code it doesn't compile. In Kotlin the ${} is not escaped and that is a valid substitution in Kotlin so it says variable not found.  I.e,..
	jteOutput.writeContent("\n  const options = {\n      moduleCache: { vue: Vue },\n      async getFile(url) {\n        console.log(`getFifle - ${url}`)\n\n        const res = await fetch(url);\n        if ( !res.ok )\n          throw Object.assign(new

For Kotlin you probably should do triple quotes 	jteOutput.writeContent("""  """)

Ugh, you are right, this is not valid javascript. I've adjusted the documentation.
There's similiar unit test for Kotlin (https://github.com/casid/jte/blob/4190ae2c0358229e1cb4e0ff617e16f07984da23/jte-kotlin/src/test/java/gg/jte/kotlin/TemplateEngineTest.java#L282), but it is nested within a content block. I'll try to add another test to reproduce your finding.
Thank you for reporting!

@lfmunoz could it be that you do use an older jte version? I added a test case and it works fine. The escaping of $ for Kotlin was introduced in this commit: 1d7d63119687674ffacb6ab592f633dfe76d1b92

Yes true I am using older version because my project is using Kotlin 1.5, the latest brings in 1.7 it seems and I get errors of incompatible versions. I tried to exclude 1.7 dependency in gradle but was having problems. Good to know it should work in latest thanks.

The fix was first released with version 2.1.2, that version did not yet include the Kotlin version bump. I think you should be able to upgrade without problems.
Version 2.2.1 caused the Kotlin incompatibility problems :-(

@lfmunoz just a fyi, we did a downgrade of the used Kotlin version, so you should be able to safely upgrade to the latest jte version 2.2.2.


formatFuntion in TableColumn should be nullable and use toString in this case

I dont see a point in using toString in a TableColumn, because there is only one object per row. Having multiple columns that just use toString would result in a table with different columns that have the same values per row (besides the title row).
If you think the proposed change should be implemented regardless, please reply. Otherwise close the issue.


Tracker 3 evalucation

TODO:

[ ] Describe the model in a few sentences.
[ ] Print (or visualize, explain, ...) ML model architecture
[ ] Run the model

Update here!


Notify users when a declare is used

Client pull request: Zarel/Pokemon-Showdown-Client#873
Check the client pull request for details on these changes.

Previous Pull Request was closed because I managed to screw up my repo, these are the same changes as before.

After poking around a bit with regex (and google) I found this which seems to work
str.replace(/<(?:.|\n)*?>/gm, ''); Which removes angle brackets and everything in between except newlines. Would this be enough for a stripHTML function? or is it too much/too little @Zarel ?

That's... one way to do it. Usually I prefer [^>]* to .*?.

Yours is alot easier to understand too, i'll use that.

I borrowed DeathlyPlays C9 to rebase btw, thats why hes showing up on the commits

If you're not going to maintain this, I guess I have to...

I wasnt aware that there were any concerns about this, I guess github never sent me a notification that you reviewed...


Remove the empty check since it was the only one.

The generated traverse methods should never call on a repeated field
that is empty.
Fixes #988

@tbkka we could add assert(!value.isEmpty) to every visitRepeated*/visitPacked* method as added safety so there is no impact in release builds, but I'm not sure if it is worth it.  Thoughts?

Thanks! Sorry about the repetitive boilerplate there.

No worries, better safe than sorry.
(although I've been wondering about gyb or something lately for some of this code/tests...)


[8.x] Adds firstOrFail to Illuminate\Support\Collections and Illuminate\Support\LazyCollections

This PR recreates the FirstOrFail methods from Eloquent collections into the Illuminate Support Collection and LazyCollection, which makes writing code a little more fluent
e.g.
OLD
 $collectionFromUser = new Collection([
            ['name' => 'foo'],
            ['name' => 'foo'],
            ['name' => 'bar'],
        ]);
// Slightly obscure code and hard to scan
if ($collectionFromUser->where('name', 'fish')->count() === 0){
    $collectionFromUser->add('fish');
}

$this->doSomethingWith($collection);

NEW
 $collectionFromUser = new Collection([
            ['name' => 'foo'],
            ['name' => 'foo'],
            ['name' => 'bar'],
        ]);

try {
   $collectionFromUser->where('name', 'fish')->firstOrFail()
}
// An Exception? This must be important, I'm glad I scanned it
catch (ItemNotFoundException){
    // Ensure user has 'fish' in their collection
    $collectionFromUser->add('fish');
}

$this->doSomethingWith($collectionFromUser);

Not sure why the checks were cancelled. I think I submitted the style fixes too early

Are we OK that firstOrFail() on a query returns a 404, whereas this (when unhandled) will return a 500?

Thanks @JosephSilber , I'm not so familiar with Lazy Collections, I'll look further later and try and get that test in you suggest.

Whoops. Seems like unless doesn't yet support the higher order proxy (it does in Laravel 9).
Guess we should just revert it back to when, and change it later in master.
Sorry.

Whoops. Seems like unless doesn't yet support the higher order proxy (it does in Laravel 9).
Guess we should just revert it back to when, and change it later in master.
Sorry.

Thought I was going mad! I'll revert tonight, but I'll add the tests. Thanks for your feedback.

Hi @JosephSilber  I've added the test as requested. If I'm honest, I don't understand Lazy Collections, so I can promise I've made the tests pass, but I can't tell you that the test is correct, and I value your feedback

Further changes made. I hope I have Managed to match your suggestions @JosephSilber

Nice work @powellblyth 👍
LGTM now.
Only outstanding question is about the inconsistency of the HTTP response. I honestly don't know know what the right answer should be here.

Nice work @powellblyth 👍
LGTM now.
Only outstanding question is about the inconsistency of the HTTP response. I honestly don't know what the right answer should be here.

Thank you. Not sure who can help about the HTTP aspect though. However, since it's not necessarily a resource, maybe the exception is ok, as you should only use this when you are expecting it. I do understand where it could confuse though.
I'm not familiar with the framework enough to even contemplate, but could the system that shows a 404 not be altered to catch both ModelNotFound as well as ItemNotFound? . I'm just throwing that one out there.

Please rebase and mark as ready.

Only outstanding question is [about the inconsistency of the HTTP response]

Further to this, if you have this in a http controller, you also get a 500
    /**
     * Display a listing of the resource.
     *
     * @return Response|View
     */
    public function index(Request $request)
    {

        $users = collect(
            [
                User::factory()->make(),
                User::factory()->make(),
            ]
        );
        return view('users.index', ['users'=>$users->sole()]);
}

so it's an existing inconsistency....

@driesvints I've re-based

[sole() return a 500] so it's an existing inconsistency

sole() should never return a 404; that doesn't even make sense.
So that's not an inconsistency at all.


The testbench will never stop

Hello,
I'm trying to reproduce the result of your ASIC design.
The tb.sv of TALCO-XDrop will never stop.
There's no break condition in the second while loop.
Can you please fix it?

Hi @masterpotato9347,
Thank you for bringing the issue to our attention. We have updated the testbench, and it works fine now. Let us know if you are still having issues.
Thanks!


OSError: Unable to download ffmpeg-osx-v3.2.4

Donate? Why?
OSError: Unable to download 'ffmpeg-osx-v3.2.4'. Perhaps there is a no internet connection? If there is, please report this problem.

So!!!! When will by SMD working correctly then I will send donate! I am pleased to do so! But not for a broken application.

iMac:smd Ducho$ ./main.py -sa "https://open.spotify.com/album/2xbzJIow0xg4zryI2hWgnX"
Traceback (most recent call last):
  File "./main.py", line 3, in <module>
    from youtube import Youtube
  File "/Users/Ducho/Downloads/smd/youtube.py", line 16, in <module>
    from moviepy.editor import *
  File "/usr/local/lib/python3.7/site-packages/moviepy/editor.py", line 26, in <module>
    imageio.plugins.ffmpeg.download()
  File "/usr/local/lib/python3.7/site-packages/imageio/plugins/ffmpeg.py", line 73, in download
    force_download=force_download)
  File "/usr/local/lib/python3.7/site-packages/imageio/core/fetching.py", line 127, in get_remote_file
    _fetch_file(url, filename)
  File "/usr/local/lib/python3.7/site-packages/imageio/core/fetching.py", line 183, in _fetch_file
    os.path.basename(file_name))
OSError: Unable to download 'ffmpeg-osx-v3.2.4'. Perhaps there is a no internet connection? If there is, please report this problem.

and after
>>> import imageio
>>> imageio.plugins.ffmpeg.download()
Imageio: 'ffmpeg-osx-v3.2.4' was not found on your computer; downloading it now.
Try 1. Download from https://github.com/imageio/imageio-binaries/raw/master/ffmpeg/ffmpeg-osx-v3.2.4 (33.8 MB)
Downloading: 35458856/35458856 bytes (100.0%)
  Done
File saved as /Users/Ducho/Library/Application Support/imageio/ffmpeg/ffmpeg-osx-v3.2.4.
>>>

result:
iMac:smd Ducho$ ./main.py -sa "https://open.spotify.com/album/2xbzJIow0xg4zryI2hWgnX"
Traceback (most recent call last):
  File "./main.py", line 10, in <module>
    import notify2
  File "/usr/local/lib/python3.7/site-packages/notify2.py", line 39, in <module>
    import dbus
ModuleNotFoundError: No module named 'dbus'

same problem

same

pip3 install dbus-python
and try again.

I got the same error for windows then I used pip3 install dbus-python but then this error msg received(not a valid win 32 application) my os is 32bit

pip3 install dbus-python
and try again.

what should I use for windows

https://github.com/artyshko/smd/issues/62#issuecomment-636327711
it may do the trick


Appointment does not store duration as an attribute

Bug Report

1.Bug URL:
Request GET /api/v1/appointments
2.Date Created:
#55
3.Defect Description:
The response returns a start datetime for appointments but does not specify the duration of the appointments. The duration may be calculated from the sum of all services associated with the appointment but should also allow client to input an arbitrary value.
4.Resolution:
I propose to add a duration attribute and put a default value.
5.Resolution Date:
TBD.
6.Screenshot Bug:
N/A

the appointment duraion can be determined by adding up all service durations, but it is reasonable to allow the user the define one, I will fix it by changing the appointment schema


[chainerx] add prod

This PR intends to add Prod to ChainerX.
It is implemented with reference of Sum.
Done :

Native Device Implementation.
Cuda Device Implementation.
Backward Function.
Python bindings for chx.prod.
Python bindings for array.prod.
Tests

TO-DO
Update Documentation

8 tests for compute_prod fail. All are the cases where dtype is float16 and device is cuda.

Numpy returns 0.0 while ChainerX returns nan.
The inputs for the failed cases are here.
From my guess, the hotspots should maybe here or here
Note : All other types for the same inputs pass.
Please Help.

@niboshi , could you help me figure why double_backward is failing but not backward? I am not sure which part of backward is wrong exactly. Thank You.

@niboshi , after merging the latest master and  addressing the above comments, the double_backward issue is resolved except for the  few random float16 cases.
The double_backward for float16 fails spurriously many times. Please review.

We're no longer merging feature PRs.
Let me close the PR.


[RESOLVED] Interface eth0(): High error rate (>2 for 5m)

Problem started at 11:33:29 on 2023.08.07
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Operational data: errors in: 0, errors out: 0
Original problem ID: 34656
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23483&eventid=34656

Problem has been resolved in 3m 0s at 11:36:29 on 2023.08.07
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Original problem ID: 34656


[FEAT] Add sparse non-negative OLS and WLS via QP for MinTraceSparse

This PR improves the current sparse non-negative reconciliation in MinTraceSparse by expanding upon the heuristic from my previous PR, #284, to improve the quality of the non-negative reconciled forecasts for large numbers of time series. It converts the OLS and WLS estimators into quadratic programming (QP) problems with non-negativity constraints, similar to the approach in MinTrace, but most importantly avoiding the evaluation of the dense $S^{T}W^{-1}S$, thereby maintaining the sparsity of the problem.
The implementation in this PR is robust and performant, allowing users dealing with large numbers of time series—which is extremely common in industrial contexts—to reliably generate high quality non-negative OLS and WLS reconciled forecasts in a fraction of the time.

Dataset
$\textup{dim} \left ( P \right )$
$K$
$T$
$h$
Method
MinTrace
MinTraceSparse
Reduction

M5
$\small{\left( 30\, 490 \times 42\, 840 \right)}$
$12$
$1\, 969$
$28$
ols
$\gt 2\,  hr$
$4.94\,  s$
$ \gt \, 99.9 \%$

M5
$\small{\left( 30\, 490 \times 42\, 840 \right)}$
$12$
$1\, 969$
$28$
wls_struct
$\gt 2\,  hr$
$1.24\,  s$
$ \gt \, 99.9 \%$

Tourism
$\small{\left( 304 \times 555 \right)}$
$8$
$228$
$12$
ols
$119\, ms$
$28.4\,  ms$
$76.1 \%$

Tourism
$\small{\left( 304 \times 555 \right)}$
$8$
$228$
$12$
wls_struct
$109\, ms$
$17.1\,  ms$
$84.3 \%$

Tourism
$\small{\left( 304 \times 555 \right)}$
$8$
$228$
$12$
wls_var
$144\,  ms$
$49\,  ms$
$66.0 \%$

It adds two new QP solvers as dependencies to the package—OSQP and Clarabel.rs—which use augmented Lagrangian and interior point algorithms respectively. These two solvers are the most performant for these sorts of problems in my experience, and perform well in benchmarks. The new behaviour is triggered by default upon instantiation of MinTraceSparse when a nonnegative of True is passed, but can be toggled off by setting qp to False, which will revert to the method detailed in #284.
I will add GLS estimators, mint_cov and mint_shrink, in a future PR as we can exploit the symmetry of $W$ by making it an upper-triangular matrix, maintaining a reasonable degree of sparsity and decreasing the time taken to invert it.
Warm Start
via modified #284
As the OSQP solver supports manually warm starting primal and dual variables, we can modify the linear operator for $P$ used in #284 to directly project onto the non-negative orthant, using GCROT(m, k) to quickly solve the linear system and generate the reconciled non-negative forecasts, $x_{0}$, to warm start the primal variables with. We could use a Jacobi preconditioner as the diagonal of $A$ in the $Ax=b$ linear system is given by the row-wise sums of $S^{T}W^{-1}$, but it is probably not well-suited for diagonal preconditioning for most aggregation structures.
The generation of $x_{0}$ comes with a small performance penalty, but it offsets this by decreasing the number of iterations to solve the primary problem below as well as increasing the chance of solving it in my experience. Also, $x_{0}$ is used as a baseline to compare the post-processed QP primal solutions to and therefore acts as an important safeguard to ensure that regardless, we return non-negative reconciled forecasts that have an objective value at least as good as $x_{0}$.
Primary Approach
via OSQP
$\begin{split} \underset{x \in \mathbb{R}^{n}}{\text{minimise}} \quad & \frac{1}{2} x^{T}W^{-1}x - \left( W^{-1}\hat{y}_{h} \right)^{T}x \end{split}$
$\begin{split} \text{subject to} \quad & 0_{n} \leq \begin{pmatrix} I_{n_{a}} \quad -A \\ 0_{n_{b}, n_{a}} \quad I_{n_{b}} \end{pmatrix}x \leq \begin{pmatrix} 0_{n_{a}} \\ \infty_{n_{b}} \end{pmatrix} \end{split}$
where $A$ is the "aggregation matrix", which describes the relationship between the bottom level (leaf node) time series and the aggregated (parent node) time series, $W^{-1}$ is the precision matrix for the problem, and $\hat{y}_{h}$ are the base forecasts for a particular horizon step, $h$.
This formulation is the most efficient as $\left(I_{n_{a}} \quad -A\right)$ has the set of all reconciled forecasts in its null space, so the graph structure is encoded in just $n_{a}$ equality constraints, with a remaining $n_{b}$ inequality constraints to constrain $x$ to the convex, non-negative feasible region of the solution space.
We try this approach first for each $h$, and if the solver solves the problem, even with reduced accuracy, the primal solutions are post-processed by clipping to $[0, \infty)$ and aggregating with $S$, then compared to $x_{0}$ to ensure they are objectively better, and the best non-negative reconciled forecasts are returned for each $h$. If the OSQP solver exceeds the maximum number of iterations for a given $h$ without finding a solution, or finds the problem to be infeasible, the secondary approach below is employed by default as a fallback, else if fallback is set to False, $x_{0}$ is returned.
Secondary Approach
via Clarabel
$\begin{split} \underset{x \in \mathbb{R}^{n_{b}}, \; z \in \mathbb{R}^{n}}{\text{minimise}} \quad & \frac{1}{2} \begin{pmatrix} x \\ z \end{pmatrix}^{T} \begin{pmatrix} 0_{n_{b}, n + n_{b}} \\ 0_{n, n_{b}} \quad W^{-1} \end{pmatrix} \begin{pmatrix} x \\ z \end{pmatrix} \end{split}$
$\begin{split} \text{subject to} \quad & Sx - \hat{y}_{h} = z \\ & \begin{pmatrix} S \quad -I_{n} \\ -I_{n_{b}, n + n_{b}} \end{pmatrix} \begin{pmatrix} x \\ z \end{pmatrix} + s = \begin{pmatrix} \hat{y}_{h} \\ 0_{n_{b}} \end{pmatrix} \\ & s \in \left\{ 0 \right\}^{n} \times \left\{ x \in \mathbb{R}^{n_{b}} : x_{i} \ge 0, \forall i = 1, \cdots, n_{b} \right\} \end{split}$
where $S$ is the "summing matrix", $z$ is an auxiliary variable, and $s$ is a composition (product) of two convex cones.
This formulation is an alternative way of framing the problem in the Wickramasuriya, Turlach, and Hyndman paper, that still maintains the sparsity. The secondary approach increases the decision variables from $n$ to $n$ + $n_{b}$ and the "nnz" of the linear constraints matrix by $2n_{b}$ relative to the primary approach, so it is a tad slower for most cases, but it tends to be more successful in my experience. Also, pairing it with a different solver, in this case Clarabel, maximises our chances of finding optimal non-negative reconciled forecasts.
Post-process
As mentioned above, if either OSQP or Clarabel return a solution, it is post-processed by clipping to $[0, \infty)$ and aggregated with $S$, then compared to $x_{0}$ to ensure it is objectively better.

Thanks this is great work!
Some minor comments so far:

You can fix the linting failing by clearing the notebook and making sure the notebooks are cleaned too. See contributing.md in the main repo folder.
I'm not too happy about adding two more solvers as dependencies, but if it makes sense performance-wise we could go for it. I do think I'd rather keep one qprog solvers instead of two, if possible. So we may want to get rid of quadprog then.
I think it's important to have a test showing the behavior of the old method compared to the two new methods, both in terms of accuracy and speed. For example, a test that reproduces the table you show above for M5 and tourism. This is because if we add a lot of additional complexity + dependencies, just want to make sure we have validated the benefits in accuracy and efficiency.
Maybe we should opt for choosing the method of preference over doing everything. I.e. choose 'heuristic', 'qp_osqp', 'qp_clarabel' or 'combined' as a string choice in the instantiation of MinTraceSparse. The default is now 'combined' , i.e. it performs a lot of work by doing everything, right? And I think we should have the default depend on how clear the benefit is based on the tests. E.g. if very minor benefit in speed & accuracy -> keep 'heuristic' as default, and the new dependencies are not added as a dependency but something users should install themselves when calling these options.

Hi, Olivier! I hope you're well.

Thanks for the elaborate reply, hope you're well too. Bit of holidays, so late reply from my side.

The linting issue is strange, thanks for pointing that out! I thought I ran nbdev_clean before staging, but I'll double check my environment before my next commit.

In my IDE (VSCode) I need to make sure the notebooks are cleared, then saved, and then cleaned. That usually fixes it.

Yup, I also thought that three is close to excessive. The good news is that they're both light on dependencies as both have numpy and scipy dependencies which don't conflict with ours. OSQP has a third dependency called qdldl.
Would you rather scale it down to one sparse QP solver? It's straightforward to express the secondary approach in a problem format that OSQP will accept as the only change is reformulating the linear constraints, or vice versa for Clarabel. In my experience, the trade-off between the two in this context is that OSQP is slightly faster than Clarabel but slightly less reliable, particularly for the second approach unless you set higher accuracy, hence the incorporation of the two solvers.
Unfortunately, we have to keep quadprog for now until MinTraceSparse has all of the functionality of MinTrace, as neither OSQP nor Clarabel support dense matrices.
My design decision for the PR just comes down to my workflow in my job and what I think is most valuable in a large business context. When evaluating tens or hundreds of millions of forecasts, it's important to have a process that's robust and performant. At that scale, in this case it's inconsequential whether for example, the QP solvers struggled with a particular reconciliation problem, or which if any of the two approaches were successful, as long as the best estimate coherent non-negative forecasts are returned for a given y ^ h and method, which is ultimately the output that's useful in a business context. Hence, the fallback to the secondary approach with Clarabel to try to obtain a high quality solution if the primary approach with OSQP is unsuccessful, along with the important use of the heuristic solution as a baseline and a safeguard, as both are fast to compute.
I understand if you think this methodology isn't suitable for most users of the package. If you'd like, I can easily simplify it and scale it way back to something like MinTrace, where it attempts to solve the problem (we can just use the primary approach) and raises an exception if it's unsuccessful, rather than warning the user and returning the best estimate, like the heuristic solution, for them to use and evaluate regardless.
I find the QP solutions almost always improve upon the heuristic solution if successful, which you can measure by using the heuristic solution as a baseline and calculating metrics like the MSSE or RMSSE. I can put something together that quantitatively shows the differences between the QP approaches and the heuristic approach and measures the alignment of the two approaches with the dense approach in MinTrace at different tolerances.
This is purely anecdotal, but using x 0 as a warm start helps to either decrease the number of iterations to arrive at the same solution, or make a problem that is supposedly dual infeasible be solved, at least with reduced accuracy, within the maximum number of iterations. In the first case, the overhead to generate x 0 isn't usually worth the reduced number of iterations in my opinion, but given that the latter case can also occur, along with the use of x 0 as a baseline and a safeguard, it's something that I find useful.
Let me know what you think and I can do the tests and make the changes. 😄

I'm fine with adding dependencies, and the proposed workflow, if we have a test demonstrating the clear benefit over the scaled down / simple solution. In my opinion, the result of that test/comparison decides what the default should be. Little benefit? Keep default at 'heuristic' or 'osqp', or whatever we think is the best default. Large benefit? Keep default at 'combined', which is the workflow you've suggested at this moment. The benefit should be well balanced between additional computational cost vs accuracy. That's why the test for multiple datasets, including runtime per solution and accuracy per solution is necessary. Then we can make that decision. Wdyt?


Varying mismatch causing shaders to fail.

It seems like actions.base_varying_index must be one greater than the highest location = line in any glsl shader in the code does that make sense? forward+ (clustered) is the only place where location = 11 shows up.

@lyuma suggested I put this up for review.

iFire sent me the error log from Godot that led to this PR:
   at: _compile_variant (servers/rendering/renderer_rd/shader_rd.cpp:282)
ERROR: Failed parse:
ERROR: 0:712: 'location' : overlapping use of location 11
ERROR: 1 compilation errors.  No code generated.
 677 | layout(location = 10) out flat uint instance_index_interp;
 678 |
 679 | #ifdef USE_MULTIVIEW
 680 | #ifdef has_VK_KHR_multiview
 681 | #define ViewIndex gl_ViewIndex
 682 | #else
 683 |
 684 | #define ViewIndex 0
 685 | #endif
 686 | vec3 multiview_uv(vec2 uv) {
 687 | 	return vec3(uv, ViewIndex);
 688 | }
 689 | layout(location = 11) out vec4 combined_projected;
 690 | #else
 691 |
 692 | #define ViewIndex 0
 693 | vec2 multiview_uv(vec2 uv) {
 694 | 	return uv;
 695 | }
 696 | #endif
 697 |
 698 | invariant gl_Position;
 699 |
 700 | layout(set = 3, binding = 3) uniform highp texture2D m_dus_BumpMap;
 701 | layout(set = 3, binding = 8) uniform highp texture2D m_dus_EmissionMap;
 702 | layout(set = 3, binding = 1) uniform highp texture2D m_dus_MainTex;
 703 | layout(set = 3, binding = 9) uniform highp texture2D m_dus_OutlineWidthTexture;
 704 | layout(set = 3, binding = 4) uniform highp texture2D m_dus_ReceiveShadowTexture;
 705 | layout(set = 3, binding = 6) uniform highp texture2D m_dus_RimTexture;
 706 | layout(set = 3, binding = 2) uniform highp texture2D m_dus_ShadeTexture;
 707 | layout(set = 3, binding = 5) uniform highp texture2D m_dus_ShadingGradeTexture;
 708 | layout(set = 3, binding = 7) uniform highp texture2D m_dus_SphereAdd;
 709 | layout(set = 3, binding = 10) uniform highp texture2D m_dus_UvAnimMaskTexture;
 710 | layout(location=11) out highp vec3 m_tspace0;
 711 | layout(location=12) out highp vec3 m_tspace1;
 712 | layout(location=13) out highp vec3 m_tspace2;
 713 | const highp float m_isOutline=1.0;
 714 | const bool m_CALCULATE_LIGHTING_IN_FRAGMENT=true;
 715 | const highp float m_PI_2=6.28319;
 716 | const highp float m_EPS_COL=1e-05;
 717 |

The shader which caused the issue can be found here:
https://github.com/V-Sekai/Godot-MToon-Shader/blob/main/mtoon.gdshader#L83..L85
Specifically, the three varyings:
varying vec3 tspace0;
varying vec3 tspace1;
varying vec3 tspace2;

These varyings were assinged location 11, 12 and 13 but should have been 12, 13 and 14 because 11 was already used by combined_projected
That's what this PR is changing.
From what I can tell, this issue only affects forward clustered.

Thanks!


x86 support

System information

TensorFlow version (you are using): 2.3.0
Are you willing to contribute it (Yes/No): No

Describe the feature and the current behavior/state.
libtensorflow for x86(e.g. i386/i486/i586/i686)
Will this change the current api? How?
No
Who will benefit with this feature?
32 bit processor users
Any Other info.

I'm willing to set this up and start doing it.
I would just like to know if I would require a 32 bit system for developing this.

No, we can compile from a 64-bit host machine. There are a few examples here that we can port from TF 1.x:
https://github.com/bytedeco/javacpp-presets/blob/master/tensorflow/cppbuild.sh

I'm willing to set this up and start doing it.
I would just like to know if I would require a 32 bit system for developing this.

Look at the comment from saudet(https://github.com/tensorflow/java/issue_comments/709710745_)
You can compile 32 bit binaries from 64-bit host machine.
But I can not compile 64 bit binaries from 32 bit host machine.


String Compare

"abc" < "ad"
Evaluates to True in GoLang.
Please add string compare as I need it for a project I'm open-sourcing soon.

I was a little hesitant to do this, since I've never used lexicographical ordering like this. And since there are so many ways to lexicographically order, it seemed better suited to users writing functions to fit the needs they have.
But it looks like Python, Ruby, Nim, (Go, of course), Mongo, SQL, and many others all support this operation using their normal comparator operators; so it's more common than I thought.
I'll probably have time to implement this during the coming week. Will update once it's up.

Added as of 188c506adbcda72cfa0ad361291617bf793ccbf3 .


[1.20.1] Screen will not turn off based on distance, no matter how far away it is.

Those configs dont work,Even though I have been far away from the screen, the audio still remains.
webdisplays_client.toml

@GiantLuigi4 didn't you have a fix for this?

I thought I did, but I don't entirely know
noticed some spots where the list of screens gets cleared without closing the browsers
I believe I've fixed it in the format branch, but I seem to have broke mouse handling

can confirm that I broke mouse handling in my changes

for me the screen is staying entirely, until I'm out of the video render distance, at which point the display is remaining
not sure that that config is hooked up to anything


Redesign for support Right to Left languages

How can I locate fixed columns in right side of the screen in GanttChart (or other sheets type)?

@emranovin did you achieved RTL on the chart?

@emranovin did you achieved RTL on the chart?

I'm afraid not. I've implement my own custom view.


Add nginx ingress controller monitoring sources

We are using nginx ingress controller on our production environment. It's sometimes very important to have nginx status handy to find out what's happening on the nginx server, like the nginx connections count or requests per second. Before we moved to kubernetes, we have that metrics collected by tcollector and ganglia.
I've looked into the source code and docs, and did not find any instructions for how to add a new source.

We're not adding new sources at the moment.  In the future, such a usecase will be covered as part of the new monitoring vision by the third-party monitoring pipeline components (see https://github.com/kubernetes/community/blob/master/contributors/design-proposals/monitoring_architecture.md)


Status of this project

Hey,
What is the status of this project?
Is it working with current AWX?
Thanks,

After we started to add Tower configuration support directly to Ansible, I haven't really moved it forward. It does work as-is.


Error when trying to increase Latent Dimension for VAE

Hey Guys,
I want to increase the Latent Dimension of the Model. However, I always get this error and am not able to fix it:
`ValueError: in user code:
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\engine\training.py", line 2041, in predict_function  *
    return step_function(self, iterator)
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\engine\training.py", line 2027, in step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\engine\training.py", line 2015, in run_step  **
    outputs = model.predict_step(data)
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\engine\training.py", line 1983, in predict_step
    return self(x, training=False)
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\utils\traceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
File "C:\Users\User\miniconda3\envs\ML\lib\site-packages\keras\engine\input_spec.py", line 296, in assert_input_compatibility
    f'Input {input_index} of layer "{layer_name}" is '

ValueError: Input 0 of layer "decoder" is incompatible with the layer: expected shape=(None, 4), found shape=(None, 2)`

The code seems to just work for latent dim = 2. So, obviously the the decoder expects 4 dimensional input (in my case I set latent dim = 4) but gets the wrong size. The output of the encoder should be 4 dim though, so I don't know where the error lies. Any ideas?

found the error, I added my own Callbacks where I gave the predict function the wrong input.


Multiaxis

Multiaxis controller/device, tested also with client and GUI
All motor methods have the axis number as the first argument.
Added naxes() method to abstract motor class
Status is a list of MotorStatus classes, one for each axis.
Removed publisher socket from motor controller.
Updated simulator motor and test code, pytest passes.

Codecov Report

Merging #2 (db1a9e2) into main (c63a256) will decrease coverage by 6.32%.
The diff coverage is 86.79%.

@@            Coverage Diff             @@
##             main       #2      +/-   ##
==========================================
- Coverage   72.90%   66.58%   -6.33%
==========================================
  Files          25       25
  Lines        1244     1257      +13
==========================================
- Hits          907      837      -70
- Misses        337      420      +83

Impacted Files
Coverage Δ

test/integration/integration_test.py
96.18% <0.00%> (-3.10%)
:arrow_down:

plico_motor_server/controller/runner.py
81.66% <50.00%> (-8.81%)
:arrow_down:

plico_motor_server/devices/picomotor.py
54.28% <63.33%> (-36.90%)
:arrow_down:

plico_motor_server/devices/abstract_motor.py
69.23% <92.30%> (-0.22%)
:arrow_down:

plico_motor_server/controller/controller.py
95.38% <100.00%> (-1.39%)
:arrow_down:

plico_motor_server/devices/simulated_motor.py
100.00% <100.00%> (ø)

test/controller/controller_test.py
96.61% <100.00%> (+0.05%)
:arrow_up:

test/devices/simulated_motor_test.py
95.00% <100.00%> (ø)

plico_motor_server/devices/fake_newfocus8742.py
47.36% <0.00%> (-47.37%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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


No packets being detected, but puts the container to sleep

I've managed to spin up lazytainer and the target container (in this case carlogger) where LT can and does pause CL after 60 seconds if inactivity. During those 60 seconds I can access CL as you'd expect, but LT doesn't detect any packets (running VERBOSE=true, it's showing 0 packets). This is with me clicking around different pages and accessing the GUI for the CL service.
I'm obviously missing something here but can't figure it out. I've spun up the examples separately for satisfactory and minecraft practically verbatim (changed the volumes for those two services only) and the same kind of behaviour persists. It's not a firewall issue, the subnet is wide open for testing this, and LT does put these containers on pause/stop (whichever is specified).
Any idea what (probably really simple thing) I could be missing?
services:
  ## CarLogger (lubelogger)
  carlogger:
    image: ghcr.io/hargata/lubelogger:latest
    container_name: carlogger
    restart: unless-stopped
    network_mode: service:lazytainer
    mem_limit: 4g
    cpu_shares: 1024
    security_opt:
      - no-new-privileges:true
    volumes:
      - ./carlogger/config:/App/config
      - ./carlogger/data:/App/data
      - ./carlogger/documents:/App/wwwroot/documents
      - ./carlogger/images:/App/wwwroot/images
      - ./carlogger/temp:/App/wwwroot/temp
      - ./carlogger/log:/App/log
      - ./carlogger/keys:/root/.aspnet/DataProtection-Keys
    #ports:
    #  - 9099:8080
    depends_on:
      - lazytainer
    labels:
      - "lazytainer.group=ytdl"

  lazytainer:
    container_name: lazytainer
    image: ghcr.io/vmorganp/lazytainer:master
    environment:
      - VERBOSE=true # probably set this to false unless you're debugging or doing the initial demo
    ports:
      - 9099:8080 #carlogger
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    labels:
      - "lazytainer.group.carlogger.pollRate=1"
      - "lazytainer.group.carlogger.inactiveTimeout=60"
      - "lazytainer.grou.carlogger.minPacketThreshold=1"
      - "lazytainer.group.carlogger.ports=9099"
      - "lazytainer.group.carlogger.sleepMethod=pause" # can be either "stop" or "pause", or left blank for stop

The port specified in this line:
      - "lazytainer.group.carlogger.ports=9099"
should be the internal port, so in your case 8080
Once you change that, you're also going to run into an issue with these:

Missing the p in group in this line, which should still work because of the default, but not as you'd expect.

      - "lazytainer.grou.carlogger.minPacketThreshold=1"
                        ^

The group you're using on your carlogger container is ytdl instead of carlogger

Port explanation has been updated in 02a005d620b2b05e0b4648363ccf7eb1e8bd39b4
Investigating the other examples that you mentioned don't work.

I'm unable to reproduce the issues you mentioned with mc and satisfactory aside from the particular image tag for minecraft apparently not working anymore.
The lazytainer part is fine though.
I guess it could be a "wOrKs oN mY mAcHiNe" situation, but I'd be curious what your logs/config/system are like.

so the internal port thing... that went over my head, didn't realise it needed to be that. I'm pretty sure I checked with internal port too, but missing the p in group was a bit silly, well spotted. the ytdl thing - i'd actually changed the group.ytdl to group.carlogger just for this and forgot to update.
So... it works - it now detects packets! No idea why the mc and satisfactory weren't working - I tried them specifically to see if I was doing something dumb but couldn't get them to work either. looks like I might have to be one of those 'i didn't touch a thing and it just started working all of a sudden' type of people this time round. really appreciate the quick replies.
Just to give something back... I like that this also works through the socket proxy so I don't have to expose the docker.sock.


Remove the intellisense of "type":"python" in launch.json

Now, as the debugger has been split into separate extension, "type": "python", has been deprecated.
When I code "type": in launch.json, intellisense will show debugpy and python.
I think it's time to remove it.

Thank you for submitting your feature request and everyone who considered it! Unfortunately, this issue did not receive enough votes over the allotted time, and so we are closing the issue. PRs are welcome so you can create a PR that fixes this if you are passionate about getting this feature across the finish line. Thanks!


Update Chapter End copy

This will close #406 when complete, but i wanted to get some testing about how we like the possible flow.
** if you have tested this page before, you will likely need to signout and then run localStorage.clear() in your console
Chapter-1 should be tested in 2 ways, first proceed as normally and only signin at outro-2 but also signin ahead of time in outro-1 to see how the continue button is displayed
Chapter-1 End Preview
Chapter-2 End Preview

Okay I ran into a couple of issues.
Text in the profile page needs to get updated:

Also the progress isn't getting saved for some reason and ch.2 is locked even though it goes to the right page (Chapters overview).
https://user-images.githubusercontent.com/32662508/235789781-2b63dfd5-ca29-4e1b-907c-f39ce166db81.mov

Also the progress isn't getting saved for some reason and ch.2 is locked even though it goes to the right page (Chapters overview).

This is expected, will be fixed by @421

tACK

I also noticed you have a tendency to add fixes to the PR that go beyond the scope of the issue and title of the PR.

Right, sorry about that. I'll try to do better about splitting it all up moving forward

Oh no worries, no need to apologize either. Thanks for all your hard work :)

@ecurrencyhodler please retest and ack, then we can merge, thanks

An error seems to have popped up whereby the progress is not being properly saved when transitioning from local to account storage

Also after completing chapter 1, I landed on this page is this assumed to be normal I am not sure about it.

@benalleng I'm having trouble getting the sign up modal to show up after completing chapter 1 without being logged in, do I need to do something manually to trigger it?

Sorry, your deployment is failing due to this code in SignIn.tsx, which should be removed:
<SignUpModal
  open={modalOpen}
  onClose={() => {
    setModalOpen(false)
    close(Modal.SignIn)
  }}
/>


Multiplatform support

Hey there, I'm very impressed with the library and its documentation and so I would just like to leave this here.
Supporting Kotlin Multiplatform would at the very least allow multiplatform projects to enjoy the performance benefits on the JVM, even if not much can be done on other platforms.
That being said similar approaches (such as using memory copies) could easily be implemented in some other platforms to improve performance there as well.
I saw the library uses an experimental feature only supported on the JVM, so while this is not possible right now, I would still like to point out the benefits so that once it would be a viable option, multiplatform support would be considered.
Blocking Kotlin issue: https://youtrack.jetbrains.com/issue/KT-24874
Keep at it!

Thanks for creating this ticket!
A quick explanation for everyone else reading this.  The Kotlin team added the ability to override the equals & hashCode methods for inline value classes in Kotlin 1.9.0 as a preview feature.  However, this ability was only added to the JVM backend compiler which handles Android and regular JVM applications so they had to remove the announcement since they had to switch focus to K2 before the other multiplatform targets were ready.
Immutable Arrays rely on this ability to override equals & hashCode and provide correct results since these methods don't work as expected for regular arrays.  This ability would be a minimum requirement before looking at multiplatform otherwise Immutable Arrays would introduce subtle and unpredictable defects.
Since K2 took a while to get out the door, they've been rightly focusing on K2-related issues for the past couple of years.  Now that K2 is released, please upvote the ticket and share it with others to make the Kotlin team aware of how valuable custom equals & hashCode are for inline value classes:
https://youtrack.jetbrains.com/issue/KT-24874


Add pixel tolerance to hit detection

The hit detection mechanism could work with a pixel tolerance. This would make it easier to select thin (1 pixel wide) lines on touch devices.

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

Desperately need a solution to this as well. Feature icons/labels on a tablet devices are very hard to click.

Has this been resolved in any of the updates

Has anyone worked on this? It's a very important issue. In case we could fund it.

Fixed by #5995.