Support sharing FSH content via Gist links

Description
This adds support for loading content into FSH Online from a Gist. If a URL is of the form:
<base>/FSHOnline/#/gist/<gistId>

then FSHOnline will load the content of the Gist at <gistid> into the text editor. For example:
<base>/FSHOnline/#/gist/a580d9af4e81db73a26d9bbc75f428e7

will load this gist into the editor. If there are multiple files in the gist they will just be appended together.
There is also now an option to create a link from a Gist URL in the "share" options. I think we had discussed the idea of copying the content of the editor to the clipboard automatically when going to create a Gist, but I couldn't really figure out a way to designing that in a way that made sense to me, outside of just adding a "copy" option alongside "share" and "trash".
Testing
Test that

You can still generate a direct link
Generating too long of a direct link is still an error
You can load FSH from a Gist
You can load FSH from a multi-file Gist
You can load FSH from a Gist that is long enough to be "truncated" (you'll be able to tell when making the Gist since Github will tell you if the content you are viewing is "truncated")
You can create a share URL from a Gist URL
You can copy the share URL to your clipboard

I wanted to be able to test the stuff added to App.js, but I had a lot of trouble figuring out how to mock the fetch method, and ultimately couldn't do it. If anyone is able to figure that out, let me know and I can get those tests in there.

Ha.  get-the-gist.  That's funny.

@cmoesel and @jafeltra, https://github.com/FSHSchool/FSHOnline/commit/0780e82215ff0c75c62077db37ffa38348f66519 should address those issues @cmoesel found with the design. Let me know if you have additional thoughts.

I like this.  The user sees the simple approach foremost and only needs to get into the gisty details if they choose to or if their FSH is too long.  Well done.
I only have one suggestion for a possible improvement.  If the user puts in FSH that is too long, they get this dialog:

Now... if you think about the workflow, in order to actually do what we suggest, the user will need to first close the dialog, then copy their text from the FSH pane, then click the link button again (at which point we'll try to create a normal link again), and then finally create their gist.  I'd suggest we add a button or link in the dialog to copy the FSH to the clipboard right there so they don't have to close out of the dialog.  What do you think of that idea, @ngfreiter and @jafeltra?

I like this. The user sees the simple approach foremost and only needs to get into the gisty details if they choose to or if their FSH is too long. Well done.
I only have one suggestion for a possible improvement. If the user puts in FSH that is too long, they get this dialog:

Now... if you think about the workflow, in order to actually do what we suggest, the user will need to first close the dialog, then copy their text from the FSH pane, then click the link button again (at which point we'll try to create a normal link again), and then finally create their gist. I'd suggest we add a button or link in the dialog to copy the FSH to the clipboard right there so they don't have to close out of the dialog. What do you think of that idea, @ngfreiter and @jafeltra?

Yeah I think that makes sense, added a button in https://github.com/FSHSchool/FSHOnline/pull/70/commits/9420e3fe34af43ef820fd663729f28de9f7c280f.

dca5346 changes the modal per some of the offline discussions we had. It's a combination of suggestions from both @cmoesel and @jafeltra, so both let me know what you think.

I like the new approach.  It seems very consistent and is easy to use!
I noticed that my gist share link wrapped in the dialog:

If gist IDs are fairly predictable sizes (I'm guess they are?) then do you think we might want to increase the modal width so we can display them without wrapping?  Or do you think that would make the modal too wide?

This looks great to me! I really like being able to see the link we generate and I really like the new copy button, so thank you for making those changes! I didn't notice anything else besides the size of the modal already discussed above!

@jafeltra and @cmoesel, updated the maxWidth of the modal in https://github.com/FSHSchool/FSHOnline/pull/70/commits/37f4a3882f5bbc85f167f00fab7cb7af82cc5962.


Fix empty check list bug

I fixed #8

Great, thanks a lot for the PR @Sarah-Seo, and hello! 👋

Thanks for the fast merge! 👍 👍

Sure, no problem.
Was this your first PR? If so, congrats 🎉


Undefined variable: g:gutentags_options_file

Gutentag,
I've just installed gutentags and I get this error:
Error detected while processing function gutentags#setup_gutentags..<SNR>89_update_tags..gutentags#cta
gs#generate:
line   26:
E121: Undefined variable: g:gutentags_options_file
E116: Invalid arguments for function len(g:gutentags_options_file)
E15: Invalid expression: len(g:gutentags_options_file)
Error detected while processing function gutentags#setup_gutentags:
line   45:
E171: Missing :endif

The doc does not mention a g:gutentags_options_file setting, did I miss something?

You missed something, the docs mention it
Happened for me as well, using NeoBundle. Setting the variable to an empty string seems to silence the error.
There're no references to the variable, but there are checks for it's existence, and the use of something called g:gutentags_options_file later in the ctags.vim module.
The following will make gutentags not choke:
" Silences #16 in gutentag
let g:gutentags_ctags_options_file = ''
let g:gutentags_options_file = ''

Thanks @madssj :-)
I just skimmed the doc and missed that g:gutentags_ctags_options_file was mandatory.
That could be stated more clearly at the beginning of the docs.

That variable is not mandatory, it was indeed a bug :) Fixed with 09bb38c67430961798ee7eead04d53b453b39886.


Create report directory automatically

Add a new configuration to create :report_dir directory when it's set
to true.

That was fast :) THanks a lot!
Can you add this option to the README?

That was fast :) THanks a lot!
Can you add this option to the README?

I add it. But I'm not good at writing English. Please kindly review. :)

Sorry it took so long :) I think we are fine with this... just one test nitpick

@victorolinasc Sorry for the late response. I fix the code from your suggestion and add more tests including check File.mkdir_p! should match with :ok to make sure it can create. Please kindly review.

Thanks and sorry for the delay! I will be releasing it now.

@victorolinasc thank you 😊


[Bug]: Can't load gemma-2-9b-it with vllm 0.5.2

Your current environment
PyTorch version: 2.3.1+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: RED OS release MUROM (7.3.4) Standard Edition (x86_64)
GCC version: (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1)
Clang version: Could not collect
CMake version: version 3.29.2
Libc version: glibc-2.28

Python version: 3.10.9 (main, Jan 11 2023, 15:21:40) [GCC 11.2.0] (64-bit runtime)
Python platform: Linux-6.1.52-1.el7.3.x86_64-x86_64-with-glibc2.28
Is CUDA available: True
CUDA runtime version: 12.1.66
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: GPU 0: NVIDIA GeForce RTX 4090
Nvidia driver version: 530.30.02
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Архитектура:                        x86_64
CPU op-mode(s):                     32-bit, 64-bit
Address sizes:                      46 bits physical, 48 bits virtual
Порядок байт:                       Little Endian
CPU(s):                             32
On-line CPU(s) list:                0-31
ID прроизводителя:                  GenuineIntel
Имя модели:                         13th Gen Intel(R) Core(TM) i9-13900K
Семейство ЦПУ:                      6
Модель:                             183
Thread(s) per core:                 2
Ядер на сокет:                      24
Сокетов:                            1
Степпинг:                           1
CPU max MHz:                        5800,0000
CPU min MHz:                        800,0000
BogoMIPS:                           5990.40
Флаги:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi umip pku ospke waitpkg gfni vaes vpclmulqdq tme rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities
Виртуализация:                      VT-x
L1d cache:                          896 KiB (24 instances)
L1i cache:                          1,3 MiB (24 instances)
L2 cache:                           32 MiB (12 instances)
L3 cache:                           36 MiB (1 instance)
NUMA node(s):                       1
NUMA node0 CPU(s):                  0-31
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected

Versions of relevant libraries:
[pip3] flashinfer==0.0.8+cu121torch2.3
[pip3] mypy-extensions==1.0.0
[pip3] numpy==1.26.4
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] onnxruntime==1.18.0
[pip3] sentence-transformers==2.2.2
[pip3] torch==2.3.1
[pip3] torchvision==0.18.1
[pip3] transformers==4.42.4
[pip3] transformers-stream-generator==0.0.5
[pip3] triton==2.3.1
[pip3] vllm-nccl-cu12==<IP_ADDRESS>.4.0
[conda] numpy                     1.26.4                   pypi_0    pypi
[conda] sentence-transformers     2.2.2                    pypi_0    pypi
[conda] transformers              4.40.1                   pypi_0    pypi
[conda] vllm-nccl-cu12            <IP_ADDRESS>.4.0             pypi_0    pypi
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.2
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0    CPU Affinity    NUMA Affinity
GPU0     X      0-31            N/A

🐛 Describe the bug
Successfully launched gemma-2-9b-it with vlmm 0.5.1.
Following script was used
export VLLM_ATTENTION_BACKEND=FLASHINFER
python -m vllm.entrypoints.openai.api_server --port=8080 --host=<IP_ADDRESS> --model /models/gemma-2-9b-it --quantization fp8 --enforce-eager --seed 1234 --served-model-name gemma-2-9b
no issues (except sliding window warning and capping the max length to the sliding window size (4096).
Same script after installing vllm 0.5.2 gives error message:
[rank0]: Traceback (most recent call last):
[rank0]:   File "/opt/llm/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
[rank0]:     return _run_code(code, main_globals, None,
[rank0]:   File "/opt/llm/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
[rank0]:     exec(code, run_globals)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/entrypoints/openai/api_server.py", line 282, in <module>
[rank0]:     run_server(args)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/entrypoints/openai/api_server.py", line 224, in run_server
[rank0]:     if llm_engine is not None else AsyncLLMEngine.from_engine_args(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 444, in from_engine_args
[rank0]:     engine = cls(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 373, in __init__
[rank0]:     self.engine = self._init_engine(*args, **kwargs)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 520, in _init_engine
[rank0]:     return engine_class(*args, **kwargs)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 249, in __init__
[rank0]:     self.model_executor = executor_class(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/executor_base.py", line 150, in __init__
[rank0]:     super().__init__(model_config, cache_config, parallel_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/executor_base.py", line 46, in __init__
[rank0]:     self._init_executor()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 25, in _init_executor
[rank0]:     self.driver_worker.load_model()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/worker/worker.py", line 139, in load_model
[rank0]:     self.model_runner.load_model()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/worker/model_runner.py", line 256, in load_model
[rank0]:     self.model = get_model(model_config=self.model_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/__init__.py", line 21, in get_model
[rank0]:     return loader.load_model(model_config=model_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/loader.py", line 267, in load_model
[rank0]:     model = _initialize_model(model_config, self.load_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/loader.py", line 104, in _initialize_model
[rank0]:     return model_class(config=model_config.hf_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 323, in __init__
[rank0]:     self.model = Gemma2Model(config, cache_config, quant_config)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 251, in __init__
[rank0]:     self.layers = nn.ModuleList([
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 252, in <listcomp>
[rank0]:     Gemma2DecoderLayer(layer_idx, config, cache_config, quant_config)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 178, in __init__
[rank0]:     self.self_attn = Gemma2Attention(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 115, in __init__
[rank0]:     self.qkv_proj = QKVParallelLinear(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 517, in __init__
[rank0]:     super().__init__(input_size=input_size,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 244, in __init__
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 244, in __init__
[rank0]:     super().__init__(input_size, output_size, skip_bias_add, params_dtype,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 158, in __init__
[rank0]:     self.quant_method = quant_config.get_quant_method(self)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/fp8.py", line 74, in get_quant_method
[rank0]:     return Fp8LinearMethod(self)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/fp8.py", line 105, in __init__
[rank0]:     self.cutlass_fp8_supported = cutlass_fp8_supported()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/utils/w8a8_utils.py", line 15, in cutlass_fp8_supported
[rank0]:     return ops.cutlass_scaled_mm_supports_fp8(capability)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/_custom_ops.py", line 220, in cutlass_scaled_mm_supports_fp8
[rank0]:     return torch.ops._C.cutlass_scaled_mm_supports_fp8(cuda_device_capability)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/torch/_ops.py", line 921, in __getattr__
[rank0]:     raise AttributeError(
[rank0]: AttributeError: '_OpNamespace' '_C' object has no attribute 'cutlass_scaled_mm_supports_fp8'

cc @tlrmchlsmth @mgoin for cutlass and fp8

the same operation, get this error:

[rank0]: Traceback (most recent call last):
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/runpy.py", line 196, in _run_module_as_main
[rank0]:     return _run_code(code, main_globals, None,
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/runpy.py", line 86, in _run_code
[rank0]:     exec(code, run_globals)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/entrypoints/openai/api_server.py", line 216, in <module>
[rank0]:     engine = AsyncLLMEngine.from_engine_args(
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 431, in from_engine_args
[rank0]:     engine = cls(
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 360, in __init__
[rank0]:     self.engine = self._init_engine(*args, **kwargs)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 507, in _init_engine
[rank0]:     return engine_class(*args, **kwargs)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 256, in __init__
[rank0]:     self._initialize_kv_caches()
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 353, in _initialize_kv_caches
[rank0]:     self.model_executor.determine_num_available_blocks())
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 76, in determine_num_available_blocks
[rank0]:     return self.driver_worker.determine_num_available_blocks()
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/worker/worker.py", line 173, in determine_num_available_blocks
[rank0]:     self.model_runner.profile_run()
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/worker/model_runner.py", line 874, in profile_run
[rank0]:     self.execute_model(model_input, kv_caches, intermediate_tensors)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/home/powerop/work/conda/envs/qwen2/lib/python3.10/site-packages/vllm/worker/model_runner.py", line 1201, in execute_model
[rank0]:     BatchDecodeWithPagedKVCacheWrapper(
[rank0]: TypeError: 'NoneType' object is not callable

the same operation, get this error:
`
TypeError                                 Traceback (most recent call last)
Cell In[1], line 5
3 print('param = ',os.environ.get('VLLM_ATTENTION_BACKEND'))
4 from vllm import LLM,SamplingParams
----> 5 llm = LLM(model='/data/wlh/gemma_2_9b_it_prod')
6 prompts = ["Hello , who are you?"]
7 sampling_params = SamplingParams(temperature=0.8, top_p=0.95,tensor_parallel_size=1)
File ~/.local/lib/python3.8/site-packages/vllm/entrypoints/llm.py:150, in LLM.init(self, model, tokenizer, tokenizer_mode, skip_tokenizer_init, trust_remote_code, tensor_parallel_size, dtype, quantization, revision, tokenizer_revision, seed, gpu_memory_utilization, swap_space, enforce_eager, max_context_len_to_capture, max_seq_len_to_capture, disable_custom_all_reduce, **kwargs)
128     raise TypeError(
129         "There is no need to pass vision-related arguments anymore.")
130 engine_args = EngineArgs(
131     model=model,
132     tokenizer=tokenizer,
(...)
148     **kwargs,
149 )
--> 150 self.llm_engine = LLMEngine.from_engine_args(
151     engine_args, usage_context=UsageContext.LLM_CLASS)
152 self.request_counter = Counter()
File ~/.local/lib/python3.8/site-packages/vllm/engine/llm_engine.py:421, in LLMEngine.from_engine_args(cls, engine_args, usage_context)
419     executor_class = GPUExecutor
420 # Create the LLM engine.
--> 421 engine = cls(
422     **engine_config.to_dict(),
423     executor_class=executor_class,
424     log_stats=not engine_args.disable_log_stats,
425     usage_context=usage_context,
426 )
427 return engine
File ~/.local/lib/python3.8/site-packages/vllm/engine/llm_engine.py:263, in LLMEngine.init(self, model_config, cache_config, parallel_config, scheduler_config, device_config, load_config, lora_config, multimodal_config, speculative_config, decoding_config, observability_config, prompt_adapter_config, executor_class, log_stats, usage_context, stat_loggers)
249 self.model_executor = executor_class(
250     model_config=model_config,
251     cache_config=cache_config,
(...)
259     prompt_adapter_config=prompt_adapter_config,
260 )
262 if not self.model_config.embedding_mode:
--> 263     self._initialize_kv_caches()
265 # If usage stat is enabled, collect relevant info.
266 if is_usage_stats_enabled():
File ~/.local/lib/python3.8/site-packages/vllm/engine/llm_engine.py:362, in LLMEngine._initialize_kv_caches(self)
355 def _initialize_kv_caches(self) -> None:
356     """Initialize the KV cache in the worker(s).
357
358     The workers will determine the number of blocks in both the GPU cache
359     and the swap CPU cache.
360     """
361     num_gpu_blocks, num_cpu_blocks = (
--> 362         self.model_executor.determine_num_available_blocks())
364     if self.cache_config.num_gpu_blocks_override is not None:
365         num_gpu_blocks_override = self.cache_config.num_gpu_blocks_override
File ~/.local/lib/python3.8/site-packages/vllm/executor/gpu_executor.py:78, in GPUExecutor.determine_num_available_blocks(self)
74 def determine_num_available_blocks(self) -> Tuple[int, int]:
75     """Determine the number of available KV blocks by invoking the
76     underlying worker.
77     """
---> 78     return self.driver_worker.determine_num_available_blocks()
File ~/.local/lib/python3.8/site-packages/torch/utils/_contextlib.py:115, in context_decorator..decorate_context(*args, **kwargs)
112 @functools.wraps(func)
113 def decorate_context(*args, **kwargs):
114     with ctx_factory():
--> 115         return func(*args, **kwargs)
File ~/.local/lib/python3.8/site-packages/vllm/worker/worker.py:179, in Worker.determine_num_available_blocks(self)
175 torch.cuda.empty_cache()
177 # Execute a forward pass with dummy inputs to profile the memory usage
178 # of the model.
--> 179 self.model_runner.profile_run()
181 # Calculate the number of blocks that can be allocated with the
182 # profiled peak memory.
183 torch.cuda.synchronize()
File ~/.local/lib/python3.8/site-packages/torch/utils/_contextlib.py:115, in context_decorator..decorate_context(*args, **kwargs)
112 @functools.wraps(func)
113 def decorate_context(*args, **kwargs):
114     with ctx_factory():
--> 115         return func(*args, **kwargs)
File ~/.local/lib/python3.8/site-packages/vllm/worker/model_runner.py:923, in GPUModelRunnerBase.profile_run(self)
918 if not get_pp_group().is_first_rank:
919     intermediate_tensors = self.model.make_empty_intermediate_tensors(
920         batch_size=batch_size,
921         dtype=self.model_config.dtype,
922         device=self.device)
--> 923 self.execute_model(model_input, kv_caches, intermediate_tensors)
924 torch.cuda.synchronize()
925 return
File ~/.local/lib/python3.8/site-packages/torch/utils/_contextlib.py:115, in context_decorator..decorate_context(*args, **kwargs)
112 @functools.wraps(func)
113 def decorate_context(*args, **kwargs):
114     with ctx_factory():
--> 115         return func(*args, **kwargs)
File ~/.local/lib/python3.8/site-packages/vllm/worker/model_runner.py:1299, in ModelRunner.execute_model(self, model_input, kv_caches, intermediate_tensors, num_steps)
1293 if self.flashinfer_decode_workspace_buffer is None:
1294     self.flashinfer_decode_workspace_buffer = torch.empty(
1295         FLASHINFER_WORKSPACE_BUFFER_SIZE,
1296         dtype=torch.uint8,
1297         device=self.device)
1298     self.flashinfer_decode_wrapper =
-> 1299         BatchDecodeWithPagedKVCacheWrapper(
1300         self.flashinfer_decode_workspace_buffer, "NHD")
1301     self.flashinfer_prefill_workspace_buffer = torch.empty(
1302         FLASHINFER_WORKSPACE_BUFFER_SIZE,
1303         dtype=torch.uint8,
1304         device=self.device)
1305     self.flashinfer_prefill_wrapper =
1306         BatchPrefillWithPagedKVCacheWrapper(
1307         self.flashinfer_prefill_workspace_buffer, "NHD")
TypeError: 'NoneType' object is not callable
`

@tlrmchlsmth By pip for pypi, not from sources:
pip install vllm==0.5.2

Update: https://github.com/vllm-project/vllm/commit/3f3b6b21500bce2061cae33706bd47c8b6663771 made it into 0.5.1, which kind of breaks the version mismatch theory, unfortunately.

@vlsav what do you see when you run the following?
nm <your venv here>/lib/python3.10/site-packages/vllm/_C.abi3.so | grep cutlass_scaled_mm_supports_fp8

@tlrmchlsmth
00000000002a0b00 T _Z30cutlass_scaled_mm_supports_fp8l

I also encountered the same problem when deploying the gemma-2-9b-it model with VLLM 0.5.2.

+1

@jueming0312 and @twright8 it'd be helpful if you could share the output of collect_env.py

`PyTorch version: 2.3.0+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.6 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Clang version: Could not collect
CMake version: version 3.30.0
Libc version: glibc-2.31
Python version: 3.10.13 | packaged by conda-forge | (main, Dec 23 2023, 15:36:39) [GCC 12.3.0] (64-bit runtime)
Python platform: Linux-5.15.154+-x86_64-with-glibc2.31
Is CUDA available: True
CUDA runtime version: 12.1.105
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration:
GPU 0: Tesla T4
GPU 1: Tesla T4
Nvidia driver version: 550.90.07
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.9.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
CPU:
Architecture:                         x86_64
CPU op-mode(s):                       32-bit, 64-bit
Byte Order:                           Little Endian
Address sizes:                        46 bits physical, 48 bits virtual
CPU(s):                               4
On-line CPU(s) list:                  0-3
Thread(s) per core:                   2
Core(s) per socket:                   2
Socket(s):                            1
NUMA node(s):                         1
Vendor ID:                            GenuineIntel
CPU family:                           6
Model:                                85
Model name:                           Intel(R) Xeon(R) CPU @ 2.00GHz
Stepping:                             3
CPU MHz:                              2000.216
BogoMIPS:                             4000.43
Hypervisor vendor:                    KVM
Virtualization type:                  full
L1d cache:                            64 KiB
L1i cache:                            64 KiB
L2 cache:                             2 MiB
L3 cache:                             38.5 MiB
NUMA node0 CPU(s):                    0-3
Vulnerability Gather data sampling:   Not affected
Vulnerability Itlb multihit:          Not affected
Vulnerability L1tf:                   Mitigation; PTE Inversion
Vulnerability Mds:                    Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:               Mitigation; PTI
Vulnerability Mmio stale data:        Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed:               Mitigation; IBRS
Vulnerability Spec rstack overflow:   Not affected
Vulnerability Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:             Mitigation; IBRS; IBPB conditional; STIBP conditional; RSB filling; PBRSB-eIBRS Not affected; BHI SW loop, KVM SW loop
Vulnerability Srbds:                  Not affected
Vulnerability Tsx async abort:        Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat md_clear arch_capabilities
Versions of relevant libraries:
[pip3] flake8==7.0.0
[pip3] flashinfer==0.1.0+cu121torch2.3
[pip3] mypy-extensions==1.0.0
[pip3] numpy==1.26.4
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] onnx==1.16.1
[pip3] optree==0.12.1
[pip3] pytorch-ignite==0.5.0.post2
[pip3] pytorch-lightning==2.3.3
[pip3] torch==2.3.0
[pip3] torchaudio==2.1.2
[pip3] torchdata==0.7.1
[pip3] torchinfo==1.8.0
[pip3] torchmetrics==1.4.0.post0
[pip3] torchtext==0.16.2
[pip3] torchvision==0.18.0
[pip3] transformers==4.42.3
[pip3] triton==2.3.0
[conda] flashinfer                0.1.0+cu121torch2.3          pypi_0    pypi
[conda] magma-cuda121             2.6.1                         1    pytorch
[conda] mkl                       2022.1.0           hc2b9512_224
[conda] nccl                      <IP_ADDRESS>             hbc370b7_0    conda-forge
[conda] numpy                     1.26.4          py310hb13e2d6_0    conda-forge
[conda] nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
[conda] optree                    0.12.1                   pypi_0    pypi
[conda] pytorch-ignite            0.5.0.post2              pypi_0    pypi
[conda] pytorch-lightning         2.3.3                    pypi_0    pypi
[conda] torch                     2.3.0                    pypi_0    pypi
[conda] torchaudio                2.1.2                    pypi_0    pypi
[conda] torchdata                 0.7.1                    pypi_0    pypi
[conda] torchinfo                 1.8.0                    pypi_0    pypi
[conda] torchmetrics              1.4.0.post0              pypi_0    pypi
[conda] torchtext                 0.16.2                   pypi_0    pypi
[conda] torchvision               0.18.0                   pypi_0    pypi
[conda] transformers              4.42.3                   pypi_0    pypi
[conda] triton                    2.3.0                    pypi_0    pypi
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.1
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	GPU1	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	PHB	0-3	0		N/A
GPU1	PHB	 X 	0-3	0		N/A
Legend:
X    = Self
SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
PIX  = Connection traversing at most a single PCIe bridge
NV#  = Connection traversing a bonded set of # NVLinks`

Think i needed to upgrade flashinfer. But I cant use it as it only supports ampere 8+. There's a solution proposed here: #6173

@twright8 unfortunately, ampere is needed for fp8 quantization support as well.
@ArlanCooper it looks like you need to install flashinfer (you'll want to download a wheel from here https://github.com/flashinfer-ai/flashinfer/releases)

@vlsav I haven't been able to reproduce your problem, either on a H100 or on an L40.
What model exactly are you running with? I.e. what is /models/gemma-2-9b-it?  I successfully started a server using neuralmagic/gemma-2-9b-it-FP8 but when I tried google/gemma-2b-it, I ran into  https://github.com/flashinfer-ai/flashinfer/issues/362

@tlrmchlsmth should it help me if I will install newer version of flashinfer with vllm 0.5.2?
I used google/gemma-2b-it

@tlrmchlsmth now tried to launch neuralmagic/gemma-2-9b-it-FP8 with vllm==0.5.2
[rank0]: Traceback (most recent call last):
[rank0]:   File "/opt/llm/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
[rank0]:     return _run_code(code, main_globals, None,
[rank0]:   File "/opt/llm/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
[rank0]:     exec(code, run_globals)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/entrypoints/openai/api_server.py", line 282, in <module>
[rank0]:     run_server(args)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/entrypoints/openai/api_server.py", line 224, in run_server
[rank0]:     if llm_engine is not None else AsyncLLMEngine.from_engine_args(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 444, in from_engine_args
[rank0]:     engine = cls(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 373, in __init__
[rank0]:     self.engine = self._init_engine(*args, **kwargs)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/async_llm_engine.py", line 520, in _init_engine
[rank0]:     return engine_class(*args, **kwargs)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 249, in __init__
[rank0]:     self.model_executor = executor_class(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/executor_base.py", line 150, in __init__
[rank0]:     super().__init__(model_config, cache_config, parallel_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/executor_base.py", line 46, in __init__
[rank0]:     self._init_executor()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 25, in _init_executor
[rank0]:     self.driver_worker.load_model()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/worker/worker.py", line 139, in load_model
[rank0]:     self.model_runner.load_model()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/worker/model_runner.py", line 256, in load_model
[rank0]:     self.model = get_model(model_config=self.model_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/__init__.py", line 21, in get_model
[rank0]:     return loader.load_model(model_config=model_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/loader.py", line 267, in load_model
[rank0]:     model = _initialize_model(model_config, self.load_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/model_loader/loader.py", line 104, in _initialize_model
[rank0]:     return model_class(config=model_config.hf_config,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 323, in __init__
[rank0]:     self.model = Gemma2Model(config, cache_config, quant_config)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 251, in __init__
[rank0]:     self.layers = nn.ModuleList([
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 252, in <listcomp>
[rank0]:     Gemma2DecoderLayer(layer_idx, config, cache_config, quant_config)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 178, in __init__
[rank0]:     self.self_attn = Gemma2Attention(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/models/gemma2.py", line 115, in __init__
[rank0]:     self.qkv_proj = QKVParallelLinear(
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 517, in __init__
[rank0]:     super().__init__(input_size=input_size,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 244, in __init__
[rank0]:     super().__init__(input_size, output_size, skip_bias_add, params_dtype,
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/linear.py", line 158, in __init__
[rank0]:     self.quant_method = quant_config.get_quant_method(self)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/fp8.py", line 74, in get_quant_method
[rank0]:     return Fp8LinearMethod(self)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/fp8.py", line 105, in __init__
[rank0]:     self.cutlass_fp8_supported = cutlass_fp8_supported()
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/utils/w8a8_utils.py", line 15, in cutlass_fp8_supported
[rank0]:     return ops.cutlass_scaled_mm_supports_fp8(capability)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/vllm/_custom_ops.py", line 220, in cutlass_scaled_mm_supports_fp8
[rank0]:     return torch.ops._C.cutlass_scaled_mm_supports_fp8(cuda_device_capability)
[rank0]:   File "/home/testvllm/.local/lib/python3.10/site-packages/torch/_ops.py", line 921, in __getattr__
[rank0]:     raise AttributeError(
[rank0]: AttributeError: '_OpNamespace' '_C' object has no attribute 'cutlass_scaled_mm_supports_fp8'

@tlrmchlsmth should it help me if I will install newer version of flashinfer with vllm 0.5.2?
I used google/gemma-2b-it

I don't think that will resolve your issue. This is a more of a linker issue with a C++ function that we compile and ship with the vLLM wheel file.  One thing to check is to make sure there isn't a stale _C.abi3.so somewhere on your LD_LIBRARY_PATH.

It also occurs to me that the name _C.abi3.so is extremely generic and we may be having a name collision with some other project

@tlrmchlsmth should it help me if I will install newer version of flashinfer with vllm 0.5.2?
I used google/gemma-2b-it

I don't think that will resolve your issue. This is a more of a linker issue with a C++ function that we compile and ship with the vLLM wheel file. One thing to check is to make sure there isn't a stale _C.abi3.so somewhere on your LD_LIBRARY_PATH.

There is only one _C.abi3.so in ~/.local/lib/python3.10/site-packages/vllm

@tlrmchlsmth I also found that one on vllm output:
WARNING 07-17 20:03:10 _custom_ops.py:14] Failed to import from vllm._C with ImportError("/lib64/libc.so.6: version `GLIBC_2.32' not found (required by /home/testvllm/.local/lib/python3.10/site-packages/vllm/_C.abi3.so)")

@vlsav That is actually your problem: /lib64/libc.so.6: version GLIBC_2.32' not found, is preventing _C.abi3.so` from being loaded

FYI, with vllm 0.5.2, I get this warning on Ubuntu 20.04, but on Ubuntu 22.04 it works fine.

@tlrmchlsmth I also found that one in vllm output: WARNING 07-17 20:03:10 _custom_ops.py:14] Failed to import from vllm._C with ImportError("/lib64/libc.so.6: version `GLIBC_2.32' not found (required by /home/testvllm/.local/lib/python3.10/site-packages/vllm/_C.abi3.so)") so it correlates with #6464

Thanks. Not sure if I will be able to do system upgrade

FYI, with vllm 0.5.2, I get this warning on Ubuntu 20.04, but on Ubuntu 22.04 it works fine.

@tlrmchlsmth I also found that one in vllm output: WARNING 07-17 20:03:10 _custom_ops.py:14] Failed to import from vllm._C with ImportError("/lib64/libc.so.6: version `GLIBC_2.32' not found (required by /home/testvllm/.local/lib/python3.10/site-packages/vllm/_C.abi3.so)") so it correlates with #6464

As a workaround, you can try installing from the wheel files on Github https://github.com/vllm-project/vllm/releases/tag/v0.5.2, which were built on an older OS (Ubuntu 20.04). I think that should work for you.

As a workaround, you can try installing from the wheel files on Github https://github.com/vllm-project/vllm/releases/tag/v0.5.2, which were built on an older OS (Ubuntu 20.04). I think that should work for you.

Thanks. It works, both for neuralmagic/gemma-2-9b-it-FP8 and google/gemma-2b-it

This issue should be fixed for most people in 0.5.3 and later, now that we are building on Ubuntu 20.04. I think we can go ahead and close this one.

Thanks. So far no issues with 0.5.3

I am using v0.6.1 and get the same error with gemma2

@yazdanbakhsh what OS are you running? Specific version is important here.
And do you see a msg like this in your log?
lib64/libc.so.6: version `GLIBC_2.32' not found, is
preventing _C.abi3.so from being loaded.

Thanks for looking into this -- here is the complete command (note that the exact same docker works for at least 15-16 other models -- non gemma), also I used offline checkpoint to load the model tokenize.
Initializing an LLM engine (v0.6.1) with config: model='./codegemma-7b-it', speculative_config=None, tokenizer='./codegemma-7b-it', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, override_neuron_config=None, rope_scaling=None, rope_theta=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=8192, download_dir=None, load_format=LoadFormat.AUTO, tensor_parallel_size=1, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, quantization_param_path=None, device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='outlines'), observability_config=ObservabilityConfig(otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=0, served_model_name=./codegemma-7b-it, use_v2_block_manager=False, num_scheduler_steps=1, enable_prefix_caching=False, use_async_output_proc=True)

Main Error:
[rank0]: ImportError: /home/clouduser/.triton/cache/41ce1f58e0a8aa9865e66b90d58b3307bb64c5a006830e49543444faf56202fc/cuda_utils.so: undefined symbol: cuModuleGetFunction

[rank0]: Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information

OS: Linux isca3 5.15.0-1062-gcp #70~20.04.1-Ubuntu SMP Fri May 24 20:12:18 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Libraries: vllm  -> 0.6.1; torch-> 2.4.0+cu121; NVIDIA-SMI 550.54.15; Driver Version: 550.54.15; CUDA Version: 12.4
Code snippet used for generation
# Initialize the tokenizer
    tokenizer = AutoTokenizer.from_pretrained(args.model_loc)

    # Pass the default decoding hyperparameters of the model
    # max_tokens is for the maximum length for generation.
    sampling_params = SamplingParams(
            temperature=args.temperature,
            top_p=args.top_p,
            repetition_penalty=args.repetition_penalty,
            max_tokens=args.max_tokens,
            top_k=args.top_k,
            seed=args.seed)

    # Input the model name or path. Can be GPTQ or AWQ models.
    llm = LLM(model=args.model_loc, tensor_parallel_size=args.tensor_parallel_size)

    # Prepare your prompts (demo)
    prompt = "#write a quick sort algorithm.\ndef quick_sort("

    # generate outputs
    outputs = llm.generate([prompt], sampling_params)

    # Print the outputs.
    for output in outputs:
        prompt = output.prompt
        generated_text = output.outputs[0].text
        print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

Let me know if you need anything else from me.

One last piece of information is that our machine does not have internet. Note sure if this error has anything to do with internet.

Also tried with both H100 and A100 and the error persists. @tlrmchlsmth

@yazdanbakhsh, this looks like a different problem (0.5.1 had some problems related to the glibc issues, but you're not running into those here), so I think we should track this in a separate issue. Feel free to make one and tag me there.
I don't know what's going on here, but my first suggestion is to try nuking your .triton/cache directory:
rm -rf /home/clouduser/.triton/cache

There is nothing there. It seems this is something that is being built after running the script.

how can I disable triton for vllm? is there a way?

@yazdanbakhsh
There's no way to disable triton in general. But since this is only Gemma-2, it might be the torch.compile used in GemmaRMSNorm. To test that out, and as a workaround, you could try modying
model_executor/layers/layernorm.py, replacing
    def forward_cuda(
        self,
        x: torch.Tensor,
        residual: Optional[torch.Tensor] = None,
    ) -> Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:
        if torch.compiler.is_compiling():
            return self.forward_native(x, residual)

        if not getattr(self, "_is_compiled", False):
            self.forward_static = torch.compile(  # type: ignore
                self.forward_static)
            self._is_compiled = True
        return self.forward_native(x, residual)

with
    def forward_cuda(
        self,
        x: torch.Tensor,
        residual: Optional[torch.Tensor] = None,
    ) -> Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:
        return self.forward_native(x, residual)

Update: I think it is related to the version of our drivers. Please do not extrapolate this case to other scenarios as our setup is a little bit unique. Thanks for all the help.


out of queries

seems the weather service is down again due to query limits... any hope of it working again soon?

the website says:

Sorry, we processed more than 1M requests today and we ran out of our datasource capacity.
We hope to solve the problem as soon as possible, so you can enjoy
your favourite weather service 24x365 even if it rains or snows.

We will solve the problem as soon as possible.

@lxle @tallguyjenks We have actually two problems now (though the second one was caused by the first one):

the datasource had (and probably still has) an outage, because of which many queries (almost all queries except ones related to Europe) could not be processed.
wttr.in still tried to process them and because of that went beyond its daily capacity.

What was done:
we fixed the wttr.in behavior in such cases, so it does not retry to process the queries (by default for 1 hour for the region for which the failure happened), and so does not exhaust its capacity.
The capacity will be automatically renews in 2 hours, after that the service will be available again (the second problem will be solved), but it is theoretically possible that because of the datasource issues (if they are still not fixed) some region will have problems for some time (hopefully they wont).
The only possible solution for such outages is to have several uplink datasorces, and reroute queries as needed. It is planned

Ok thanks, I'm readying the release of the next version of the LXLE desktop in which wttr.in in used as the default weather app and just wanted to make sure everything would be fine shortly as I didn't want to have to remove it.

@lxle It works now

@lxle Have you tested the new view (v2.wttr.in) in lxle by the way? Does it work well? Or are some fonts missing?

wasn't aware there was a v2.wttr.in

@lxle Could you please take a look at it (in the terminal) and check if everything works as expected?
It is experimental, and we try to get as much feedback as possible, and fix as many problems as possible
Just try: curl v2.wttr.in

looks good for me using sakura

@lxle Thank you!

Ping @chubin. The wttr.in is out of queries again. https://web.archive.org/web/20200108051535/https://wttr.in/

@dikiaap Please test


Clusterclass quickstart and cluster topology template

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #534 ,
Fixes #537
Additional information

Removed byoClusterTemplate.Spec.Template.Spec check from ByoClusterTemplate webhooks as they are handled in ByoCluster webhooks.
Added clusterclass quickstart template
Added cluster topology template, that creates cluster using clusterclass

Special notes for your reviewer

Codecov Report

Merging #573 (0153b6d) into main (9bcc762) will increase coverage by 0.01%.
 Consider uploading reports for the commit 59eaf7c to get more accurate results

@@            Coverage Diff             @@
##             main     #573      +/-   ##
==========================================
+ Coverage   67.46%   67.48%   +0.01%
==========================================
  Files          27       28       +1
  Lines        2410     2365      -45
==========================================
- Hits         1626     1596      -30
+ Misses        676      665      -11
+ Partials      108      104       -4

Impacted Files
Coverage Δ

...frastructure/v1beta1/byoclustertemplate_webhook.go
100.00% <ø> (+18.18%)
:arrow_up:

agent/installer/bundle_downloader.go
71.87% <0.00%> (-0.76%)
:arrow_down:

agent/cloudinit/cloudinit.go
76.66% <0.00%> (ø)

apis/infrastructure/v1beta1/byocluster_webhook.go
88.88% <0.00%> (ø)

...ontrollers/infrastructure/byomachine_controller.go
65.63% <0.00%> (+0.07%)
:arrow_up:

agent/main.go
19.55% <0.00%> (+0.10%)
:arrow_up:

agent/reconciler/host_reconciler.go
81.48% <0.00%> (+0.49%)
:arrow_up:

agent/cloudinit/cmd_runner.go
100.00% <0.00%> (+37.50%)
:arrow_up:


There are a couple meetups that do not exist on the DES site but they are active, we have to find contacts and photos and get them on the site to highlight them!

Meetups we don't have on the DES site
• CMX Edmonton Chapter
• NeurAlbertaTech
• Edmonton Computer Club
• MovEdmonton
•Edmonton Gen AI Meetup Group
•Edmonton Design Movement

I can reach out to NeurAlbertaTech and ask for preferred contacts and photos as I know someone from that organization!

Done :) Just wanted to let you know that I've connected with them and things are in the works. They said they'd like to be featured on the site. I asked them to send a blurb and an image file of their logo, so just waiting on that for now.


requests.exceptions.SSLError.str returns non-string type

requests 2.4.3
python 2.7.9
os: Debian Jesse
I looked through the release notes from 2.4.3 to present and didn't see this one as fixed.
Issue:
requests.exceptions.SSLError is raised, but when the error is printed or cast to string, another error is thrown stating that str returned a non-string.
Just to restate: the non-string value is the issue here. I'm not yet sure how to reproduce as we were doing some wacky things. If I'm successful in reproducing this, I'll follow-up with steps.
I was using python/requests to troubleshoot a 'connection reset by peer' error at work and we made the following manipulations:

changed /etc/hosts to point a domain at a test IP.
added a 'Host' header that referred back at that domain.
hit an HTTPS/SSL URL on that domain
-- because of previous changes, the cert and domain likely mismatch
-- This URL does a 302 redirect (it's a redirect service)
requests.exceptions.SSLError is raised and caught as expected
printing the error and casting the error as str() raises an error about str returning a non-string.
iirc, this issue still existed when I set verify=False

Before reporting this issue to us, can you please report to the Debian maintainers? We are no longer providing support for 2.4.3, so unless it can be reproduced on the current release we're not really able to do much for you. However, the Debian maintainers from whom you installed the package are supporting that version of the software, so contacting them is more likely to be useful for you.
I should note, per the Debian bug reporting notes, that you should refrain from reporting bugs to the upstream maintainers:

Don't file bugs upstream
If you file a bug in Debian, don't send a copy to the upstream software maintainers yourself, as it is possible that the bug exists only in Debian. If necessary, the maintainer of the package will forward the bug upstream.

Thanks for reaching out!


Add mixer

I am working on adding SDL2_mixer. Sound freaks wanted for trying it out..

This is the same as #26


[Symfony 4.3] Update EventDispatcher

https://symfony.com/blog/new-in-symfony-4-3-simpler-event-dispatching

can we do that while keeping BC for users of this bundle and staying compatible with symfony 4.2? or is this a future task for when we move to symfony 5 support?
the parameter reordering only works with 4.3+, and changing our event names is a BC break for consumers of the bundle. are there other changes that we can already do now?

I have no idea how to handle this. Can't we detect the version of event-dispatcher that is installed?

Maybe we can use the LegacyEventDispatcherProxy https://symfony.com/blog/new-in-symfony-4-3-simpler-event-dispatching#supporting-both-dispatchers

I wonder if we even have to change anything, and can just allow Symfony / Event Dispatcher 4.3? I don't see any call to dispatch in the codebase.

there is one call in a test that i fixed with a version compare in #340 . i think that should actually solve this warning. please reopen if you encounter it still with current master.


The Istio ingressgateway health check does not support HTTP 1.0.

Bug Description
the health check URL:
   http://$ingressgateway-pod-ip:15021/healthz/ready

The corresponding static configuration is as follows：
{
        "address": {
           "socket_address": {
             "protocol": "TCP",
             "address": "{{ .wildcard }}",
             "port_value": {{ .envoy_status_port }}
           }
        },
        "filter_chains": [
          {
            "filters": [
              {
                "name": "envoy.filters.network.http_connection_manager",
                "typed_config": {
                  "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager",
                  "codec_type": "AUTO",
                  "stat_prefix": "agent",
                  "route_config": {
                    "virtual_hosts": [
                      {
                        "name": "backend",
                        "domains": [
                          "*"
                        ],
                        "routes": [
                          {
                            "match": {
                              "prefix": "/healthz/ready"
                            },
                            "route": {
                              "cluster": "agent"
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "http_filters": [{
                    "name": "envoy.filters.http.router",
                    "typed_config": {
                      "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"
                    }
                  }]
                }
              }
            ]
          }

we need to modify the envoy_bootstap.json file to add support for HTTP 1.0 options
Version
./istioctl  version
client version: 1.16.3
control plane version: 1.16.3
data plane version: 1.16.3 (12 proxies)

Additional Information
No response
Affected product area

[ ] Ambient
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

HTTP 1.0 disabled by default, you should enable it munally.
eg: istioctl install --set values.pilot.env.PILOT_HTTP10=1

HTTP 1.0 disabled by default, you should enable it munally.
eg: istioctl install --set values.pilot.env.PILOT_HTTP10=1

@kebe7jun 15021 is a statically configured listener, this feature  PILOT_HTTP10 did not take effect on it.
We can easily add support for http1.0 by directly adding the corresponding option in the envoy_bootstrap.json file.
However, during the actual image building process (Dockerfile.proxyv2), this file is copied from another base image. Is it the corresponding file in the istio codebase?  @howardjohn
ARG proxy_version
ARG istio_version
ARG SIDECAR=envoy

# Copy Envoy bootstrap templates used by pilot-agent
COPY envoy_bootstrap.json /var/lib/istio/envoy/envoy_bootstrap_tmpl.json
COPY gcp_envoy_bootstrap.json /var/lib/istio/envoy/gcp_envoy_bootstrap_tmpl.json

# Install Envoy.
ARG TARGETARCH
COPY ${TARGETARCH:-amd64}/${SIDECAR} /usr/local/bin/${SIDECAR}

Its in tools/packaging/common/envoy_bootstrap.json. I would not be in favor of adding this. If you really need it I would use the BOOTSTRAP patching mechanism in EnvoyFilter

Should we make it built-in? After all, adding this is quite simple and has no side effects, while using envoyfiter may still have a little threshold for some istio users.

it appears that using EnvoyFilter cannot achieve the desired result as it is not possible to add an http10 option under port 15021. However, it is possible to add a new Listener configuration with this option, for example, port 15022. Nevertheless, we still need to restart the ingressgateway pod after applying the EnvoyFilter yaml.
@howardjohn  Could you please take a look at this issue? Is there any potential risk in enabling http10 by default?

Can we step back, why do you want HTTP 1.0 anyways? It has been 26 years since 1.1 :-)
…
On Wed, May 31, 2023 at 6:11 AM zengyuxing007 @.> wrote: it appears that using EnvoyFilter cannot achieve the desired result as it is not possible to add an http10 option under port 15021. However, it is possible to add a new Listener configuration with this option, for example, port 15022. Nevertheless, we still need to restart the ingressgateway pod after applying the EnvoyFilter yaml. @howardjohn https://github.com/howardjohn Could you please take a look at this issue? Is there any potential risk in enabling http10 by default? — Reply to this email directly, view it on GitHub <#44889 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEYGXLLFDV3R3QYCPDEGU3XI47PBANCNFSM6AAAAAAX7F65YQ . You are receiving this because you were mentioned.Message ID: @.>

Some legacy systems, such as nginx, may send http1.0 health checks to the ingress gateway.
When feature.HTTP10 is turned on，perhaps we can also add http10 option to static Listeners like 15021, similar to other Listeners (LDS).

That sounds impossible, why canot nginx send http1.1 healthcheck?

+1, nginx can do HTTP3 so I am sure it can do http1.1?

You know, there are some legacy systems that you do not maintain, it may be wrapped up as a black box, you have no way to change it.

You know, there are some legacy systems that you do not maintain, it may be wrapped up as a black box, you have no way to change it.

I don't think we should do that in a open source project, that's not the best pratice.

The HTTP/1.0 feature already exists. When this feature is enabled, port 15021 should also support HTTP/1.0.
I don't think there is any problem with that.

Maybe I didn't express clearly. The reason why Istio now supports the HTTP/1.0 feature must be to support some legacy services. These legacy services often cannot modify the code or upgrade the protocol to HTTP/1.1 for various reasons. The active health check of early versions of Nginx only supports HTTP/1.0. These Nginxes are running in the production environment and carrying traffic. Upgrading them is also a very difficult thing.

I would suggest you doing healthcheck not via 15021, rather access the real traffic path

I would suggest you doing healthcheck not via 15021, rather access the real traffic path

Yes, this is a work-around solution. At the beginning, it was done this way.


Is there performance benchmark with TCP?

yea there is udxperf now, the cli tool. you can use that against ipperf as well


Working with bazel rbe

Just wanted to ask. Have you tried it with remote build execution

Hey,  no I haven't. It's been quite a while since I used this. Is there a problem with rbe?


Chore: Add Svelte (v1) example

This adds a new (v1) example using Svelte. I've replicated the react-setup with the sidebar.

@brillout Thanks for the fixes and the quick merge!

These framework prototypes showcase that Vite(-plugin-ssr) can be fully wrapped.

I agree and I think for any full-fledged meta-framework that would be the way to go. It is a detail but I think you could make an argument for having vite, vite plugin svelte and svelte itself dependencies of the users project in the end, because it allows them to update these dependencies independent from the meta-framework. In case of vite and svelte which are both very stable and deliver incremental improvements over time this might be beneficial ... (and having them as peer dependencies in the meta-framework).
Having the ability to compose several vite plugins on the top-level might also give a very neat DX.

That's one of the reasons why I'm confident vite-plugin-ssr's flexibility can accomodate Strapi's plans. Strapi can fully wrap vite-plugin-ssr or just provide deep vite-plugin-ssr integrations, choose any UI framework, etc.

👍🏼

Btw. if you're on Discord, feel free to PM us!

I am - will do. 🙏🏼


Add linp.flood.rs1bb

https://home.mi.com/webapp/content/baike/product/index.html?model=linp.flood.rs1bb
https://home.miot-spec.com/spec/linp.flood.rs1bb
Hello, this sensor is connected through the Xiaomi Multimode Gateway 2, but I cannot find it in the device list of gateway 3. May I ask if I can increase support for it. thanks

https://www.xiaomiyoupin.com/detail?gid=161263&source=cgq_lpcgq8
The sales link for this product


High memory usage when running query stake-snapshot and others.

Investigate. There might be some way to reduce this by returning results more eagerly. High memory usage when running

[x] query stake-snapshot --> https://github.com/input-output-hk/cardano-node/pull/4179
[x] query leadership-schedule --> Merge https://github.com/input-output-hk/ouroboros-network/pull/3932 before --> https://github.com/input-output-hk/cardano-node/pull/4250
Waiting for (link to PR) to be merged first
[x] query pool-params  --> https://github.com/input-output-hk/cardano-node/pull/4170
[x] query ledger-state --> https://github.com/input-output-hk/cardano-node/pull/4205

Reference issues:
https://github.com/input-output-hk/cardano-node/issues/2717
https://github.com/input-output-hk/cardano-node/issues/4128

Additional information

Acceptance Criteria
AC stake snapshot

Return the total active stake on the system and  the pool stake for the last three stake snapshots
Do not download the entire ledger state to obtain the stake snapshots
Command takes less than 5s to return results on a machine that meets the required specs
Uses less than 12G of RAM

AC leadership schedule

Leadership schedule returns valid JSON to stdout and cbor to file
Running leadership-schedule takes less than 30 seconds
Uses less than 12G of RAM

AC pool-state

This command obsoletes pool-params query
Pool-params executes pool-state with a notification to the user about the new command
Pool-state returns a JSON of futurePoolParams, poolParams, and retiring
Runs in less than 5 seconds
Uses less than 12 GB

AC Ledger state

Keeps returning JSON to stdout
Uses less than 16 GB

When we say in the Acceptance Criteria "uses less than X GB", I suppose this refers to the recommended specs, right? We are interested to make clear to the users what are the min specs they need in order to have these functionalities working.
"pool-state" is a new cli command?

Resolved by
https://github.com/input-output-hk/cardano-node/pull/4179
https://github.com/input-output-hk/ouroboros-network/pull/3932
https://github.com/input-output-hk/cardano-node/pull/4250
https://github.com/input-output-hk/cardano-node/pull/4170
https://github.com/input-output-hk/cardano-node/pull/4205


You can phase through walls that are next to a portal

You can get stuck in walls and suffocate in survival

this is #122


gstreamer1.0-omx: remove bbappend file

The recipe gstreamer1.0-omx has been removed from oe-core, so remove the bbappend file accordingly.

- What I did
- How I did it

Merged in another PR: https://github.com/agherzan/meta-raspberrypi/pull/1332. Thanks!


Change font size of toggle-theme on small devices

Change font size of toggle-theme (light/dark theme icon) on small devices ( < 768px) to 1.15rem. Currently, this is applied to .download-link so you can add to that same rule the selector for .toggle-theme

I would like to make it. May I?

Hi @AlacritousCreature yes you can!

Thanku for assigning!
Please review it...if it is correct or not.


Optional files don't cause assignment to be marked as partial

Missing optional files were causing assignments to be marked as partially complete even if all required files were present. This removes optional files from the analysis.

Coverage decreased (-0.2%) to 59.735% when pulling 5d8e320ea5795001432a70ad62435151d3462e27 on partials-exclude-optional-files into 231e1547549edd8419c8c188449b0de2e15f437c on master.

I think this will be my last update before the next release. Any chance that could be today?

More specifically, could we have a release before the SD lab today at 3?

Should be out in a few minutes as v2.7.0: https://github.com/StoDevX/cs251-toolkit/releases/tag/v2.7.0

Thanks!


[VS Code] Razor: Report a Razor Issue command broken

Using C# extension v2.6.24:

Having tried this out a few times, it seems to be that early in the VS Code lifetime it can be hit, but it definitely works later on.


Calling Function with lists instead of operation names should be possible

If the list is a macro name, it will be expanded, so the first argument could be a valid name or a function call.
If the list is a function call, do the same, as if it was a variable
This replaces #133

Thanks, this has been fixed.


Make the @yamada-ui/accordion component headless

script: make-component-headless
package: @yamada-ui/accordion
Description
Currently, the @yamada-ui/accordion component has minimal styles set within the component's source code.
We want to make this style transferable to the theme and make the component headless, enabling more flexible UI customization.
Problem Statement/Justification
By making the @yamada-ui/accordion component headless, we can achieve more flexible styling tailored to the project.
Proposed Solution or API
The styles within the component are mostly defined by css: CSSUIObject and set to a prop named __css. We will transfer these styles to the packages/theme/src/components.
The code below is just an example and not the actual code.
packages/components/input/src/input-group.tsx
const css: CSSUIObject = {
- width: "100%",
- display: "flex",
- position: "relative",
  ...styles.container,
}

packages/theme/src/components/input.ts
baseStyle: {
  container: {
+   width: "100%",
+   display: "flex",
+   position: "relative",
  },
  field: {
    width: "100%",
    minWidth: 0,
    outline: 0,
    position: "relative",
    appearance: "none",
    transitionProperty: "common",
    transitionDuration: "normal",
    _disabled: {
      opacity: 0.4,
      cursor: "not-allowed",
    },
  },
  element: {
    color: ["blackAlpha.600", "whiteAlpha.700"],
  },
},

[!TIP]
In cases where the styles within the component are dynamically changed, there may be instances where it is not possible to transfer the styles to the theme.
In such cases, it needs to be discussed in this issue. Please feel free to send comments to this issue.

Additional Information
The @yamada-ui/accordion component exists in packages/components/accordion/src. You need to check all the components in this folder and if they contain styles internally, you need to modify them.
This change could have a significant impact on projects using Yamada UI, so we will work on it within the scope of v2.0.
Please create the branch for working on this issue from the remote branch v2.0, and direct your pull requests to the v2.0 branch as well.
Please select major for the changeset and create a pull request.

Can I try this issue?

@wtotw
Hi, thanks for the comment!
Yes, pls!

Fixed #1984


Bug: List group parents and children returning the group that is the subject

What were you trying to achieve?
To list the children and parents of the group with a given group ID
What are the expected results?
Return a list of group(s) that are children or parents of the group with the given ID
What are the received results?
Returns a list of group(s) that includes the group with the group ID being queried
Steps To Reproduce

create a group with a parent ID
list the parents of the group created
list the children of the group that was added as the parent of the group created

In what environment did you encounter the issue?
Magistrala groups
Additional information you deem important
for this request: http://localhost:9002/groups/312314e9-a3f4-475b-9e94-a2063ef7da8c/parents we get this response:
{
    "limit": 0,
    "offset": 0,
    "total": 8,
    "groups": [
        {
            "id": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "owner_id": "c06712e8-df2b-4449-80cb-3638a7ddbfa3",
            "name": "myGroup",
            "level": -1,
            "created_at": "2023-12-15T11:56:03.838685Z",
            "updated_at": "2023-12-15T11:56:22.723821Z",
            "status": "enabled"
        },
        {
            "id": "312314e9-a3f4-475b-9e94-a2063ef7da8c",
            "owner_id": "c06712e8-df2b-4449-80cb-3638a7ddbfa3",
            "parent_id": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "name": "myGroup's group",
            "created_at": "2023-12-15T13:02:21.857174Z",
            "updated_at": "0001-01-01T00:00:00Z",
            "status": "enabled"
        }
    ]
}

for this request: http://localhost:9002/groups/fd422be0-0e14-4ef9-a494-bd6ddcb82d51/children we get this response:
{
    "limit": 0,
    "offset": 0,
    "total": 8,
    "groups": [
        {
            "id": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "owner_id": "c06712e8-df2b-4449-80cb-3638a7ddbfa3",
            "name": "myGroup",
            "path": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "created_at": "2023-12-15T11:56:03.838685Z",
            "updated_at": "2023-12-15T11:56:22.723821Z",
            "status": "enabled"
        },
        {
            "id": "312314e9-a3f4-475b-9e94-a2063ef7da8c",
            "owner_id": "c06712e8-df2b-4449-80cb-3638a7ddbfa3",
            "parent_id": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "name": "myGroup's group",
            "level": 1,
            "path": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51.312314e9-a3f4-475b-9e94-a2063ef7da8c",
            "created_at": "2023-12-15T13:02:21.857174Z",
            "updated_at": "0001-01-01T00:00:00Z",
            "status": "enabled"
        },
        {
            "id": "f3dc7f00-d401-491b-9a58-07b06afcec5a",
            "owner_id": "c06712e8-df2b-4449-80cb-3638a7ddbfa3",
            "parent_id": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51",
            "name": "myGroup's other Group",
            "level": 1,
            "path": "fd422be0-0e14-4ef9-a494-bd6ddcb82d51.f3dc7f00-d401-491b-9a58-07b06afcec5a",
            "created_at": "2023-12-15T13:11:21.974904Z",
            "updated_at": "0001-01-01T00:00:00Z",
            "status": "enabled"
        }
    ]
}

@ianmuchyri Please double-check if this one is resolved.

@ianmuchyri Please double-check if this one is resolved.

It is not yet resolved


Add Confounded Domain Adaptation

I'm the author of a new paper out in TMLR, "Towards Backwards-Compatible Data with Confounded Domain Adaptation" (https://openreview.net/pdf?id=GSp2WC7q0r), which operates in the presence of both covariate shift and label shift. I also already have a sklearn-style implementation (https://github.com/calvinmccarter/condo-adapter), but would be interested in making it available here as well. Would there be interest in adding this? I think the method is compatible with the current API, as I can use what is called Z in the paper as what is called y in skada's API.

Thanks for opening this issue and your interest in SKADA!
IMO, the confound  Z  can be included in X  at test time and thus your method could be included in SKADA. What do you think about this?
We’d be happy to review a pull request if you’d like to work on this!
FYI, there’s an ongoing PR for a Contributor Guide, which should help—it’ll be merged soon: #282 . Let us know if you have any questions!


Fine tuning with custom (multilingual) data

Hi @OlaWod, i appreciate your work.
I am trying to fine tune the FreeVC model with my custom multilingual data (using an already trained speaker encoder model), and without SR augmentation. After some 300k steps (with batch size 32) it gives fair conversion outputs. However, i have some questions:

It seems that unseen-to-seen, and unseen-to-unseen conversions have poor quality. Will adding more and more data to the training set improve these cases?
Is it necessary to train the WavLM and HiFiGAN models with the custom dataset or the pre-trained models are OK to use for custom dataset?
Is it possible to train the FreeVC model using mel-spectrograms directly fed to the Bottleneck Extractor instead of SSL features, (i.e., skipping HifiGAN and WavLM models) ?  Have you tried it? Is it worth giving a try?
Does the 24khz training recipe has better performance than the 16khz one?
Does the SR augmentation has a big effect on performance?
Can the conversion process be in real-time? I mean can we convert a source audio frame-by-frame, and not as a whole?

Any other tips that can improve the conversion quality, are appreciated.
Thanks

Hi @ukemamaster,
I am new here and will follow this topic with interest. But could you please share the audio samples your model generates to see the quality you have achieved.
Thanks in advance.


Rescue doesn't accept global type path

This code occurs a compiler's error because the parser doesn't accept global type paths at rescue:
begin
  # ...
rescue ::Foo
  # ...
end

I quickly fixed the corresponding source code, but it may be not perfect. In addition, my code doesn't consider Underscore nodes like:
begin
  # ...
rescue _ # occurs an error
  # ...
end

begin
  # ...
rescue ex : _ # occurs an error, too
  # ...
end

Thank you.

@mosop Thank you! The code is perfect except for one bit: don't use %i(...), as it creates a new array each time code reaches that point. Better switch on the token's type. Maybe there's another overload for check that accepts many symbols.Or otherwise move the array to a constant (this is done in some places in the parser), but I think a simple if/elsif or case/when is enough here.

@asterite Hi. I changed the local array into a constant. I understand your preferred way, a simple if/elsif or case/when, but I think it may need a little more complex implementation and maybe additional test specs for message formatting. Thank you.

@mosop Don't worry, the fix is already perfect, I'll take care of the formatter.
Thank you! ❤


[vcpkg] Fix MSBuild regressions #12062 and #12086.

This PR also renames the VcpkgUserTriplet MSBuild variable to VcpkgTriplet to minimize user confusion compared to previous practice and documentation.

What does your PR fix?
Fixes #12062 and #12086.

@aggieNick02 I'd appreciate any review or confirmation you can offer that this indeed fixes the issues

So I think the behavior has improved in some cases but some more nuanced ones are still problematic. The simple case of having a VcpkgTriplet specified by manually editing the vcxproj file (the only way we used to have available) now seems to work fine and be respected, tested in both vs2015 and vs2019.
I've not had a chance to solidly reproduce the problematic or confusing behaviors and may not get to until Monday, but here is the gist of them:

Just cloning the repo at HEAD without this PR, my steps to reproduce no longer worked in vs2015. Instead, vs2015 seemed to be respecting whatever I had configured by hand in the vcxproj. I'm guessing something else must have changed. The steps did still work with VS2019 so the PR definitely fixes my issue, which still exists prior to it, in VS2019.
If you have something configured in the vcxproj file by hand, and then you play with the vcpkg project settings, things like the option to use static libraries are not honored. The properties and any changes to them are reflected in the GUI and vcxproj, but some are written in the global section, and others in a vcpkg labeled section. And when you build the things like the static option are ignored. The manual vcxproj editing and GUI options don't have to be perfectly aligned, but they should at least play nice together at some level. Right now it gets really confusing.
Some change removed printing out the triplet when a build starts. I really liked seeing that. I realize some people may find that noisy, but it was nice to see and very helpful for debugging/reproducing this kind of triplet issue. If there is a way to bring that back or opt in, sign me up. :-)

Like I said, sorry I don't have solid steps to repro some of the weirder behaviors. If you know what may have changed to make vs2015 start working without this PR, please let me know. I'll let you know when I do have solid steps to reproduce.

Also, if you'd prefer to just push this PR in and then have me followup with a new issue for the more nuanced stuff I'm seeing, of course feel free to do that.

Some change removed printing out the triplet when a build starts. I really liked seeing that. I realize some people may find that noisy, but it was nice to see and very helpful for debugging/reproducing this kind of triplet issue. If there is a way to bring that back or opt in, sign me up. :-)

was probably this one: https://github.com/microsoft/vcpkg/commit/f24543e83134c0199df370d683f69641fc66c44a

Thanks for beating me to fixing this.

@BillyONeal classified the use static option not working well. Examples of other things that either don't work after this PR

If I've got a project where VcpkgTriplet has been configured manually in the global section of the vcxproj, then the vcpkg project UI reflects that, but doesn't behave correctly if I try to update the triplet in the UI. For example, take a project with <VcpkgTriplet>aaa</VcpkgTriplet> in the Globals section of the vcxproj. Open it in VS2019 and open the vcpkg property page for it. Set the configuration in the property page to Debug|Win32 and then change the triplet in the UI to bbb and select OK. Build the solution to force the project to save and then examine it in notepad. You'll see the VcpkgTriplet has been updated in the Globals section, which means it has been set to `bbb for all configurations. This is not what the user requested, so that's bad.

In VS2015, new console project with x86-minhook-static already installed, #include "minhook.h", change project properties to use static for vcpkg. Build. It fails. Still uses x86-windows instead of x86-windows-static for some reason. (Note this is not when I've set VcpkgTriplet to anything manually or otherwise in the project file. In VS2019 the exact same sequence of steps works fine.)

I think having the option in the UI is the right long-term direction, but every day it is present with these bugs, along with inconsistencies (like use static only applying sometimes) is just going to confuse users. And it needs to work correctly with existing projects that had the triplet specified manually. My preference would be to disable the UI until we are sure it is solid and well-defined.

Thank you everyone for the continued feedback on this; I think there is still further improvement to be made, but I want to fix the regressions we know how to fix before tackling further work :)
As always, we're happy to review any PRs to make things better.


Inconsistent moment(object) behaviour when using date: 0 and day: 0

Describe the bug
When creating a moment from an object, there is inconsistent behaviour between the use of the day and date key when setting to 0
To Reproduce
Steps to reproduce the behavior:
Jsfiddle here
Create moment using object and day key set to 0
var momentUsingDayKey = moment({
   day: 0,
  month: 2,
  year: 1990
}).format();    // => Thu Mar 01 1990 00:00:00 GMT+1100

Expected behavior
Instead this should behave exactly the same as using day: '0', date: '0' or date: 0
where it is flagged as an invalid date
var momentUsingDayKey = moment({
   day: 0,
  month: 2,
  year: 1990
}).format();    // => Invalid date

Moment-specific environment
Moment Version 2.24.0

Hey I’m running into this as well. Would love a fix

day is DayOfWeek, it can start from zero ( By default, sunday is 0 and saturday is 6 ).
date is DayOfMonth, it cannot start from zero.
It's easy to confuse them, but they're not the same thing.


Privacy-respecting Functional Record Update (pr-FRU)

Change Functional Record Update (FRU) for struct literal expressions to respect struct privacy.
(rendered)
Spawned from https://github.com/rust-lang/rust/issues/21407#issuecomment-71102002

I'm in favor of this RFC. I'd probably phrase it somewhat stronger and say that the semantics can be summarized as FRU being sugar for expanding out the full set of fields. Full stop. (This implies the contents of this RFC, among other things.) Certainly this is how the linear value behavior works now.

(One clarification: I don't see this as a change to semantics. Rather, I think that the "expand to a bunch of fields" is the current semantics, and there is a bug in the privacy code.)

@nikomatsakis well, i'd say based on the description from #21407, it was at least worth an RFC.  (i.e., I think there are other (legitimate) mental models on how FRU works).

@nikomatsakis (having said that, I would be happy to reclassify this as a bug rather than an RFC if we don't actually see any comments in the week following its posting.)

One thing I'm not entirely clear on - how does this interact with Default::default()?

@pnkfelix I don't mind the opening of an RFC, and I agree there are other legitimate mental models, but it's just that I think that the "expand to a bunch of fields" is the one that best matches how most of the code operates, which is why I say that is the "current semantics".
For example, the following program:
#![allow(unused_variables)]
#![allow(dead_code)]

struct Noisy(u32);

impl Drop for Noisy {
    fn drop(&mut self) {
        println!("Goodbye {}", self.0);
    }
}

struct Foo {
    x: u32,
    y: Noisy,
}

fn main() {
    let foo = Foo { x: 1, y: Noisy(0) };
    {
        let bar = Foo { y: Noisy(1), ..foo };
        println!("Hi!");
    }
    println!("Ho!");
}

does not drop Noisy(0) at the point of using FRU.

@eternaleye can you spell out the example you have in mind a bit more?

@nikomatsakis I imagine @eternaleye is talking about this pattern:
struct Foo { pub x: u32, private_1: u32, private_2: String }
impl Default for Foo { ... }
Foo { pub_x: my_chosen_x, ..Default::default() }

However, it seems to me like you can still employ the workaround described in the RFC to deal with this, by writing your code like this:
struct Foo { pub x: u32, pub _hidden: FooPrivate }
struct FooPrivate {  private_1: u32, private_2: String }
impl Default for Foo { ... }
Foo { pub_x: my_chosen_x, ..Default::default() }

@pnkfelix Yes, that's it exactly. Also, to expand on why I feel it's "annoying dancing around", once you have separate structs for public and private members it rather obviates the need for public/private on the member level at all - you can simply have the private struct remain unexported. It bothers me from the DRY angle, as well as "why have a feature if you're just going to use the strategies needed to work around not having the feature anyway?"

-1 for this. I'd prefer functional update to just consume non-Copy values.
In other words, for any type Foo (Copy or non-Copy), the following code snippets would be equivalent:
new_val = Foo { a: x, ..old_val };

new_val = {
    let mut __compiler_internal: Foo = old_val;
    __compiler_internal.a = x;
    __compiler_internal
};

Which is much easier to understand and much easier to maintain in terms of backward-compatibility.

Given that this RFC seems to be in the spirit of the existing language semantics most closely, we have decided to accept it.


src/params: Make RunParameters::test_group_instance_count a u64

To be consistent with RunParameters::test_instance_count.
@SionoiS @ackintosh what do you think?

Looks good to me. 👍


How to stop timing transform from running again after re-render

I'm attempting to run an animation only _onPressTab(tab) but it re-triggers every time something re-renders the screen. What am I missing to ensure the animation doesn't run again if the screen is updated. The update which causes the animation to run again is triggered by a textinput with value={this.state.username.trim()}.
function runTiming(clock, value, dest) {
  const state = {
    finished: new Value(0),
    position: new Value(0),
    time: new Value(0),
    frameTime: new Value(0),
  };

  const config = {
    duration: 450,
    toValue: new Value(0),
    easing: Easing.inOut(Easing.cubic),
  };

  const timeSyncedWithClock = new Value(0);

  return block([
	cond(
		clockRunning(clock),
		cond(eq(timeSyncedWithClock, 0), [
			set(state.time, clock),
			set(timeSyncedWithClock, 1),
		]),
		[
			set(timeSyncedWithClock, 0),
			set(state.finished, 0),
			set(state.time, clock),
			set(state.position, value),
			set(state.frameTime, 0),
			set(config.toValue, dest),
			startClock(clock),
		],
	),
	timing(clock, state, config),
	cond(state.finished, stopClock(clock)),
	state.position,
  ]);
}

	constructor(props) {
		super(props);

		clock: new Clock(),
		state: new Value(0),
		trans: new Value(0),
	}

	_onPressTab(tab) {
		this.setState({
			tab: tab
		})
		this.trans = runTiming(new Clock(), 0, 24);
	}

        render() {
		<TouchableOpacity
			onPress={() => this._onPressTab(1)}
			disabled={this.state.tab === 1}
		>
		</TouchableOpacity>
		<TouchableOpacity
			onPress={() => this._onPressTab(2)}
			disabled={this.state.tab === 2}
		>
		</TouchableOpacity>
                 <Animated.Image style={[ {transform: [{ rotate: concat(this.trans, 'deg') }] }]} />
         }

Also curious how to do it in a right way. Right now I'm manage to do it this way:
runTiming(..., callback = () => {}) {
  cond(state.finished, [stopClock(clock), call([], callback)]);
}

...

_onPressTab(tab) {
  this.setState({
    tab: tab
  });

  this.trans = runTiming(new Clock(), 0, 24, () => {
    this.trans = runTiming(new Clock(), 24, 24);
  });
}

But it seems to me it's a hack at least it's looking like a hack. Would be great to have sort of loop property if it true rerun animation on each serenader otherwise run it only once and close in the final state.

In order to implement that you need to slightly change the way you think about defining this interaction.
With reanimated the best way to think of interactions is that you should be able to declare them at the component level and external events should not modify the interaction but only adjust the flow of already defined interaction.
What it means in this case is that you should have a timing animation defined before ahead in your component with a dest value stored in your component state. Then as a result of tab press you should modify the destination value (e.g. this.state.dest.setValue(25)) as opposed to instantiating a new interaction.
Hope the above helps. In case it doesn't feel free to open a new issue. It would be perfect if you could make an expo snack next time as it is way more easier for us to prototype some suggestions in snack instead of working on an incomplete react component code.


Update lucide-icon to latest version

Update lucide version to latest, and mapped latest LUCIDE_ICON_LIST
Issue: #2882

Please check for already existing PR ( #2891 ).


MEDIAWIKI_FILE_EXTENSIONS issue: Cannot upload PDF file

I installed this image/docker on my Synology NAS. It's working and I even managed to upload an image to a wiki page using drag & drop.
Then I tried to upload PDF files, too, and failed.
According to MediaWiki manual, the default list of allowed extensions is 'png', 'gif', 'jpg', 'jpeg', 'webp' and all others are blocked. To add more extensions, this container provides the environment variable MEDIAWIKI_FILE_EXTENSIONS.
Although I set the environment variable
MEDIAWIKI_FILE_EXTENSIONS=png,gif,jpg,jpeg,doc,xls,mpp,pdf,ppt,tiff,bmp,docx,xlsx,pptx,ps,odt,ods,odp,odg
I get an error when uploading a PDF file (see screenshot). Why is this and is this a image/container issue or rather a MediaWiki issue?

Indeed the implementation required spaces. Now both is supported, spaces or an without spaces. Apart from that i added a little more documentation regarding uploads.


Add: sbt-github-pages to 02-Community-Plugins.md

Add: sbt-github-pages to 02-Community-Plugins.md
GitHub: https://github.com/Kevin-Lee/sbt-github-pages
Website (docs): https://kevin-lee.github.io/sbt-github-pages
Documentation is on the website but incomplete. It has enough info to use it though. I'll keep adding more.

Hi @Kevin-Lee,
Thank you for your contribution! We really value the time you've taken to put this together.
Before we proceed with reviewing this pull request, please sign the Lightbend Contributors License Agreement:
https://www.lightbend.com/contribute/cla

Thank you!


Automated testing of docs rendering process

We would like to add a job to our CI pipeline that tests the rendering of our docs (on ReadTheDocs)
Two steps:

[ ] Create empty virtualenv (to test our mocked libs)
[ ] Build docs

@jelletreep Interested?

Interested, but not sure how much work it will be and when I will be able to do this. When do you need it up and running? In the week of 2 december I definitely have time to work on this issue.


Split tray setup checks into individual checks

Right now different checks related to the tray are invoked as one unit, this issue is to decompose those into more fine grained individual checks like all other preflight checks/setups.
https://github.com/code-ready/crc/blob/8674e345a7f843aa01803fc261a2d7b6539bec37/pkg/crc/preflight/preflight_check_tray_darwin.go#L81-L99

... and maybe a separate file / subset also ?

Fived in #1029


add package generator section to README

REVIEWER
@flopezag
DESCRIPTION
add package generator section to README
TESTING
Not needed.

Coverage remained the same at 87.097% when pulling 5a3a8ded5437a89b98788aa79b2005759a22c297 on hardening/doc into 912ec0cba59b226c4eb59764f15893aa4027272f on develop.

Coverage remained the same at 87.097% when pulling 5a3a8ded5437a89b98788aa79b2005759a22c297 on hardening/doc into 912ec0cba59b226c4eb59764f15893aa4027272f on develop.


Change NSDocumentDirectory to NSCachesDirectory

I moved to the cache directory not to list files in the Files app.
https://github.com/CrossPT/flutter_plugin_pdf_viewer/pull/38

Any updates?