[FEATURE REQUEST] Allow user to define the framework to use

🚀 The feature, motivation and pitch
Hey @saattrupdan :-)
Im currently trying to benchmark some of the largest models with 4x H100 using CUDA 12.4 and Python 3.11.
Unfortunately, i get time out errors with the default settings and framework chosen by ScandEval (vllm judging from the full output). I also see from nvidia-smi that the vram isnt used for 3/4 GPUs.
DistStoreError: Timed out after 601 seconds waiting for clients. 1/4 clients joined.

However, testing the same model for native chat with transformers, multi-gpu support works flawlessly.
I then tried to set the framework argument of benchmarker to "transformers", however, this wasnt allowed:
ValueError: 'transformers' is not a valid Framework

Alternatives
Allowing the user to set the framework from which to run the benchmark, in the cases where there is something e.g. with the vLLM that doesnt work on the system where the benchmark is run.
Additional context
No response

Hey Mike!
I intentionally removed transformers support for generative models, as it was quite a pain to maintain essentially two different code bases, especially since the expectation was that they should produce the same results (they don't).
I would much rather see if we can make vLLM work on your system. Can you post the error message here?

I see, that makes sense. Understand why you selected vLLM then :-)
I am unfortunately forced to run everything in a python 3.11 notebook for now. The output is the following:

2024-12-14 13:49:22 ⋅ Benchmarking meta-llama/Llama-3.3-70B-Instruct on the truncated version of the Danish sentiment classification dataset AngryTweets
2024-12-14 13:49:22 ⋅ Loading model...
---------------------------------------------------------------------------
DistStoreError                            Traceback (most recent call last)
Cell In[5], line 4
      1 from scandeval import Benchmarker
      2 benchmark = Benchmarker()
----> 4 benchmark(
      5         model=model_id,
      6         api_key=token,
      7         #framework="transformers",
      8         #device="cuda",
      9         verbose=True,
     10         language="da",
     11         )

File /opt/app-root/lib64/python3.11/site-packages/scandeval/benchmarker.py:642, in Benchmarker.__call__(self, *args, **kwargs)
    640 def __call__(self, *args, **kwargs) -> list[BenchmarkResult]:
    641     """Call the benchmarker. See `Benchmarker.benchmark`."""
--> 642     return self.benchmark(*args, **kwargs)

File /opt/app-root/lib64/python3.11/site-packages/scandeval/benchmarker.py:409, in Benchmarker.benchmark(self, model, task, dataset, progress_bar, save_results, language, model_language, dataset_language, framework, device, batch_size, raise_errors, cache_dir, api_key, force, verbose, trust_remote_code, load_in_4bit, use_flash_attention, clear_model_cache, evaluate_test_split, few_shot, num_iterations)
    406     continue
    408 # Benchmark a single model on a single dataset
--> 409 benchmark_output_or_err = self._benchmark_single(
    410     model_config=model_config,
    411     dataset_config=dataset_config,
    412     benchmark_config=benchmark_config,
    413 )
    415 if (
    416     isinstance(benchmark_output_or_err, Exception)
    417     and benchmark_config.raise_errors
    418 ):
    419     raise benchmark_output_or_err

File /opt/app-root/lib64/python3.11/site-packages/scandeval/benchmarker.py:547, in Benchmarker._benchmark_single(self, model_config, dataset_config, benchmark_config)
    545 if model is None or not model.is_generative:
    546     logger.info("Loading model...")
--> 547     model = load_model(
    548         model_config=model_config,
    549         dataset_config=dataset_config,
    550         benchmark_config=benchmark_config,
    551     )
    552 assert model is not None
    554 if dataset_config.task == SPEED:

File /opt/app-root/lib64/python3.11/site-packages/scandeval/model_loading.py:48, in load_model(model_config, dataset_config, benchmark_config)
     40 model_type_to_module_mapping: dict[ModelType, t.Type[BenchmarkModule]] = {
     41     ModelType.HF_HUB_GENERATIVE: VLLMModel,
     42     ModelType.HF_HUB_ENCODER: HuggingFaceEncoderModel,
     43     ModelType.API: LiteLLMModel,
     44     ModelType.FRESH: FreshEncoderModel,
     45 }
     46 model_class = model_type_to_module_mapping[model_config.model_type]
---> 48 model = model_class(
     49     model_config=model_config,
     50     dataset_config=dataset_config,
     51     benchmark_config=benchmark_config,
     52 )
     54 # Refuse to benchmark non-generative models on generative tasks
     55 if (
     56     (
     57         dataset_config.task.supertask in GENERATIVE_DATASET_SUPERTASKS
   (...)
     61     and not model.is_generative
     62 ):

File /opt/app-root/lib64/python3.11/site-packages/scandeval/benchmark_modules/vllm.py:113, in VLLMModel.__init__(self, model_config, dataset_config, benchmark_config)
    108 self.benchmark_config = benchmark_config
    109 self.output_scores = (
    110     self.dataset_config.task.supertask in SUPERTASKS_USING_LOGPROBS
    111 )
--> 113 model, tokenizer = self._load_model_and_tokenizer()
    114 self._model: LLM = model
    115 self._tokenizer: PreTrainedTokenizer = tokenizer

File /opt/app-root/lib64/python3.11/site-packages/scandeval/benchmark_modules/vllm.py:507, in VLLMModel._load_model_and_tokenizer(self)
    504 model_id = self.model_config.adapter_base_model_id or self.model_config.model_id
    506 try:
--> 507     model = LLM(
    508         model=model_id,
    509         tokenizer=model_id,
    510         gpu_memory_utilization=0.95,
    511         max_model_len=min(true_max_model_len, 5_000),
    512         download_dir=download_dir,
    513         trust_remote_code=self.benchmark_config.trust_remote_code,
    514         revision=self.model_config.revision,
    515         seed=4242,
    516         distributed_executor_backend="mp",  # "ray",  # TEMP?
    517         tensor_parallel_size=torch.cuda.device_count(),
    518         disable_custom_all_reduce=True,
    519         quantization=quantization,
    520         dtype=dtype,
    521         enforce_eager=True,
    522         max_logprobs=MAX_LOGPROBS if self.output_scores else None,
    523         # TEMP: Prefix caching isn't supported with sliding window in vLLM yet,
    524         # so we disable it for now
    525         enable_prefix_caching=False,
    526         enable_lora=self.model_config.adapter_base_model_id is not None,
    527         max_lora_rank=256,
    528         guided_decoding_backend="outlines",
    529     )
    530 except ValueError as e:
    531     if "trust_remote_code" in str(e):

File /opt/app-root/lib64/python3.11/site-packages/vllm/utils.py:1028, in deprecate_args.<locals>.wrapper.<locals>.inner(*args, **kwargs)
   1021             msg += f" {additional_message}"
   1023         warnings.warn(
   1024             DeprecationWarning(msg),
   1025             stacklevel=3,  # The inner function takes up one level
   1026         )
-> 1028 return fn(*args, **kwargs)

File /opt/app-root/lib64/python3.11/site-packages/vllm/entrypoints/llm.py:210, in LLM.__init__(self, model, tokenizer, tokenizer_mode, skip_tokenizer_init, trust_remote_code, allowed_local_media_path, tensor_parallel_size, dtype, quantization, revision, tokenizer_revision, seed, gpu_memory_utilization, swap_space, cpu_offload_gb, enforce_eager, max_seq_len_to_capture, disable_custom_all_reduce, disable_async_output_proc, hf_overrides, mm_processor_kwargs, task, override_pooler_config, **kwargs)
    207 self.engine_class = self.get_engine_class()
    209 # TODO(rob): enable mp by default (issue with fork vs spawn)
--> 210 self.llm_engine = self.engine_class.from_engine_args(
    211     engine_args, usage_context=UsageContext.LLM_CLASS)
    213 self.request_counter = Counter()

File /opt/app-root/lib64/python3.11/site-packages/vllm/engine/llm_engine.py:585, in LLMEngine.from_engine_args(cls, engine_args, usage_context, stat_loggers)
    583 executor_class = cls._get_executor_cls(engine_config)
    584 # Create the LLM engine.
--> 585 engine = cls(
    586     vllm_config=engine_config,
    587     executor_class=executor_class,
    588     log_stats=not engine_args.disable_log_stats,
    589     usage_context=usage_context,
    590     stat_loggers=stat_loggers,
    591 )
    593 return engine

File /opt/app-root/lib64/python3.11/site-packages/vllm/engine/llm_engine.py:347, in LLMEngine.__init__(self, vllm_config, executor_class, log_stats, usage_context, stat_loggers, input_registry, mm_registry, use_cached_outputs)
    343 self.input_registry = input_registry
    344 self.input_processor = input_registry.create_input_processor(
    345     model_config)
--> 347 self.model_executor = executor_class(vllm_config=vllm_config, )
    349 if self.model_config.task != "embedding":
    350     self._initialize_kv_caches()

File /opt/app-root/lib64/python3.11/site-packages/vllm/executor/distributed_gpu_executor.py:26, in DistributedGPUExecutor.__init__(self, *args, **kwargs)
     22 # Updated by implementations that require additional args to be passed
     23 # to the _run_workers execute_model call
     24 self.extra_execute_model_run_workers_kwargs: Dict[str, Any] = {}
---> 26 super().__init__(*args, **kwargs)

File /opt/app-root/lib64/python3.11/site-packages/vllm/executor/executor_base.py:36, in ExecutorBase.__init__(self, vllm_config)
     34 self.prompt_adapter_config = vllm_config.prompt_adapter_config
     35 self.observability_config = vllm_config.observability_config
---> 36 self._init_executor()

File /opt/app-root/lib64/python3.11/site-packages/vllm/executor/multiproc_gpu_executor.py:113, in MultiprocessingGPUExecutor._init_executor(self)
    108 # Set up signal handlers to shutdown the executor cleanly
    109 # sometimes gc does not work well
    111 self.driver_worker = self._create_worker(
    112     distributed_init_method=distributed_init_method)
--> 113 self._run_workers("init_device")
    114 self._run_workers("load_model",
    115                   max_concurrent_workers=self.parallel_config.
    116                   max_parallel_loading_workers)

File /opt/app-root/lib64/python3.11/site-packages/vllm/executor/multiproc_gpu_executor.py:195, in MultiprocessingGPUExecutor._run_workers(self, method, async_run_tensor_parallel_workers_only, max_concurrent_workers, *args, **kwargs)
    189 worker_outputs = [
    190     worker.execute_method(method, *args, **kwargs)
    191     for worker in self.workers
    192 ]
    194 driver_worker_method = getattr(self.driver_worker, method)
--> 195 driver_worker_output = driver_worker_method(*args, **kwargs)
    197 # Get the results of the workers.
    198 return [driver_worker_output
    199         ] + [output.get() for output in worker_outputs]

File /opt/app-root/lib64/python3.11/site-packages/vllm/worker/worker.py:145, in Worker.init_device(self)
    142     raise RuntimeError(
    143         f"Not support device type: {self.device_config.device}")
    144 # Initialize the distributed environment.
--> 145 init_worker_distributed_environment(self.parallel_config, self.rank,
    146                                     self.distributed_init_method,
    147                                     self.local_rank)
    148 # Set random seed.
    149 set_random_seed(self.model_config.seed)

File /opt/app-root/lib64/python3.11/site-packages/vllm/worker/worker.py:459, in init_worker_distributed_environment(parallel_config, rank, distributed_init_method, local_rank)
    456 """Initialize the distributed environment."""
    457 set_custom_all_reduce(not parallel_config.disable_custom_all_reduce)
--> 459 init_distributed_environment(parallel_config.world_size, rank,
    460                              distributed_init_method, local_rank)
    462 ensure_model_parallel_initialized(parallel_config.tensor_parallel_size,
    463                                   parallel_config.pipeline_parallel_size)

File /opt/app-root/lib64/python3.11/site-packages/vllm/distributed/parallel_state.py:992, in init_distributed_environment(world_size, rank, distributed_init_method, local_rank, backend)
    988     assert distributed_init_method is not None, (
    989         "distributed_init_method must be provided when initializing "
    990         "distributed environment")
    991     # this backend is used for WORLD
--> 992     torch.distributed.init_process_group(
    993         backend=backend,
    994         init_method=distributed_init_method,
    995         world_size=world_size,
    996         rank=rank)
    997 # set the local rank
    998 # local_rank is not available in torch ProcessGroup,
    999 # see https://github.com/pytorch/pytorch/issues/122816
   1000 if local_rank == -1:
   1001     # local rank not set, this usually happens in single-node
   1002     # setting, where we can use rank as local rank

File /opt/app-root/lib64/python3.11/site-packages/torch/distributed/c10d_logger.py:83, in _exception_logger.<locals>.wrapper(*args, **kwargs)
     80 @functools.wraps(func)
     81 def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> _T:
     82     try:
---> 83         return func(*args, **kwargs)
     84     except Exception as error:
     85         msg_dict = _get_msg_dict(func.__name__, *args, **kwargs)

File /opt/app-root/lib64/python3.11/site-packages/torch/distributed/c10d_logger.py:97, in _time_logger.<locals>.wrapper(*args, **kwargs)
     94 @functools.wraps(func)
     95 def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> _T:
     96     t1 = time.time_ns()
---> 97     func_return = func(*args, **kwargs)
     98     time_spent = time.time_ns() - t1
    100     msg_dict = _get_msg_dict(func.__name__, *args, **kwargs)

File /opt/app-root/lib64/python3.11/site-packages/torch/distributed/distributed_c10d.py:1520, in init_process_group(backend, init_method, timeout, world_size, rank, store, group_name, pg_options, device_id)
   1516 if store is None:
   1517     rendezvous_iterator = rendezvous(
   1518         not_none(init_method), rank, world_size, timeout=timeout
   1519     )
-> 1520     store, rank, world_size = next(rendezvous_iterator)
   1521     store.set_timeout(timeout)
   1523     # Use a PrefixStore to avoid accidental overrides of keys used by
   1524     # different systems (e.g. RPC) in case the store is multi-tenant.

File /opt/app-root/lib64/python3.11/site-packages/torch/distributed/rendezvous.py:221, in _tcp_rendezvous_handler(url, timeout, **kwargs)
    217 use_libuv = _get_use_libuv_from_query_dict(query_dict)
    219 assert result.hostname is not None
--> 221 store = _create_c10d_store(
    222     result.hostname, result.port, rank, world_size, timeout, use_libuv
    223 )
    225 yield (store, rank, world_size)
    227 # If this configuration is invalidated, there is nothing we can do about it

File /opt/app-root/lib64/python3.11/site-packages/torch/distributed/rendezvous.py:189, in _create_c10d_store(hostname, port, rank, world_size, timeout, use_libuv)
    187 else:
    188     start_daemon = rank == 0
--> 189     return TCPStore(
    190         hostname,
    191         port,
    192         world_size,
    193         start_daemon,
    194         timeout,
    195         multi_tenant=True,
    196         use_libuv=use_libuv,
    197     )

DistStoreError: Timed out after 601 seconds waiting for clients. 1/4 clients joined.

@Mikeriess Can you see if it still outputs an error if you're only using a single GPU?

@saattrupdan just tested and works fine with one GPU on the same system with same package versions installed.

@Mikeriess Can you try installing the following branch and trying again?
pip uninstall scandeval && pip install scandeval[all]@git+https://github.com/ScandEval/ScandEval@fix/use-ray

@saattrupdan didnt manage to finish the test due to disk space error (unrelated), but the process continued further than earlier, and all four GPUs had 36 Gb memory allocated for llama-3.3-70b. Will start another test and report back tomorrow.
Thanks for the swift help with this 🥇

It worked! 👍
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+
(app-root) nvidia-smi
Sat Dec 14 21:24:06 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA H100 80GB HBM3          On  |   00000001:1B:00.0 Off |                    0 |
| N/A   68C    P0            659W /  700W |   74680MiB /  81559MiB |     83%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA H100 80GB HBM3          On  |   00000001:24:00.0 Off |                    0 |
| N/A   57C    P0            635W /  700W |   73874MiB /  81559MiB |     85%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA H100 80GB HBM3          On  |   00000001:45:00.0 Off |                    0 |
| N/A   55C    P0            640W /  700W |   73874MiB /  81559MiB |     85%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA H100 80GB HBM3          On  |   00000001:4E:00.0 Off |                    0 |
| N/A   68C    P0            655W /  700W |   73394MiB /  81559MiB |     84%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+

Hey @saattrupdan
I let llama-3.3-70b-instruct run overnight, and checked in again just now - the benchmark got stuck after the first dataset. I see the model is loaded again (is this necessary?), and gets stuck there:
Output with timestamps:
2024-12-14 21:30:34 ⋅ Benchmarking meta-llama/Llama-3.3-70B-Instruct on the truncated version of the Swedish sentiment classification dataset SweReC
2024-12-14 21:30:34 ⋅ Loading model...
Loading safetensors checkpoint shards: 100% Completed | 30/30 [06:39<00:00, 11.01s/it]
2024-12-14 21:37:57 ⋅ The model has 70,553,706,496 parameters, a vocabulary size of 128,256, and a maximum context length of 131,072.
Preparing datasets: 100%
 10/10 [00:02<00:00,  4.64it/s]
Benchmarking: 100%
 10/10 [39:09<00:00, 227.14s/it]
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 21:42:10 ⋅ Test scores for iteration 0: {'mcc': 0.8202904742852445, 'macro_f1': 0.8102835209379565}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 21:45:14 ⋅ Test scores for iteration 1: {'mcc': 0.8048726863426076, 'macro_f1': 0.7865724875105843}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 21:49:13 ⋅ Test scores for iteration 2: {'mcc': 0.8216386170053912, 'macro_f1': 0.8130688249851704}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 21:52:40 ⋅ Test scores for iteration 3: {'mcc': 0.79451804158918, 'macro_f1': 0.7893380563307625}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 21:56:39 ⋅ Test scores for iteration 4: {'mcc': 0.8173987376370678, 'macro_f1': 0.8267919825658266}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 22:02:41 ⋅ Test scores for iteration 5: {'mcc': 0.8239806649146575, 'macro_f1': 0.8172908607380079}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 22:06:18 ⋅ Test scores for iteration 6: {'mcc': 0.8092063357590406, 'macro_f1': 0.7774720624557404}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 22:10:03 ⋅ Test scores for iteration 7: {'mcc': 0.8163682074979931, 'macro_f1': 0.8136247222521206}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 22:13:52 ⋅ Test scores for iteration 8: {'mcc': 0.8117184404274859, 'macro_f1': 0.7989700747595485}
Error displaying widget: model not found
Error displaying widget: model not found
2024-12-14 22:17:11 ⋅ Test scores for iteration 9: {'mcc': 0.7957097928293555, 'macro_f1': 0.7930126092063553}
2024-12-14 22:17:11 ⋅ Finished evaluation of meta-llama/Llama-3.3-70B-Instruct on the truncated version of the Swedish sentiment classification dataset SweReC.
2024-12-14 22:17:11 ⋅ Matthew's Correlation Coefficient: 81.16% ± 0.65%
2024-12-14 22:17:11 ⋅ Macro-average F1-score: 80.26% ± 0.98%
2024-12-14 22:17:11 ⋅ Results:
{'raw': [{'mcc': 0.8202904742852445, 'macro_f1': 0.8102835209379565}, {'mcc': 0.8048726863426076, 'macro_f1': 0.7865724875105843}, {'mcc': 0.8216386170053912, 'macro_f1': 0.8130688249851704}, {'mcc': 0.79451804158918, 'macro_f1': 0.7893380563307625}, {'mcc': 0.8173987376370678, 'macro_f1': 0.8267919825658266}, {'mcc': 0.8239806649146575, 'macro_f1': 0.8172908607380079}, {'mcc': 0.8092063357590406, 'macro_f1': 0.7774720624557404}, {'mcc': 0.8163682074979931, 'macro_f1': 0.8136247222521206}, {'mcc': 0.8117184404274859, 'macro_f1': 0.7989700747595485}, {'mcc': 0.7957097928293555, 'macro_f1': 0.7930126092063553}], 'total': {'test_mcc': 81.15701998288024, 'test_mcc_se': 0.6471706807711762, 'test_macro_f1': 80.26425201742073, 'test_macro_f1_se': 0.9822841338378447}}
2024-12-14 22:17:12 ⋅ Benchmarking meta-llama/Llama-3.3-70B-Instruct on the truncated version of the Danish sentiment classification dataset AngryTweets
2024-12-14 22:17:12 ⋅ Loading model..

As mentioned, the process has been hanging here with no changes since last evening. I
Nvidia-smi:
Sun Dec 15 14:11:01 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA H100 80GB HBM3          On  |   00000001:1B:00.0 Off |                    0 |
| N/A   40C    P0            121W /  700W |    2816MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA H100 80GB HBM3          On  |   00000001:24:00.0 Off |                    0 |
| N/A   33C    P0            112W /  700W |    1840MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA H100 80GB HBM3          On  |   00000001:45:00.0 Off |                    0 |
| N/A   32C    P0            111W /  700W |    1552MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA H100 80GB HBM3          On  |   00000001:4E:00.0 Off |                    0 |
| N/A   40C    P0            114W /  700W |    1600MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+

@Mikeriess Ah yeah, that's a known issue with ray, unfortunately. I opened an issue 8 months ago about it, and no solution yet: https://github.com/vllm-project/vllm/issues/4241
It happens when the model is re-initialised, as the memory isn't cleared properly. I might be able to hack a fix around it by simply not re-initialising vLLM models, but no guarantees.
In case you're in the terminal, you could get around it by simply wrapping the scandeval call in a while loop, and it'll continue with the next dataset each time. Super hacky though!

@Mikeriess There's a ScandEval issue open on this already btw:
https://github.com/ScandEval/ScandEval/issues/413

@saattrupdan Pretty hacky solution, yes, but given the window of opportunity (you saw that on DDSC Slack) its worth a try :-)
I just loop over each task for each language? Any hints on where I can get a complete overview of these?

No need to do a for loop, you can just do a while loop and keep benchmarking. It caches whenever a model/dataset is done, so it won't start from scratch each time 🙂

Just to be clear, I had something like this in mind:
while true
do
  scandeval -m <model-1> -m <model-2> (...)
done

Then it'll just keep on benchmarking, and if the crash happens after a dataset then it'll resume where it got to again. Hacky, but until we have another solution that's at least one way.

@saattrupdan thanks - but the problem here is that it doesnt crash, it just hangs forever while loading the model again.
So I think doing the datasets one by one, and in that way avoiding the re-load of the model is better in this case. But is it doable?


Minor clarification on allowed rounding mode

The accuracy section of this standard states
The results of element-wise arithmetic operations ...
for floating-point operands must return the nearest representable value
according to IEEE 754-2019 and a supported rounding mode.

I believe this intends to allow (optionally, and not by default) the use of directed rounding, i.e., the IEEE 754-2019 rounding attributes roundTowardPositive, roundTowardNegative, and roundTowardZero.
However, directed rounding does not, in general, return the nearest representable value--only an attribute that rounds to nearest does that.
IEEE 754-2019 defines the term "correctly rounded", which I suggest is preferred here:
The results of element-wise arithmetic operations ...
for floating-point operands must return the correctly rounded value
according to IEEE 754-2019 and a supported rounding mode.

By the way, I would support a recommendation that array libraries offer directed rounding as an option.
One way to try to assess the effects of roundoff upon a floating-point computation is to repeat the computation in arithmetic of the same precision but rounded differently, say TowardNegative, TowardPositive, and maybe TowardZero, besides "to nearest", and compare three or four results.  I'm quoting Prof. W. Kahan.
Though far from foolproof, rounding every inexact arithmetic operation (but not constants)
in the same direction for each of two or three directions besides the default "to nearest"
is very likely to confirm accidentally exposed hypersensitivity to roundoff.
When feasible, this scheme offers the best Benefit/Cost ratio [of the five he mentions].

The paper is Mindless.pdf.


Make optimizer compatible with Apple Silicon MPS

It seems like the tensor.lerp_() function throws an error on the MPS backend, as also noted in this issue: https://github.com/pytorch/pytorch/issues/77764
This PR simply replaces all .lerp_() calls with .mul_() followed by .add_(), which should be very close in performance while also being compatible with the MPS backend for Apple Silicon machines.

Nice, thanks for getting it merged so quickly!


Fixed not using provided date formatter

I have already signed the CLA.
This fixes a bug where dates were not correctly formatted in certain queries, as the query builder was not used.

Codecov Report

Merging #132 into master will decrease coverage by 0.05%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #132      +/-   ##
==========================================
- Coverage   84.55%   84.49%   -0.06%
==========================================
  Files          43       43
  Lines        3606     3606
==========================================
- Hits         3049     3047       -2
- Misses        557      559       +2

Flag
Coverage Δ

#SwiftKuery
84.49% <100%> (-0.06%)
:arrow_down:

Impacted Files
Coverage Δ

Sources/SwiftKuery/Predicate.swift
90.62% <100%> (ø)
:arrow_up:

Sources/SwiftKuery/Utils.swift
52% <0%> (-2.67%)
:arrow_down:

Continue to review full report at Codecov.

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


Added chatglm3 conversation type for training models like TinyLLama

Hi there, I've run the code through Pylint and made a couple of minor spacing adjustments as suggested by the tool. Please let me know if there's anything else that needs to be addressed for this PR. Thank you!

Leaving this here for reference implementation: https://github.com/lm-sys/FastChat/blob/722ab0299fd10221fa4686267fe068a688bacd4c/fastchat/conversation.py#L169-L178
I find it weird that there's a space before message since I don't see it within their docs, but fschat has it.
https://github.com/THUDM/ChatGLM3/blob/main/PROMPT_en.md

You're right, I have copied the code from https://github.com/lm-sys/FastChat/blob/main/fastchat/conversation.py
I've run a train and the fine-tuned model seems to be working incredibly well.

Thank you for the PR!


polaris-feature.js:8:1: Unexpected reserved word (undefined)

On line 8 I have:
class PolarisFeature {

Did you use --es6?

With --es6 Unexpected reserved word is gone, but ton's of other errors came, like: (no-var), (object-shorthand), Maximum allowed is 15. (max-statements)...
Is there are way to use nice es6 class definition without following rest of es6 rules?

You can use a custom .eslintrc in your project. standard will pick up the new configuration.

Ok, thanks


Potential memory leak

While focusing on keeping the CPU usage low there hasn't been much optimization in the memory usage, this should be optimized before the final 3.0 release, although ~200MB during regular usage doesn't sound much it's still more than alternate game modes and should be reduced if possible.

Progress so far:

Merging resources: GTWcivilians with GTWteam and GTWrank
reverting bots to it's original resource
Switching databases to MySQL

Average memory usage has been reduced with 20% and it doesn't seem to increase radically.

I think it's the amount of resources causing the relatively high memory usage and some object heavy ones like house and business system. I'll investigate further to see if I can find anything else

By looking at the performance browser I'd say it's the amount of resources as well, we should reduce the amount and merge as much as possible. GTWcivilians for instance could handle all civilian jobs, GTWshops (new) should handle all the shops from ammu nation, hardware, fastfood, clothes, robbery and eventual new shops like sex shops, restaurants, barber shops and gym's

More resources have been merged and thus the memory usage lowered to acceptable ~200MB (Tested on Linux Debian 8.5, server version 1.5.2)

Should I merge some resources too such as utility stuff which can be done in any other resource?

Some basic stuff can be included into GTWcore so that's a goal we're trying to reach and reducing the amount of resources would also reduce the memory usage. But some resources needs optimization too.


Where is the Code for "Integration with the Attention Mechanism and Offline Matrix Fusion"?

Hi,
First of all, thank you for your excellent work on this project. I’ve been exploring the code, and I’m particularly interested in understanding the part where Palu absorbs the reconstruction matrix of value Bv into the output projection matrix W_o offline.
Could you please point me to the specific section of the code that handles this?
Thanks in advance for your help!
Best regards,
Lucas

Hi @xlim1996!
Thank you for your interest in our work. We are still working on refactoring our current implementations. Currently, the fusion of Bv into W_o is placed at kernel/palu_attention.py#L285. The testing code is over here. Please let me know if you have further questions.
Thank you


Restore CSI CRs prior to PVCs

When restoring a CSI volume, the following resources should be restored before PVCs, in order to properly hook up references:

volumesnapshotcontents.snapshot.storage.k8s.io
volumesnapshot.snapshot.storage.k8s.io
volumesnapshoclass.snapshot.storage.k8s.io

For the prototype phase, we should consider just having users use the --restore-resource-priorities flag on the velero server command to configure this.

Yeah, that’s totally reasonable.
I’ll update docs and move this out of the v1.1 milestone.


Support Willowgift Jade Amulet unique mod

Fortify Buffs you create instead grant {30% more Evasion Rating}

Just added this into my fork https://github.com/LocalIdentity/PathOfBuilding. Thanks for the work

I change to use LocalIdentity/PathOfBuilding


Proposal: Horizontally-Scalable LLM Requests

The Problem
Currently, aider appears to have a single-threaded approach to handling LLM requests and responses. This has been enough to make aider operate well at a basic level, but it limits what we can do if we're willing to spend more compute to solve our problems.
When we ask aider to do a programming task, we can potentially trigger many LLM requests, some of which could execute concurrently:

Create a high-level plan based on the user's query
Review the plan and make improvements
Search the codebase for relevant files
Come up with file management operations such as adding new files, removing files, or moving files
Execute unit tests or build steps in order to validate code changes

Feed the validation results back into the LLM for feedback
Repeat until valid

Proposal: Asynchronous LLM Requests
1. Put LLM requests into async functions
The first step is to make our LLM completion queries async.
2. Implement limits and checks to manage concurrency
LLMs are expensive to run. Some users will have higher or lower compute budgets.
We can keep this concurrency under control by using queues and workers. Because our workers are simply making HTTP requests, we do not need threads --asyncio is enough. I suggest that we have a queue of LLM requests, and a fixed number of workers.
For instance, if we have an API with a strict limit of 1 request per 10 seconds, we could spawn just one worker and have it sleep for 10 seconds, grab a work item from the queue, and repeat.
If, on the other hand, we have our own GPU cluster running llama with a private openai-compatible API, then we might want to run 8 workers each of which could make 5 requests per second.
2.a. Budgeting
Although we have managed the API-side requirements such as rate limiting, we may still incur higher costs than the user intends to budget for a given task.
To solve this, we could use a feature where we ask for a budget when aider receives a new high level instruction from the user. Each time a worker processes an LLM task from the queue, the associated cost would be accounted for. In conjunction with this, we would want some kind of cost estimation function and a way to scale the computational intensity that the aider agent applies to the task.
Costs could be "scaled down" by using fewer workers, doing fewer review passes, and disabling non-critical computationally-expensive processing steps for that query.
The goal would be to have aider output quality scale based on the budget of the user.
Caveats
Rate Limiting
Some providers have strict rate limits on API requests. We don't want to make more requests than our allowed quota.
Handled by #2 above.
Costs and Budgeting
Costs could spiral out of control.
Handled by #2 above.

Sounds like an interesting concept. I've thought about this a bit as well.
How would you suggest turning one user request into multiple LLM requests? I'm not sure there's a general way to do that.

One way to do it is to teach the LLM that it is allowed to write TODO comments, or for some languages like Kotlin, you can call a TODO("implement me") function (it throws at runtime).
This would allow the LLM to defer work if it's not sure it can do it all at once. Then if you detect it emitted such a function call, you go back and ask it to fix that specific TODO, but you can potentially do them in parallel if the expression is being used inside typed functions.

Hi @achristianson @paul-gauthier LiteLLM now allows you to queue requests if this is of interest to you / this project
Here's a quick start on using it: Compatible with GPT-4, llama (mentioned in this thread)
docs: https://docs.litellm.ai/docs/routing#queuing-beta
Quick Start

Add Redis credentials in a .env file

REDIS_HOST="my-redis-endpoint"
REDIS_PORT="my-redis-port"
REDIS_PASSWORD="my-redis-password" # [OPTIONAL] if self-hosted
REDIS_USERNAME="default" # [OPTIONAL] if self-hosted

Start litellm server with your model config

$ litellm --config /path/to/config.yaml --use_queue

Here's an example config for gpt-3.5-turbo
config.yaml (This will load balance between OpenAI + Azure endpoints)
model_list:
  - model_name: gpt-3.5-turbo
    litellm_params:
      model: gpt-3.5-turbo
      api_key:
  - model_name: gpt-3.5-turbo
    litellm_params:
      model: azure/chatgpt-v-2 # actual model name
      api_key:
      api_version: 2023-07-01-preview
      api_base: https://openai-gpt-4-test-v-1.openai.azure.com/

Test (in another window) → sends 100 simultaneous requests to the queue

$ litellm --test_async --num_requests 100

Available Endpoints

/queue/request - Queues a /chat/completions request. Returns a job id.
/queue/response/{id} - Returns the status of a job. If completed, returns the response as well. Potential status's are: queued and finished.

I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.


Is it possible to save a complete path?

I am a query, I have been searching for information for a long time, it is possible to save a complete path like vm.datas.$save() considering that within dates I have an array?

Hi @newmesiss! We have a required issue template. This question seems more suited for Stackoverflow as this repo is dedicated to troubleshooting library issues.


Add readme

How can i help you?

@RaulLima2 I already did a PR for this issue. You can try to solve issue #8 .


skip control inputs when building graphs

Control inputs are not attached to the graph in a way that makes them visible when iterating using graphdef.node. This causes a crash when trying to attach them as an edge. For now, skipping them seems like a reasonable way to keep the graphs working.

Pull Request Test Coverage Report for Build 557

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 70.435%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lucid/misc/graph_analysis/overlay_graph.py
0
2
0.0%

Totals

Change from base Build 555:
-0.06%

Covered Lines:
1763

Relevant Lines:
2503

💛  - Coveralls


Syntax Error from copied bash command trying to connect to server.

Getting an issue from mysql shell from copying bash command from "Connect to the server by using the MySQL Workbench GUI tool". Followed all steps above. My command line keeps telling me its a syntax error.

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

ID: 1f766765-03b0-2d76-7fe0-42b207afd9f9
Version Independent ID: cbd009b3-ba92-2207-d843-77c2268eb7a5
Content: Quickstart: Create a server - Azure portal - Azure Database for MySQL
Content Source: articles/mysql/quickstart-create-mysql-server-database-using-azure-portal.md
Service: mysql
GitHub Login: @ajlam
Microsoft Alias: andrela

@atycholis Please convey from where you downloaded the command line tool and also what syntax you are using.

I downloaded it from this source: https://dev.mysql.com/downloads/shell/
I am using this syntax from above:
mysql --host  --user @ -p
ERROR: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

mysql --host 'fully qualified server name' --user 'server admin login name'@'server name' -p

Figured it out, turns out I needed the correct path + bash.
Thank you.

@atycholis Glad you were able to figure it out. We are going ahead and closing this thread.


move client into class member

Codecov Report

Merging #322 into experimental will not change coverage.
The diff coverage is 50%.

@@             Coverage Diff              @@
##           experimental    #322   +/-   ##
============================================
  Coverage          83.4%   83.4%
============================================
  Files                24      24
  Lines              1091    1091
============================================
  Hits                910     910
  Misses              181     181

Impacted Files
Coverage Δ

vent/api/actions.py
85.59% <50%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


chore: package changes and bumps

Coverage increased (+0.8%) to 35.019% when pulling a916b96b87f1b6ff2a4e42e3998ab91c0b9c709a on chore/package-changes-and-bumps into cbb7667f14cc595cd1cfc4de92f65074cdc77df6 on main.


gh-1404 - merged schema ids now use underscores

Codecov Report

Merging #1405 into develop will increase coverage by 2.01%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop    #1405      +/-   ##
=============================================
+ Coverage      65.74%   67.76%   +2.01%
+ Complexity      1643      537    -1106
=============================================
  Files            706      387     -319
  Lines          23060    12758   -10302
  Branches        2923     1615    -1308
=============================================
- Hits           15161     8645    -6516
+ Misses          6712     3468    -3244
+ Partials        1187      645     -542

Impacted Files
Coverage Δ
Complexity Δ

...onutil/iterable/LimitedInMemorySortedIterable.java

.../gchq/gaffer/operation/impl/export/GetExports.java

...ava/uk/gov/gchq/gaffer/operation/SeedMatching.java

.../java/uk/gov/gchq/gaffer/jobtracker/JobDetail.java

...mmonutil/elementvisibilityutil/Authorisations.java

...ore/operation/handler/export/GetExportHandler.java

...main/java/uk/gov/gchq/gaffer/data/GroupCounts.java

...uk/gov/gchq/gaffer/store/SerialisationFactory.java

...gov/gchq/gaffer/serialisation/FloatSerialiser.java

...r/serialisation/implementation/JavaSerialiser.java

... and 308 more

Continue to review full report at Codecov.

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


Bloxtrap exception[BUG]

Acknowledgement of preliminary instructions

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

What problem did you encounter?
2024-06-28T21:11:53Z [App::OnStartup] Starting Bloxstrap v2.5.4
2024-06-28T21:11:53Z [App::OnStartup] Compiled Friday, 3 November 2023 at 3:46:02 PM from commit 880c076fcd875fc10b5f6bef770033074d79a7a8 (tag/v2.5.4)
2024-06-28T21:11:53Z [App::OnStartup] Loaded from %UserProfile%\AppData\Local\Bloxstrap\Bloxstrap.exe
2024-06-28T21:11:53Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Bloxstrap\Logs\Bloxstrap_20240628T211153Z.log
2024-06-28T21:11:53Z [Logger::Initialize] Finished initializing!
2024-06-28T21:11:53Z [Logger::Initialize] Cleaning up old log file 'Bloxstrap_20240621T165939Z.log'
2024-06-28T21:11:53Z [JsonManager::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Settings.json...
2024-06-28T21:11:53Z [JsonManager::Load] Loaded successfully!
2024-06-28T21:11:53Z [JsonManager::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-06-28T21:11:53Z [JsonManager::Load] Loaded successfully!
2024-06-28T21:11:53Z [JsonManager<Dictionary2>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Modifications\ClientSettings\ClientAppSettings.json... 2024-06-28T21:11:53Z [JsonManager<Dictionary2>::Load] Loaded successfully!
2024-06-28T21:11:53Z [NotifyIconWrapper::NotifyIconWrapper] Initializing notification area icon
2024-06-28T21:11:53Z [App::OnStartup] Initializing bootstrapper
2024-06-28T21:11:53Z [App::OnStartup] Initializing bootstrapper dialog
2024-06-28T21:11:53Z [App::OnStartup] Creating singleton mutex
2024-06-28T21:11:53Z [Bootstrapper::Run] Running bootstrapper
2024-06-28T21:11:53Z [Bootstrapper::Run] Performing connectivity check...
2024-06-28T21:11:53Z [Bootstrapper::SetStatus] Connecting to Roblox...
2024-06-28T21:11:53Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-06-28T21:11:53Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-06-28T21:11:54Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-06-28T21:11:54Z [Bootstrapper::Run] Connectivity check finished
2024-06-28T21:11:54Z [RobloxDeployment::GetInfo] Getting deploy info for channel zperfverify (extraInformation=False)
2024-06-28T21:11:54Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/zperfverify
2024-06-28T21:11:54Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/zperfverify
2024-06-28T21:11:54Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-06-28T21:11:54Z [RobloxDeployment::GetInfo] Deploy information is cached
2024-06-28T21:11:54Z [DeployManager::DefaultBaseUrl.Set] Testing connection to 'https://setup.rbxcdn.com'...
2024-06-28T21:11:54Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version
2024-06-28T21:11:55Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version
2024-06-28T21:11:55Z [DeployManager::DefaultBaseUrl.Set] Connection successful!
2024-06-28T21:11:55Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/channel/zperfverify/version-4ae71dfc71854fa7-rbxPkgManifest.txt
2024-06-28T21:11:55Z [HttpClientLoggingHandler::ProcessResponse] 403 Forbidden https://setup.rbxcdn.com/channel/zperfverify/version-4ae71dfc71854fa7-rbxPkgManifest.txt
2024-06-28T21:11:55Z [App::OnStartup] Bootstrapper task has finished
2024-06-28T21:11:55Z [NotifyIconWrapper::Dispose] Disposing NotifyIcon
2024-06-28T21:11:55Z [App::OnStartup] An exception occurred when running the bootstrapper
2024-06-28T21:11:55Z [App::OnStartup] System.AggregateException: One or more errors occurred. (Response status code does not indicate success: 403 (Forbidden).)
---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at Bloxstrap.Models.Manifest.PackageManifest.Get(String versionGuid)
at Bloxstrap.Bootstrapper.CheckLatestVersion()
at Bloxstrap.Bootstrapper.Run()
at Bloxstrap.Bootstrapper.Run()
at Bloxstrap.App.<>c__DisplayClass56_0.<b__1>d.MoveNext()
--- End of inner exception stack trace ---

Addressed in Wiki


Connected name option is shown in “Connected apps” screen after Tapping on “Allow” button for second time from wallet connect prompt as user Declined permission for same earlier

Frequency: 100%
Repro on build version: Test flight Build V1.21.0(1635160132), Android Internal Build V1.21.0
Repro on devices: iPhone 12 (15.0), One plus 7t (11.0), iPhone 6+(12.5.4), iPhone SE (14.2)
Browser Info: Safari V15.0, Safari V12.5.4, Safari V14.2, Chrome V94.0
Pre-condition:

User must have installed the app and completed onboarding flow by verifying the phone number.
User must have opened url: https://app.sushi.com/swap in the mobile browser.
User must have tap on “Cancel” button from the wallet connect prompt for the first time in app, after tapping in “Connect to a wallet” button from browser.

Repro Steps:

Navigate back to browser window after tapping on “Cancel” button from the wallet connect prompt in app.
Close the “select wallet” popup from the browser
Tap on “Connect to a wallet” button again from the browser
Tap on “Wallet Connect” option from select Wallet popup
Tap on “Valora” option from wallet connect popup.
Tap on “Allow” button from wallet connect prompt in the app
“Success! Please..” message appear in blue banner.
Navigate to “Connected apps” screen in & observe the dapp option is not displayed.
Navigate back to browser window & observe the dapp appears connected.
Tap on “Disconnect” button & disconnect dapp from browser.
Repeat Step 3,4,5
Tap on “Allow” button for the wallet connect prompt
“Success! Please..” message appear in blue banner.
Navigate to “Connected apps” screen in & observe the dapp option is displayed now.

Current Behavior: Connected dapp option is visible in “Connected apps” screen after Tapping on “Allow” button for second time from wallet connect prompt in app
Expected Behavior: Connected dapp option should be visible in “Connected apps” screen after Tapping on “Allow” button for first time from wallet connect prompt in app, after Tapping on “Cancel” button once from wallet connect prompt.
Investigation: This issue is reproducible for both mWeb & Web browsers.
Impact: Bad user experience.

Hey @MuckT, We have verified this issue using latest Android internal build V1.24.1, Test flight build V1.24.1 & observed that the issue is fixed. Connected dapp optionis appearing in "Connected apps" section after tapping on "Allow" for first time after user has declined the permission by tapping on "Cancel" button from the prompt.
Hence we are closing this issue.
Devices: Google Pixel XL (10.0), iPhone 13 mini (15.1.1)
Attachment: Connected dapp option appears.mp4
Thanks..!!


nixos/gitea: Don't include not needed database options depending on type

Motivation for this change
This was discovered in https://github.com/NixOS/nixpkgs/pull/60014
If this works as I expect I think we should backport #60014 to stable together with this fix, to get the security fixes over there at stable.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

cc @ajs124 @srhb

@GrahamcOfBorg build nixosTests.gitea

:+1: works for me (on 19.03). Thanks for looking into this.

@ajs124 Thanks for discovering this and bringing it up :-)

Hey, sorry I'm late. I still don't understand why this is necessary. As far as I can tell, the path is already (properly) ignored for other databases. How do I reproduce any issue that makes this PR necessary?

I haven't found a really good reproducer yet, but one (potentially big) difference between the test and my deployment is that I don't explicitly set services.gitea.database.socket. That shouldn't lead to the error I was seeing, though.
And now it looks like I can't reproduce it anymore on my own setup, great.
I'd still say that it's cleaner this way, but it looks like it might not be necessary, after all.


[FLINK-4091] Fix Guava shading in Cassandra connector

This PR modifies the guava shading in the Cassandra connector. It no longer uses the same pattern as flink-dist which lead to version conflicts.

Just verified the fix.
+1 to merge

merging


Add the ability to upload ancillary files

Summary
Ancillary files or calibration files are additional files with special rules. The API should be able to accept these as valid uploads.
Requirements
The more specific the better.

[ ] validate names of ancillary files
[ ] Be able to upload them to API

Related tickets
Blocked by IMAP-Science-Operations-Center/sds-data-manager#282

Just providing a bit more details for @daralynnrhode here of what I think needs to be done for this:

Alongside ScienceFilePath and SPICEFilePath, create a new class in file_validatation.py called AncillaryFilePath

The __init__ method of the class should take in a filename as a parameter, and validate that the filename matches the expected Ancillary file naming convention. The SDC team has not yet defined this filenaming convention, so for now, just do something simple like check that the letters anc are in the filename. This bit of code will likely change once we figure out what we want for exact naming conventions
The class should also have a construct_path method that returns a full path to where the ancillary file will live in the S3 bucket. We still haven't quite decided where that should be, so for now you can just use something like /imap/ancillary/.

The sds_data_manager.lambda_code.SDSCode/upload_api.lambda_handler() function in the sds_data_manager repo will need to be updated too

The function currently has a few try/except blocks that determine if the file is a Science file or a SPICE file. A similar try/except block should be added to determine if the file is an Ancillary file.

Just want to tag @maxinelasp, @greglucas, and @tech3371 here in case I am missing something!

More info on ancillary files defined here: https://imap-processing.readthedocs.io/en/latest/data-access/calibration-files.html
Overall steps:

add the ability to upload ancillary files to the API. This has very similar requirements to the science files and should look very close to that existing code.
Add the basic ability to download ancillary files to the API via file name
Add the ability to retrieve required file names based on the time range - this is going to be more complicated, because we need some ability to specify that we want the most recent files for a given time range, and the code will need to synthesize that and return the proper files. This should be in imap-data-access
Update imap-data-access as needed for everything else

This is expected to be a quite difficult ticket, and also one where there is more autonomy in choosing what to do. It does involve some design work and touches on a few different parts of the system. It will require some AWS work with deploying and validating the Lambda functions. I am the main point of contact on this ticket, please ping me directly if you are not getting fast enough answers on anything! Also, if there is something that doesn't seem right, or one of these requirements seems wrong to you, please let me know and we can figure that out.
This is definitely a more advanced ticket but it should be a chance to do some more investigative/design based work.
Places to start:
https://github.com/IMAP-Science-Operations-Center/sds-data-manager/blob/dev/sds_data_manager/lambda_code/SDSCode/download_api.py
https://github.com/IMAP-Science-Operations-Center/sds-data-manager/blob/dev/sds_data_manager/lambda_code/SDSCode/query_api.py
https://github.com/IMAP-Science-Operations-Center/sds-data-manager/blob/dev/sds_data_manager/lambda_code/SDSCode/upload_api.py
You shouldn't need to go outside of that lambda_code directory and it can be hard to track how things move through the system with that CDK code. If you do find yourself investigating other parts of the system such as databases, the API Gateway, S3 buckets, etc, do not hesitate to ask questions!


Fix mixin example

as discussed here: http://stackoverflow.com/questions/8743736/mixin-gives-error

Walter will probably want those separated into $(V1) $(V2), respectively.

string == char[] in D1 (using Phobos, not Tango), so the above is fine. I believe other places in the documentation use string too.


Thorchain fees for adding liquidity transaction

Research fees for adding liquidity and display any fees to user
(native fees only, not affiliate fees)

Done as part of LP work


feat: add <IP_ADDRESS>44

@zvs001 I published the pod with version <IP_ADDRESS>44 and I got the email with [CocoaPods]<EMAIL_ADDRESS>was released. but I still do not see the most recent version on https://cocoapods.org/. Has this happened to you before?

@zvs001 I published the pod with version <IP_ADDRESS>44 and I got the email with [CocoaPods]<EMAIL_ADDRESS>was released. but I still do not see the most recent version on https://cocoapods.org/. Has this happened to you before?

Cocoapdos will take 1-3 hours to invalidate packages. (For pod install)

@zvs001 I published the pod with version <IP_ADDRESS>44 and I got the email with [CocoaPods]<EMAIL_ADDRESS>was released. but I still do not see the most recent version on https://cocoapods.org/. Has this happened to you before?

Cocoapdos will take 1-3 hours to invalidate packages. (For pod install)

Got it, thnx!


menu link

I create menu link http://<IP_ADDRESS>:1111/category/shoes
The first I clicked the link, the browser shows url http://<IP_ADDRESS>:1111/category/shoes (ok)
the second I clicked the link, the browser shows http://<IP_ADDRESS>:1111/category/category/shoes (error)
the third I clicked the link, the browser shows http://<IP_ADDRESS>:1111/category/category/category/shoes (error)

Can you be more specific? Which theme are you using?

All the themes, giving same issue.
On 11 Jun 2018 6:27 AM, "Mark Moffat"<EMAIL_ADDRESS>wrote:
Can you be more specific? Which theme are you using?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mrvautin/expressCart/issues/21#issuecomment-396087071,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGuB3VWsW3uYzPnPrPDRoUpKEn8bNzuzks5t7Z1ggaJpZM4Uhtum
.

It's due to your menu's being setup without a leading /.

ok, is working now, thank you.
regards,
Paul Ho
On Mon, Jun 11, 2018 at 8:27 AM, Mark Moffat<EMAIL_ADDRESS>wrote:

It's due to your menu's being setup without a leading /.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mrvautin/expressCart/issues/21#issuecomment-396094235,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGuB3bZJIm30A4MIQlNg6q-LT_bm6UsJks5t7blkgaJpZM4Uhtum
.


Recommended install with frigate 0.12 and gortc built in?

Hi, I am wondering if there is a different or recommended way of running this now that frigate is using gortc internally?

Hi there. No, it works pretty much the same, it's just simpler. The Frigate beta add-on has already the needed accesses for using this integration:

https://github.com/blakeblackshear/frigate-hass-addons/pull/94

Once it gets released to stable, I'll update the guide on the main page.

Anyway, here's an example if you are using Frigate 0.12:
# frigate.yaml

go2rtc:
  streams:
    my_camera:
      - echo:bash /config/custom_components/expose_camera_stream_source/get_stream.sh camera.my_camera
      # Do the audio conversion if you need
      - ffmpeg:my_camera#audio=aac

cameras:
  video_porteiro:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/my_camera?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://<IP_ADDRESS>:8554/my_camera?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-copy

Thanks, Is this still applicable if frigate is not an addon. I run it on unraid. I've tried all 3 methods so far without luck.

If you run without being an add-on, then you should follow this:
https://github.com/felipecrs/hass-expose-camera-stream-source#when-go2rtc-is-running-via-docker

But you have to tailor it to the Frigate container.

Was it working before Frigate 0.12?

What camera do you have?

No first time i'm trying to incorporate this camera at all. I tried a year ago but i didn't realise progress had been made to get tuya cams into HA til today.
I have this camera: https://www.kogan.com/au/buy/kogan-smarterhome-smart-baby-monitor-security-camera-white-kogan/?utm_source=google&utm_medium=product_listing_ads
I have added it to the tuya app and it has appeared in home assistant. I've renamed it to camera.bed_3_baby_monitor
I am running frigate beta 5 in a container. I don't have access to the gortc docker config like in your guide due to it being built into the frigate container. So what i did was add the long lived token to the frigate container as an ENV variable, and add the get_ha_streams.sh to the appdata/frigate folder which contains the frigate.yml file and is mapped to the /config folder in the frigate container.

I suspect (with my limited knowledge) that gortc config folder is not the same one mapped to frigate config

There's no such thing anymore. The go2rtc config is embedded in the frigate config under go2rtc: key.

go2rtc:
  streams:
    baby_monitor:
      - echo:/config/get_ha_stream.sh camera.bed_3_baby_monitor
      #- echo:bash /config/custom_components/expose_camera_stream_source/get_stream.sh camera.bed_3_baby_monitor
      - ffmpeg:baby_monitor#audio=aac

cameras:
  baby_monitor:
    ffmpeg:
      inputs:
        - path: rtsp://localhost:8554/baby_monitor?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://localhost:8554/baby_monitor?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record

Is it also mounted properly? Does it work with:
docker exec frigate /config/get_ha_stream.sh camera.bed_3_baby_monitor

maybe not. just seems to hang

I will try mounting the file directly like the instructions, should have to start with sorry

If that doesn't work then it won't work in go2rtc as well. If it's hanging, usually it's because there's something blocking the connection between your Frigate container and your Home Assistant.
Are both running as sidecar containers? What is the Frigate host that you configured in the Frigate HA  integration?

BTW do a favor to yourself and upgrade to beta 7, it's so much better. :)
Also, not all Tuya cameras are compatible. @pergolafabio is it the same camera that you have?

updating to 7 now.
mounting the file directly didn't seem to change anything. still hangs when running the docker exec command.
I have two servers. one is bare metal HAOS. the other is unraid. On unraid i have frigate as a container. on HOAS i have the frigate proxy addon and the frigate integration.  I never updated the IP address in the sh script.
Thanks for the assist, working fine.

Although the resolution seems wrong. much smaller than 1080p

Ahh its the SD stream vice the HD one. I'll see if that can be changed

Hm... I think it's the only stream that HA provides today. I'd recommend opening a feature request for them to expose both camera entities for both streams like the ONVIF integration does.


Reduce number of CES updates sent to API server in short time for the same CES

Change the DefaultCESSyncTime to 500ms.
The Cilium operator watches CiliumEndpoints (CEP) and batches them into CiliumEndpointSlices (CES). During high pod churn (Create, Update, Delete) rate, there are many CEPs created and batched into the same CES. Kube-apiserver logs show that it sometimes receives up to 10 CES updates from the Cilium operator for the same CES in less than 1 second.
This behavior is degrading the performance of CEP batching, because the rate limiter for CES updates is based on the specified number of mutating requests per second. It is also inefficient, because adding up to 500ms delay to propagate CiliumEndpoints through the cluster is currently considered insignificant.
The estimated and tested improvement is to reduce the number of CES update requests sent to the API server by a factor of 5 when there is a high pod churn rate.
500ms delay is insignificant because:

CiliumEndpoint batching is a feature to improve performance at scale, by reducing the load on the kube-apiserver, and also keeping the propagation latency low. The bottleneck at scale is the rate at which CES updates can be sent to the kube-apiserver, which is rate limited by the CES workqueue in the Cilium operator. In large clusters it can go into minutes, or even hours in the worst case with Identity batching mode. Without appropriate rate limiting, CES updates can overload kube-apiserver. There is a scalability/performance feature of kube-apiserver called Priority & Fairness, which should help here, but it’s still not at a stage that it can be relied on. With this in mind, clusters that need to use CEP batching will want to accept the delay of 500ms of sending CES updates, because it actually improves performance -- has lower latency to configure all nodes to communicate with every new pod. This is because multiple CES updates for the same CES will not be taking up nearly as many updates per second, and that other CES updates waiting in the queue are processed quicker.

The workqueue’s AddAfter() works in a way that it enqueues the item for the first CES event right away, and adds delay only when there are subsequent events for the same CES. This means that in the worst case, only some CEPs that were added to CES may have up to 500ms delay to be processed. Here is an example that shows how the first update is immediately enqueued and processed, and that delay only affects subsequent updates and is always lower than 500ms:
Time 0ms - Update A is immediately enqueued to be processed.
Time 200ms - Update B is delayed to be enqueued at 500ms after the most recent enqueued update
Time 300ms - Update C is delayed to be enqueued at 500ms after the most recent enqueued update
Time 400ms - Update D is delayed to be enqueued at 500ms after the most recent enqueued update
Time 500ms - A single CES update is enqueued to be processed, that covers all changes in updates B, C and D.

Delay for update B was 300ms, for update C 200ms and for update D 100ms.

Pods are communicating with each other through services. Both default clusterIP or headless service and DNS require Endpoints/EndpointSlice objects to be populated with pod IPs first. This means that new pods already have some similar delay to be truly reachable (not just network ready). As I mentioned above, EndpointSlices already have 1 second delay for updates, which makes 500ms insignificant.

500ms is a very small price to pay for using network policies at scale. There are no SLOs for network policies that cover this, or would indicate it as a regression, although some users might rely on lower latency. Also compared to Cilium’s pod startup latency regression of a few seconds, which was recently reduced, it wasn’t presenting real issues for Cilium’s performance.

Increase the default CiliumEndpointSlice sync time from 0 to 500ms

Signed-off-by: Dorde Lapcevic<EMAIL_ADDRESS>

Should I consider using a CFP (Cilium Feature Proposal) for changes such as this one? https://github.com/cilium/cilium/blob/master/.github/ISSUE_TEMPLATE/feature_template.md
FYI @alan-kut

Could you add a release note as it is a user-facing change? Thanks https://docs.cilium.io/en/stable/contributing/development/contributing_guide/#submitting-a-pull-request

@marseel, do you mean to add it to Documentation/operations/upgrade.rst?
Something like:
CiliumEndpointSlice updates are now batched at 500ms intervals to improve performance at scale, similarly to K8s EndpointSlices.

Thanks for the PR. Do you have an estimate of how much pod churn required you to land on 500ms?

Thank you for reviewing @christarazi
The tested pod churn rate was 100 per second, which proved at times to have 10 CES updates per seconds sent to the kube-apiserver by the operator for the same CES. As long as there are a high number of pods (hundreds) being deployed at the same time and would belong to the same CES, even with a pod churn rate of 10 per second, this is expected to have a similar effect.
K8s EndpointSlice controller does the same thing, having a 1 second delay, defined in endpointSliceChangeMinSyncDelay https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/endpointslice/endpointslice_controller.go#L66, which inspired this change.
I tested both for 1s and 500ms and ended up deciding to propose 500ms at the moment, because the improvement is great, and the potential added latency is insignificant.
I don’t have any strong arguments for a specific value, so I’m open to hearing opinions and revising it if needed.
I think right now it would not be necessary, but we can make this configurable with a flag, so that very large clusters can even further adjust the load on the API server, and have a more consistent and still performant experience.

Thanks for the response. I think adding that context into the commit msg would be useful so that we can refer back to this justification in the future.

It is also inefficient, because adding up to 500ms delay to propagate CiliumEndpoints through the cluster is currently considered insignificant.

In theory, delaying CEP updates can affect connections with policies applied to them and how quickly it takes before the system converges on the correct policy decision. While I'm not arguing to say we don't need a delay time at all, I am curious as to how you are determining 500ms as "insignificant" and why. That would also be helpful to document in the commit msg as well.

Thank you @christarazi for the question. I agree this is important to be documented.
500ms delay is insignificant because:

CiliumEndpoint batching is a feature to improve performance at scale, by reducing the load on the kube-apiserver, and also keeping the propagation latency low. The bottleneck at scale is the rate at which CES updates can be sent to the kube-apiserver, which is rate limited by the CES workqueue in the Cilium operator. In large clusters it can go into minutes, or even hours in the worst case with Identity batching mode. Without appropriate rate limiting, CES updates can overload kube-apiserver. There is a scalability/performance feature of kube-apiserver called Priority & Fairness, which should help here, but it’s still not at a stage that it can be relied on. With this in mind, clusters that need to use CEP batching will want to accept the delay of 500ms of sending CES updates, because it actually improves performance -- has lower latency to configure all nodes to communicate with every new pod. This is because multiple CES updates for the same CES will not be taking up nearly as many updates per second, and that other CES updates waiting in the queue are processed quicker.

Pods are communicating with each other through services. Both default clusterIP or headless service and DNS require Endpoints/EndpointSlice objects to be populated with pod IPs first. This means that new pods already have some similar delay to be truly reachable (not just network ready). As I mentioned above, EndpointSlices already have 1 second delay for updates, which makes 500ms insignificant.

500ms is a very small price to pay for using network policies at scale. There are no SLOs for network policies that cover this, or would indicate it as a regression, although some users might rely on lower latency. Also compared to Cilium’s pod startup latency regression of a few seconds, which was recently reduced, it wasn’t presenting real issues for Cilium’s performance.

Please bring up concerns about my reasoning if you have any.
I’ll update the commit message with the details, once the review of the justification is concluded.

Sounds great, thanks for the explanation! Please do include all of that in the commit msg.

Sounds great, thanks for the explanation! Please do include all of that in the commit msg.

Done.

@marseel, @christarazi is the review completed?
Can you please rerun the tests and try to merge this?

/test

LGTM
Can you only add a release note? 12th point in https://docs.cilium.io/en/stable/contributing/development/contributing_guide/#submitting-a-pull-request
something like:
Change the default sync time of CiliumEndpointSlices to 500ms.

Thanks for your contribution!

Also looks like you need to reduce the length of the first line in your commit message:
Error: ERROR:CUSTOM: Please avoid long commit subjects (max: 75, found: 78)

Both done from @marseel's comments.
Thank you for the review!

/test

/test-1.26-net-next

Datapath BPF Complexity: Shouldn't be related to this change since this doesn't include any datapath or the changes affect datapath configuration changes. Reported => https://github.com/cilium/cilium/issues/24175

/ci-verifier

/test-1.26-net-next

/test-runtime

ConformanceGatewayAPI and ConformanceIngress (default gateway) should be fixed/improved in master after https://github.com/cilium/cilium/pull/24025.

Rebased and re-triggering CI.

/test

Looks like it's ready to be merged.
Thanks everyone!

Merged and thanks a lot for your patience 🥇 🙇


2 errors about fowardRef render

Describe the bug
2 big errors when lunching the project on android studio.
Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
at node_modules\react-native\Libraries\LogBox\LogBox.js:173:8 in registerError
at node_modules\react-native\Libraries\LogBox\LogBox.js:59:8 in errorImpl
at node_modules\react-native\Libraries\LogBox\LogBox.js:33:4 in console.error
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
at node_modules\react\cjs\react.development.js:315:4 in printWarning
at node_modules\react\cjs\react.development.js:287:16 in error
at node_modules\react\cjs\react.development.js:1424:13 in forwardRef
at node_modules\native-base\src\components\primitives\Hidden\index.tsx:79:20 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\primitives\index.ts:61:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\composites\Alert\AlertIcon.tsx:2:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\composites\Alert\index.tsx:1:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\composites\index.ts:12:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\index.tsx:7:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at App.tsx:2:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\expo\AppEntry.js:3:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\metro\src\lib\polyfills\require.js:201:44 in guardedLoadModule
at http://<IP_ADDRESS>:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&minify=false:223410:3 in global code

Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
at node_modules\react-native\Libraries\LogBox\LogBox.js:173:8 in registerError
at node_modules\react-native\Libraries\LogBox\LogBox.js:59:8 in errorImpl
at node_modules\react-native\Libraries\LogBox\LogBox.js:33:4 in console.error
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
at node_modules\react\cjs\react.development.js:315:4 in printWarning
at node_modules\react\cjs\react.development.js:287:16 in error
at node_modules\react\cjs\react.development.js:1424:13 in forwardRef
at node_modules\native-base\src\components\composites\Skeleton\SkeletonCircle.tsx:12:20 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\composites\Skeleton\index.tsx:3:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\components\composites\index.ts:37:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\native-base\src\index.tsx:7:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at App.tsx:2:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\expo\AppEntry.js:3:0 in <global>
at node_modules\metro\src\lib\polyfills\require.js:321:11 in loadModuleImplementation
at node_modules\metro\src\lib\polyfills\require.js:201:44 in guardedLoadModule
at http://<IP_ADDRESS>:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&minify=false:223410:3 in global code

To Reproduce
I installed a new typescript react project with expo, installed native base and lunched the project
Platform

NativeBase version [3.2.0]
Device: [Pixel 2 API 30]
Android

everything is latest version
in addition i think this problem also occurs also in react javascript but its show it as a yellow error

I get these errors too:

    Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?

      at printWarning (node_modules/react/cjs/react.development.js:220:30)
      at error (node_modules/react/cjs/react.development.js:196:5)
      at forwardRef (node_modules/react/cjs/react.development.js:1377:9)
      at Object.<anonymous> (node_modules/native-base/lib/commonjs/components/primitives/Hidden/index.js:1:2524)

and

  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?

      at printWarning (node_modules/react/cjs/react.development.js:220:30)
      at error (node_modules/react/cjs/react.development.js:196:5)
      at forwardRef (node_modules/react/cjs/react.development.js:1377:9)
      at Object.<anonymous> (node_modules/native-base/lib/commonjs/components/composites/Skeleton/SkeletonCircle.js:1:1270)

Is there a workaround at the moment ?

i think this warning appears because forwardRef render function needs props and ref as 2 parameters, but in 2 components:

Hidden at native-base\src\components\primitives\Hidden\index.tsx
SkeletonCircle at native-base\src\components\composites\Skeleton\SkeletonCircle.tsx
forwardRef render function missing ref param

I think just add ref
const SkeletonCircle = ({ children, ...props }: ISkeletonProps) => const SkeletonCircle = ({ children, ...props }: ISkeletonProps, ref)
add
export function Hidden({ children, ...props }: IHiddenProps) => export function Hidden({ children, ...props }: IHiddenProps, ref)
This is a temporary solution, hopefully the next version, the library will have the solutions

i think this warning appears because forwardRef render function needs props and ref as 2 parameters, but missing ref param in 2 components:

Hidden at native-base\src\components\primitives\Hidden\index.tsx
SkeletonCircle at native-base\src\components\composites\Skeleton\SkeletonCircle.tsx
forwardRef render function

I think just add ref
const SkeletonCircle = ({ children, ...props }: ISkeletonProps) => const SkeletonCircle = ({ children, ...props }: ISkeletonProps, ref)
add
export function Hidden({ children, ...props }: IHiddenProps) => export function Hidden({ children, ...props }: IHiddenProps, ref)
This is a temporary solution, hopefully the next version, the library will have the solutions

Yeah, solve the issue. I hope this be fixed in the next version

https://github.com/GeekyAnts/NativeBase/pull/4096 tries to resolve this.

Faced this issue too, had to roll back to v3.1. I was using a custom drawer component in react-navigation, no idea if or why this caused the issue.

i think this warning appears because forwardRef render function needs props and ref as 2 parameters, but missing ref param in 2 components:

Hidden at native-base\src\components\primitives\Hidden\index.tsx
SkeletonCircle at native-base\src\components\composites\Skeleton\SkeletonCircle.tsx

I think just add ref const SkeletonCircle = ({ children, ...props }: ISkeletonProps) => const SkeletonCircle = ({ children, ...props }: ISkeletonProps, ref) add export function Hidden({ children, ...props }: IHiddenProps) => export function Hidden({ children, ...props }: IHiddenProps, ref)
This is a temporary solution, hopefully the next version, the library will have the solutions

This temporary solution works, Thanks 👍🏾.
I hope the next version fixes this ...

The 3.2.1.rc-1 actually fixes it.

This has been fixed in 3.2.1. Let us know if you face any issues!


[Feature request]: Option to avoid resampling/ have uncapped bitrate

I just noticed there's no bitrate information about the file currently being played anywhere in the interface, but more specifically, I would wish to know that the files are not being resampled by Polaris.
Thank you for considering this feature.

There's no resampling done by Polaris, it uses HTML Audio to play the original files.

…and you can verify that by using whatever developer tools your browser offers (e.g. "Page Info" in Firefox). From there you can get the URL of the actual audio file your browser is fetching from Polaris. You will notice it is indeed the original file, completely untouched. In other words Polaris is "bit-perfect". It also means that if your Polaris library contains FLAC files, they will be streamed as FLAC (and the FLAC decoding is done by your browser).

…and you can verify that by using whatever developer tools your browser offers (e.g. "Page Info" in Firefox). From there you can get the URL of the actual audio file your browser is fetching from Polaris. You will notice it is indeed the original file, completely untouched. In other words Polaris is "bit-perfect". It also means that if your Polaris library contains FLAC files, they will be streamed as FLAC (and the FLAC decoding is done by your browser).

Ah, great stuff! Good to know.


⚠ gorzdrav.org has degraded performance

In 2e1d0b1, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 2229 ms

Resolved: gorzdrav.org performance has improved in 929708b.


Docker support for ballerina

This PR contains functionality for building a ballerina docker image. Once the ballerina build command is implemented this needs to be incorporated with that too. As of now this assumed a single .bal file.
Docker image building component is added as a module named "container-support"

This implementation is moved to https://github.com/ballerinalang/container-support repo. Hence closing this PR.
Thanks, @sajhak for confirming this.


docs(dh): bff testing

Codecov Report

Merging #2064 (0fde673) into main (e12078b) will increase coverage by 12.95%.
Report is 1 commits behind head on main.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #2064       +/-   ##
===========================================
+ Coverage   22.70%   35.66%   +12.95%
===========================================
  Files          73       90       +17
  Lines        1656     2030      +374
  Branches      219        0      -219
===========================================
+ Hits          376      724      +348
- Misses       1270     1290       +20
- Partials       10       16        +6

Files Changed
Coverage Δ

...s/dh/api-dh/source/DataHub.WebApi/GraphQL/Query.cs
1.04% <ø> (+0.01%)
:arrow_up:

... and 24 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Can't force quit Beaker Browser

Operation System: macOS 10.12.3
Beaker version: 0.8.0-prerelease.5
Doesn't show up in Activity Viewer or on command line with top. Can't use killall. Only showing up in the macOS dock, not even in command tab switcher. Seems the only way to close it is to restart my computer.

Are you sure it's active? I can't imagine what would be causing that, especially if it's not showing in the activity viewer.

Huh. Is it possibly listed as "Electron?" What happens when you cmd+click / right-click on the dock icon?

"Application Not Responding" and nothing shows up wen searching for "Electron"
also to note I have it it in a folder called " Autonomy" starting with a space so it would be on the top of the list in Applications folder.

Okay good news (sort of). I managed to reproduce. Investigating now.

I recorded a video of something that was happening that was hard to explain


Cubemap to and from cross

Tool to convert between cross layout images and cubemaps.

h-strip (height, width *6): posz, posx, negz, negx, posy, negy
h-strip-xyz (height, width * 6): pox, negx, posy, negy, posz, negz
h-cross (height * 3, width * 4): negx, posz, posx, negz, posy, negy
h-cross-flip
v-cross (height * 4, width * 3): negx, posz, posx, posy, negy, negz
v-cross-flip

considering adding this as an option to texassemble

texassemble now supports h-strip, v-strip, h-cross, and v-cross generation.

texassemble now supports h-strip, v-strip, h-cross, and v-cross generation.

Looks like texassemble only supports creating cross from cubemap, not converting h-cross to cubemap?

Correct.  I'm guessing that's a feature request :)

Hi, I implemented this feature for my tools.
So, I think I can contribute to the official branch like this.
https://github.com/matyalatte/DirectXTex/commit/d085c1d1dca649abd4e39368cb7d15c564c6004c
Can I send PR after adding commands for other layouts?
Or is anyone already working on it?

Thanks for the comments.
I sent the PR (https://github.com/microsoft/DirectXTex/pull/290).


Syntax error in bootloader.asm on Mac OS X

➜  src git:(master) nasm -v
NASM version 0.98.40 (Apple Computer, Inc. build 11) compiled on Feb 10 2016
➜  src git:(master) nasm -f bin -o bootloader boot/bootloader.asm -g
boot/bootloader.asm:131: error: expression syntax error
boot/bootloader.asm:133: error: expression syntax error
boot/bootloader.asm:135: error: expression syntax error
boot/bootloader.asm:163: error: expression syntax error
on OS X 10.11.3
Tried some quick fixes but failed.

I don't know what that's all about but according to NASM's website the latest version is 2.12.02. I would try using the latest version.

Did you run install.sh and still end up with an old version of NASM? When i run install.sh on OS X, NASM version 2.12.01 is installed.

Hi Guys
The problem was that my path do not included brew first.
The fix is
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc

Ty

I have the same issue as you @d-weber on a pretty fresh install of OSX. We will see if we can solve this in a general way.

@mnordsletten yup, i think the brew default config is the issue here


Log to syslog

Helpful for remote logging and on Linux in general

https://docs.python.org/3/library/logging.handlers.html#sysloghandler


Error on text color

Google Chrome v.65.0.3325.181:
Mac OS High Sierra v.10.13.4:
**https://medium.com/me/email-settings/**:

Hi,
I've found another little error on label text-color on the email-settings pages:

I think the green button should have a white text-color

Hi @lucazambon!
I've updated the style, but I haven't released it yet; maybe later tonight or tomorrow when I get more time.
I didn't set the text color to white since the contrast wasn't good, so I changed it to match the main accent colors

Hi @mottie,
Okok, mine was just a suggest. It’s pretty like this too.
Nice job dude.


Remove start page and redirect / to GOV.UK start page

This matches the guidance in the Service Manual that every service should start at GOV.UK: https://www.gov.uk/service-manual/technology/get-a-domain-name#ensure-users-start-their-journey-on-govuk

@bilbof I didn't realise we had a feature test for the start page. I completely removed it, I hope that's right. If you want me to test the redirect works then I can do, but my Cucumber is a bit rusty.

No worries, I added it mainly as a demo for future e2e tests.

Does the translations file also need updating?

Good catch, thanks. That file shouldn't be any more complicated that it needs to be!


Is there any best practices for using next-video play remote videos without any optimizations?

For my scenario, I need to play some videos on our app, which must be stored in our cloud services. So I have to use next-video with a pure remote video string link like below:
import BackgroundVideo from "next-video/background-video";
import Player from "next-video/player";
export default function VideoCard() {
  return (
    <>
      <BackgroundVideo
        disableTracking
        src="https://opensora.tos-cn-beijing.volces.com/frontend_static_resources/%E7%A4%BA%E4%BE%8B%E7%94%A8%E8%A7%86%E9%A2%91/gallery/sample_0000.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Content-Sha256=UNSIGNED-PAYLOAD&X-Tos-Credential=AKTP0UlTRFG0oXEC5o1EPKzDNWwYOJ7Tpzwl7uF86gid6o%2F20240717%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20240717T104735Z&X-Tos-Expires=3600&X-Tos-SignedHeaders=host&X-Tos-Security-Token=nCgdqdEROend3.ChsKBzNzX056d3cSEG_n3bvyyEuFozx9CFODiEIQusLetAYYyt7etAYgo_O66QcoAjCZssgOOgZ5dWFueWlCA3Rvc1IGeXVhbnlpWAJgAQ.a-2aaNPpFiReCJd576w2orVd-z7ZprkRXFP8Vf2v2HdrRXGR6rmZ6TXRS6pop572dSOcf4raZ1FD60NS_2X2HA&X-Tos-Signature=15bda655c08f87691ff9380c068ad403911ad987932d11b8d014e40fa24b5ce7"
      >

next-video

          A React component for adding video to your Next.js application. It
          extends both the video element and your Next app with features for
          automatic video optimization.

      </BackgroundVideo>
      <Player src="https://opensora.tos-cn-beijing.volces.com/frontend_static_resources/%E7%A4%BA%E4%BE%8B%E7%94%A8%E8%A7%86%E9%A2%91/gallery/sample_0000.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Content-Sha256=UNSIGNED-PAYLOAD&X-Tos-Credential=AKTP0UlTRFG0oXEC5o1EPKzDNWwYOJ7Tpzwl7uF86gid6o%2F20240717%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20240717T104735Z&X-Tos-Expires=3600&X-Tos-SignedHeaders=host&X-Tos-Security-Token=nCgdqdEROend3.ChsKBzNzX056d3cSEG_n3bvyyEuFozx9CFODiEIQusLetAYYyt7etAYgo_O66QcoAjCZssgOOgZ5dWFueWlCA3Rvc1IGeXVhbnlpWAJgAQ.a-2aaNPpFiReCJd576w2orVd-z7ZprkRXFP8Vf2v2HdrRXGR6rmZ6TXRS6pop572dSOcf4raZ1FD60NS_2X2HA&X-Tos-Signature=15bda655c08f87691ff9380c068ad403911ad987932d11b8d014e40fa24b5ce7"></Player>
    </>
  );
}

And the pretty weird thing is, for the BackgroundVideo, it will request MUX services in the loop (api/video, and when I try to add it as what document says, it will redirect to the MUX services), but I think it should request no more other remote services by document says it can be used without any optimization. And for using the Player only, for this video I will got an issue for loading it, but BackgroundVideo can load it only with the request issues.
I might have missed something, or maybe just next-video is not designed to be used this way. Waiting for help and this is a pretty important function for our app.

you're right to use the next-video/player or next-video/background-player
https://github.com/muxinc/next-video#player-only-demo
it's possible the player doesn't recognize the video type because the URL doesn't end in .mp4.
could you try adding &ext=.mp4 to the end of the URL?

you're right to use the next-video/player or next-video/background-player https://github.com/muxinc/next-video#player-only-demo
it's possible the player doesn't recognize the video type because the URL doesn't end in .mp4. could you try adding &ext=.mp4 to the end of the URL?

I think this might be related to the sign that ended in the link, which is needed for the cloud service; thanks for the reply, and I will close this issue for now. But for the BackgroundVideo, it will request to MUX and trying to upload it or something, I haven't figure out why, might be related to the config work.


BUG: Running example code results in AttributeError

Running the example code below from the PyPI page
import chemdraw

mol = "O=C(C)Oc1ccccc1C(=O)O"
drawer = chemdraw.Drawer(mol, title=mol)
fig = drawer.draw()
fig.show()

results in the following stack trace:
Traceback (most recent call last):
  File "/.../testing/chemdraw-test/example.py", line 6, in <module>
    fig = drawer.draw()
  File "/.../testing/chemdraw-test/.venv/lib/python3.10/site-packages/chemdraw/drawers/drawer.py", line 112, in draw
    fig = self._draw(fig)
  File "/.../testing/chemdraw-test/.venv/lib/python3.10/site-packages/chemdraw/drawers/drawer.py", line 121, in _draw
    self.config.layout.get_scaling(self.molecule, self.title)
  File "/.../testing/chemdraw-test/.venv/lib/python3.10/site-packages/chemdraw/drawers/layout.py", line 64, in get_scaling
    if self.fixed_domain and self.range_y.ptp() != self.range_x.ptp():
AttributeError: `ptp` was removed from the ndarray class in NumPy 2.0. Use np.ptp(arr, ...) instead.

To fix this, either the new ptp API should be used, or the version number for numpy should be pinned to be >=1.23.1,<=2.0.

Thanks for letting me know! I pushed an update with support for numpy 2.0 syntax.


Add validation e2e tests for endPort

Ensure that "endPort" is not set smaller than "port" field and "port" field must be set when "endPort" field is set.

/test-e2e

Codecov Report

Merging #1699 (5401a06) into master (9d3d10b) will decrease coverage by 7.01%.
The diff coverage is 50.71%.

@@            Coverage Diff             @@
##           master    #1699      +/-   ##
==========================================
- Coverage   63.31%   56.30%   -7.02%
==========================================
  Files         170      184      +14
  Lines       14250    15781    +1531
==========================================
- Hits         9023     8885     -138
- Misses       4292     5931    +1639
- Partials      935      965      +30

Flag
Coverage Δ

kind-e2e-tests
43.06% <35.51%> (-12.33%)
:arrow_down:

unit-tests
40.41% <35.90%> (-0.87%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/antrea-agent/agent.go
0.00% <0.00%> (ø)

.../agent/apiserver/handlers/networkpolicy/handler.go
58.33% <ø> (ø)

...gent/controller/noderoute/node_route_controller.go
41.28% <0.00%> (-5.19%)
:arrow_down:

pkg/agent/stats/collector.go
92.04% <ø> (-5.69%)
:arrow_down:

pkg/agent/types/networkpolicy.go
37.50% <ø> (-45.84%)
:arrow_down:

pkg/antctl/antctl.go
100.00% <ø> (ø)

pkg/antctl/transform/appliedtogroup/transform.go
0.00% <0.00%> (ø)

pkg/antctl/transform/controllerinfo/transform.go
0.00% <ø> (ø)

pkg/antctl/transform/networkpolicy/transform.go
0.00% <0.00%> (ø)

pkg/antctl/transform/version/transform.go
0.00% <ø> (ø)

... and 125 more

/test-e2e

skipping other tests as e2e tests have passed and this is an e2e change only
/skip-all

skipping other tests as e2e tests have passed and this is an e2e change only
/skip-all


git remote command error code 128 ... help me

git status --porcelain --untracked-files=all
git fetch --prune
fatal: could not read Username for 'https://gitlab.com': Device not configured
'git fetch --prune' exited with error code 128

.git/config setting
[user]
name = foo
email =<EMAIL_ADDRESS>How do I fix the problem.. help me..

Sounds like a problem related to gitlab and not git-control. I am not a gitlab user so I am unaware about the problem. A SSH setupt could be better though (if you aren't using it?)

I got that error as well because, git control doesn't give you the opportunity to enter your username and password each time you push, you have to be using ssh or have your username and password for git cached so that it doesn't prompt you each time. If your using ubuntu or arch-linux just follow the advice here
http://stackoverflow.com/questions/13385690/how-to-use-git-with-gnome-keyring-integration/13390889
and then git push once from the terminal, after that your credentials are saved in your keyring and you should be able to use git control inside atom :-)

Same issue on Mac OS X 10.11.4 El Capitan. Could git-control offer a way to enter and securely store git credentials rather than leaving it in plain text in .git/config?


NODE-3008: Remove existing session from cloned cursors.

Port up to the 4.0 branch with added tests.

Just the same note about the test formatting but otherwise LGTM 🚀

Updated without metadata.