Use vLLM to load LLMs

This PR upgrades the LLM pipeline to use vLLM to load and perform inference on models using optimised batching and other features that come with vLLM.
Dependencies have been upgraded to be compatible with vLLM 0.6.3, these new dependency versions are untested with other pipelines (though could benefit them as well)

Both fp16 and 8 bit quantization is still supported, but could be further optimized by detecting GPUs on the machine and adjusting quantization methods to be used accordingly.

Docker file has been updated to use newer pip and torch

Docker file has been udpated to respect CUDA_PCI_BUS_ORDER , ensuring the same develop experience as go-livepeer when specifying GPU id's found in nvidia-smi

Adds Top_P and Top_K parameters to the LLM route

Change API to take messages in common LLM format instead of prompt and history fields

Hey Nico!  I did a first round of review and have some questions/comments:

There are a lot of requirements changes in this. I have not reviewed all of them and don't believe we should be changing all requirments to pin to vllm dependencies. Diffusers in particular needs to stay at 0.31.0 to maintain support in other pipelines.

I think upgrading torch to 2.4 or 2.5 should be fine from other testing I have done.

is there a docker file change I am missing for GPU ids?
Thoughts on using vllm 0.6.4 or 0.6.5?
Does streaming work for you? I get this response and the container logs are after the response.

curl -X POST "http://localhost:9000/llm" -H "Content-Type: application/json" -H "Connection: keep-alive" -H "Keep-Alive: timeout=5, max=100" -d @llm.json
data: {"choices": [{"delta": {"content": "<|start_header_id|>"}, "finish_reason": null}], "created":<PHONE_NUMBER>, "model": "meta-llama/Meta-Llama-3.1-8B-Instruct", "id": "chatcmpl-1734653742"}

data: [DONE]

2024-12-20 00:15:42,934 INFO:     <IP_ADDRESS>:41394 - "POST /llm HTTP/1.1" 200 OK
runner-llm-1  | INFO 12-20 00:15:42 async_llm_engine.py:209] Added request chatcmpl-1734653742.
runner-llm-1  | INFO 12-20 00:15:42 metrics.py:345] Avg prompt throughput: 0.7 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.1%, CPU KV cache usage: 0.0%.
runner-llm-1  | INFO 12-20 00:15:42 metrics.py:361] Prefix cache hit rate: GPU: 88.89%, CPU: 0.00%
runner-llm-1  | INFO 12-20 00:15:42 async_llm_engine.py:221] Aborted request chatcmpl-1734653742.

the model num_heads needs to be divisible by the tensor parallel size. Can we check for this or prefer to let it fail and crash loop? Example below in testing Qwen 2.5 32B

ValueError: Total number of attention heads (40) must be divisible by tensor parallel size (3).

Thoughts on allowing setting pipeline parallel size?

The runner dies with cuda errors sometimes...if I allocated 4x 3090 tis it crash loops. With 2 allocated it loaded Llama 8b fine.  This is likely an edge case since why would map more than 1 GPU if the model does not take more than 1. Logs from successful load with 2 GPUs allocated for reference.

runner-llm-1  | 2024-12-20 00:49:31,004 - app.pipelines.llm - INFO - Initializing LLM pipeline
runner-llm-1  | 2024-12-20 00:49:31,004 - app.pipelines.llm - INFO - Available GPU memory: {0: '23GiB', 1: '23GiB'}
runner-llm-1  | 2024-12-20 00:49:31,004 - app.pipelines.llm - INFO - Tensor parallel size: 2
runner-llm-1  | 2024-12-20 00:49:31,011 - app.pipelines.llm - INFO - Using BFloat16 precision
runner-llm-1  | INFO 12-20 00:49:35 config.py:887] Defaulting to use mp for distributed inference
runner-llm-1  | INFO 12-20 00:49:35 llm_engine.py:237] Initializing an LLM engine (vdev) with config: model='/models/models--meta-llama--Meta-Llama-3.1-8B-Instruct/snapshots/0e9e39f249a16976918f6564b8830bc894c89659', speculative_config=None, tokenizer='/models/models--meta-llama--Meta-Llama-3.1-8B-Instruct/snapshots/0e9e39f249a16976918f6564b8830bc894c89659', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, override_neuron_config=None, rope_scaling=None, rope_theta=None, tokenizer_revision=None, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=8192, download_dir=None, load_format=LoadFormat.AUTO, tensor_parallel_size=2, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, quantization_param_path=None, device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='outlines'), observability_config=ObservabilityConfig(otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=0, served_model_name=/models/models--meta-llama--Meta-Llama-3.1-8B-Instruct/snapshots/0e9e39f249a16976918f6564b8830bc894c89659, use_v2_block_manager=True, num_scheduler_steps=1, chunked_prefill_enabled=False multi_step_stream_outputs=True, enable_prefix_caching=True, use_async_output_proc=True, use_cached_outputs=False, mm_processor_kwargs=None)
runner-llm-1  | WARNING 12-20 00:49:35 multiproc_gpu_executor.py:53] Reducing Torch parallelism from 16 threads to 1 to avoid unnecessary CPU contention. Set OMP_NUM_THREADS in the external environment to tune this value as needed.
runner-llm-1  | INFO 12-20 00:49:35 custom_cache_manager.py:17] Setting Triton cache manager to: vllm.triton_utils.custom_cache_manager:CustomCacheManager
runner-llm-1  | /root/.pyenv/versions/3.11.10/lib/python3.11/site-packages/vllm/connections.py:8: RuntimeWarning: Failed to read commit hash:
runner-llm-1  | No module named 'vllm._version'
runner-llm-1  |   from vllm.version import __version__ as VLLM_VERSION
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:39 multiproc_worker_utils.py:216] Worker ready; awaiting tasks
runner-llm-1  | INFO 12-20 00:49:39 utils.py:1008] Found nccl from library libnccl.so.2
runner-llm-1  | INFO 12-20 00:49:39 pynccl.py:63] vLLM is using nccl==2.20.5
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:39 utils.py:1008] Found nccl from library libnccl.so.2
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:39 pynccl.py:63] vLLM is using nccl==2.20.5
runner-llm-1  | INFO 12-20 00:49:39 custom_all_reduce_utils.py:204] generating GPU P2P access cache in /root/.cache/vllm/gpu_p2p_access_cache_for_0,1.json
runner-llm-1  | INFO 12-20 00:49:48 custom_all_reduce_utils.py:242] reading GPU P2P access cache from /root/.cache/vllm/gpu_p2p_access_cache_for_0,1.json
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:48 custom_all_reduce_utils.py:242] reading GPU P2P access cache from /root/.cache/vllm/gpu_p2p_access_cache_for_0,1.json
runner-llm-1  | INFO 12-20 00:49:48 shm_broadcast.py:241] vLLM message queue communication handle: Handle(connect_ip='<IP_ADDRESS>', local_reader_ranks=[1], buffer=<vllm.distributed.device_communicators.shm_broadcast.ShmRingBuffer object at 0x729547271d90>, local_subscribe_port=37659, remote_subscribe_port=None)
runner-llm-1  | INFO 12-20 00:49:48 model_runner.py:1060] Starting to load model /models/models--meta-llama--Meta-Llama-3.1-8B-Instruct/snapshots/0e9e39f249a16976918f6564b8830bc894c89659...
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:48 model_runner.py:1060] Starting to load model /models/models--meta-llama--Meta-Llama-3.1-8B-Instruct/snapshots/0e9e39f249a16976918f6564b8830bc894c89659...
Loading safetensors checkpoint shards:   0% Completed | 0/4 [00:00<?, ?it/s]
Loading safetensors checkpoint shards:  25% Completed | 1/4 [00:00<00:02,  1.32it/s]
Loading safetensors checkpoint shards:  50% Completed | 2/4 [00:00<00:00,  2.26it/s]
Loading safetensors checkpoint shards:  75% Completed | 3/4 [00:01<00:00,  1.76it/s]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:02<00:00,  1.58it/s]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:02<00:00,  1.64it/s]
runner-llm-1  |
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:51 model_runner.py:1071] Loading model weights took 7.5122 GB
runner-llm-1  | INFO 12-20 00:49:51 model_runner.py:1071] Loading model weights took 7.5122 GB
runner-llm-1  | INFO 12-20 00:49:52 distributed_gpu_executor.py:57] # GPU blocks: 11472, # CPU blocks: 4096
runner-llm-1  | INFO 12-20 00:49:52 distributed_gpu_executor.py:61] Maximum concurrency for 8192 tokens per request: 22.41x
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:55 model_runner.py:1402] Capturing the model for CUDA graphs. This may lead to unexpected consequences if the model is not static. To run the model in eager mode, set 'enforce_eager=True' or use '--enforce-eager' in the CLI.
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:49:55 model_runner.py:1406] CUDA graphs can take additional 1~3 GiB memory per GPU. If you are running out of memory, consider decreasing `gpu_memory_utilization` or enforcing eager mode. You can also reduce the `max_num_seqs` as needed to decrease memory usage.
runner-llm-1  | INFO 12-20 00:49:55 model_runner.py:1402] Capturing the model for CUDA graphs. This may lead to unexpected consequences if the model is not static. To run the model in eager mode, set 'enforce_eager=True' or use '--enforce-eager' in the CLI.
runner-llm-1  | INFO 12-20 00:49:55 model_runner.py:1406] CUDA graphs can take additional 1~3 GiB memory per GPU. If you are running out of memory, consider decreasing `gpu_memory_utilization` or enforcing eager mode. You can also reduce the `max_num_seqs` as needed to decrease memory usage.
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:50:03 custom_all_reduce.py:233] Registering 1235 cuda graph addresses
runner-llm-1  | INFO 12-20 00:50:03 custom_all_reduce.py:233] Registering 1235 cuda graph addresses
runner-llm-1  | (VllmWorkerProcess pid=221) INFO 12-20 00:50:03 model_runner.py:1530] Graph capturing finished in 8 secs.
runner-llm-1  | INFO 12-20 00:50:03 model_runner.py:1530] Graph capturing finished in 8 secs.
runner-llm-1  | 2024-12-20 00:50:03,843 - app.pipelines.llm - INFO - Model loaded: meta-llama/Meta-Llama-3.1-8B-Instruct
runner-llm-1  | 2024-12-20 00:50:03,843 - app.pipelines.llm - INFO - Using GPU memory utilization: 0.85
runner-llm-1  | 2024-12-20 00:50:03,855 - app.utils.hardware - INFO - CUDA devices available:
runner-llm-1  | 2024-12-20 00:50:03,855 - app.utils.hardware - INFO - Device 0: id='GPU-8dc1a60e-43d1-33f1-dcc9-47853e8af470' name='NVIDIA GeForce RTX 3090 Ti' memory_total=25757220864 memory_free=4343595008 major=8 minor=6
runner-llm-1  | 2024-12-20 00:50:03,855 - app.utils.hardware - INFO - Device 1: id='GPU-f5a4c9da-963f-bcec-17f2-401f36506fb1' name='NVIDIA GeForce RTX 3090 Ti' memory_total=25757220864 memory_free=4377149440 major=8 minor=6
runner-llm-1  | 2024-12-20 00:50:03,855 - app.main - INFO - Started up with pipeline LLMPipeline(model_id=meta-llama/Meta-Llama-3.1-8B-Instruct)
runner-llm-1  | 2024-12-20 00:50:03,855 INFO:     Application startup complete.
runner-llm-1  | 2024-12-20 00:50:03,855 INFO:     Uvicorn running on http://<IP_ADDRESS>:9000 (Press CTRL+C to quit)

@ad-astra-video thanks for the swift review ⚡:

There are a lot of requirements changes in this. I have not reviewed all of them and don't believe we should be changing all requirments to pin to vllm dependencies. Diffusers in particular needs to stay at 0.31.0 to maintain support in other pipelines.

@kyriediculous, would it be feasible to place the LLM pipeline in its own Docker container? We’re gradually migrating other pipelines into separate containers now that the orchestrator automatically downloads them (see PR #308 and PR #200).
This setup would give you full control over dependencies and simplify reviews since Brad wouldn’t need to test other pipelines, especially given that E2E tests similar to those in realtime haven’t been implemented yet.
Additionally, we can merge PR #293, which allows pipeline container overrides. If you have any concerns about using a dedicated container, please let me know so I can better understand.
Looking forward to your thoughts!

PR #308

The only requirement would be creating a separate Dockerfile.llm in the docker/ folder right ?

@ad-astra-video @rickstaa

Fixed streaming
Isolated docker image

Includes all env vars
uses pip-compile to build dependency list

Added pipeline parallelism setting
Update vLLM to 0.6.5 (0.6.3 was the highest version few weeks ago)

@ad-astra-video Do you also have the logs from the crash with 4 GPUs ?

Here they are: lp_vllm_startup.txt
Note it starts up fine using 2 for pipeline parallel size (lp_vllm_2_pipelines.txt).
I don't think we need to hold this up for this. We can run multiple runner containers which I think would be better anyways.  Only other nuance for this server is each set of 3090 tis are connect with nvlink.
Attaching logs from the vllm openai compatible server starting up for comparison.
vllm_startup.txt

This looks good with the couple small changes suggested above.
The open api spec action is failing, can you run the api spec gen again? Will merge after that is passing.

@ad-astra-video Do you also have the logs from the crash with 4 GPUs ?

EDIT: figured it out...the docker containers needs --ipc=host or a --shm-size.  Not entirely sure what shm-size should be but there is an example of 10.24g in vllm repo.
https://docs.vllm.ai/en/latest/serving/deploying_with_docker.html
Original response below for reference:

Here they are: lp_vllm_startup.txt

Note it starts up fine using 2 for pipeline parallel size (lp_vllm_2_pipelines.txt).

I don't think we need to hold this up for this. We can run multiple runner containers which I think would be better anyways.  Only other nuance for this server is each set of 3090 tis are connect with nvlink.

Attaching logs from the vllm openai compatible server starting up for comparison.

vllm_startup.txt

Vllm abd pytorch uses shared memory to efficiently share tensors between its dataloader workers and its main process.
It defaults to 64mb but I found vlmm requires more.

Vllm abd pytorch uses shared memory to efficiently share tensors between its dataloader workers and its main process.
It defaults to 64mb but I found vlmm requires more.
I forgot to mention it, maybe i should attach a small readme

I see this as a documentation thing mostly so a note in the docs should cover this.
Managed containers use default values for IpcMode: private and ShmSize: 67108864.  If target is LLM model fits on 1 GPU then documentation can indicate to run the container externally if more than 1 GPU.

@ad-astra-video, to help move this forward, could you provide a concise list of the remaining changes you’re waiting on before this can be merged? Based on the discussion, here’s what I’ve noted so far:

Requirements Updates

There are a lot of requirements changes in this. I have not reviewed all of them and don't believe we should be changing all requirements to pin to vllm dependencies. Diffusers, in particular, needs to stay at 0.31.0 to maintain support in other pipelines. I think upgrading torch to 2.4 or 2.5 should be fine from other testing I have done.
This concern was mitigated by putting LLMS in a sperate container.

vllm Version

Thoughts on using vllm 0.6.4 or 0.6.5?
This was done.

Pipeline Parallel Size

Thoughts on allowing setting pipeline parallel size?
This appears to have been completed.

CUDA Errors on Multi-GPU Setup

The runner dies with CUDA errors sometimes...if I allocated 4× 3090 Ti GPUs, it crash loops. With 2 allocated, it loaded Llama 8B fine. This is likely an edge case since why map more than 1 GPU if the model does not take more than 1. Logs from a successful load with 2 GPUs allocated for reference.
This looks like resolved according to this comment.

Streaming Issues

Does streaming work for you? I get this response, and the container logs are below the response.
Is there a Dockerfile change I am missing for GPU IDs?
Have these been addressed? @ad-astra-video, could you confirm?

num_heads Divisibility by Tensor Parallel Size

The model’s num_heads needs to be divisible by the tensor parallel size. Can we add a check for this, or should we prefer to let it fail and crash loop? (Example: Testing Qwen 2.5 32B.)
Was this discussed or implemented?

Documentation Update

I see this as a documentation task mostly, so a note in the docs should cover this.
Was this documented as suggested?

Let me know if I missed anything or if there are additional updates to track!

@rickstaa @kyriediculous  looks like i messed up posting the suggested changes.
The ShmSize and IpcHost only come into play if running pipeline parallel or tensor size > 2 I believe. If Nico is comfortable with this we can move forward with it as a documentation note since these variables can be adjusted using external runners.
Suggested changes:

[ ] add engine_args.load_format = "bitsandbytes" to enable 8 bit support
[ ] remove SFAST from Docker file build to speed up build and limit dependency conflicts down the road since SFAST is in maintenance mode

I regenerated the bindings but there's no change to commit.

@kyriediculous I am approving and merging this and will re-run the open api gen separately to fix.


Use case for additional data

array $data = []
May I know whats the use case for additional data and what it use to store?

@keatwei thank you for the question.
This is where you can read about the usage of additional data
And use case would be:
If I want to store some data with promo code. And use it when redeemed. For Example, If we have 80% discount on Black Friday, and we want to tell the user that he used code that discounted 80% and it's because of Black Friday. So we can store data: reason => "Black Friday", and when redeemed we can access this data


Revert "[ObjC] Remove grpc core podspec module map"

Reverts grpc/grpc#34361
Not sure why CI didn't capture it and why my previous test works, but looks like it broke at least src/objective-c/examples/SwiftSample build.
Will see how CI goes in this PR.

@sampajano If breakages here merit rollbacks, then it's probably worth looking into why this test is not exercised on PRs.

@sampajano If breakages here merit rollbacks, then it's probably worth looking into why this test is not exercised on PRs.

@drfloob Agreed!
@HannahShiSFB Is this something you would be able to help check? Thanks!

@sampajano If breakages here merit rollbacks, then it's probably worth looking into why this test is not exercised on PRs.

@drfloob Agreed!
@HannahShiSFB Is this something you would be able to help check? Thanks!

I can't see the inside of the CI. Could Jan @jtattermusch maybe?


flashback compilation failed, step 2 start flashback admin server

Encounter issue at step 2 start flashback admin server, compile and build failed.
Error Msg:
flashback/flashback-core-impl/src/main/java/com/linkedin/flashback/matchrules/CompositeMatchRule.java:44: error: illegal start of expression
flashback/flashback-core-impl/src/main/java/com/linkedin/flashback/matchrules/CompositeMatchRule.java:44: error: illegal start of expression
_matchRules.stream().forEach((rule) -> {
and so forth.

Which JVM version are you using? The version we are using is JAVA8.

Great, all right, it seems that flashback supports Java 8+ only.
As many of us might not know the environment prerequisite, I recommend to add the information in the README file. For example, download JDK8+, export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home, then start flashback admin server.
For better leverage of the project, we might have more questions on it. One idea from me, can we add something like FQA for the frequent questions. Actually, I do have more questions on it as well.

Start the proxy with record mode or playback mode, we have to indicate the sceneName; for each scene, I need to restart and record the scene. If I have tons of scenes, for each scene, do we have to  restart the proxy for record and playback? If yes, it can be improved to some extent. Ideally, we can start the proxy once and record/playback the scenes as many as we want.
It looks like once we have the scene for the certain name, if we record the scene again, it cannot be getting overwritten. Can we make it optional to overwrite the current scene?

Just some ideas from my side, hope it helps. Or I might contribute some with PRs for the improvements.
Close the issue for now. Thanks a lot for help.

Yes, you can record/replay as many scenes as you want without restart the proxy. You can invoke changeScene method in admin or setScene in FlashbackRunner to switch to different scenes.
Depends on the matchRule you set. Even in record mode, it will first run match rule to check if this request is already existed. If so, it will overwritten. Otherwise add a new one.
Feel free to add more information in readme. That would be very helpful.


Issue 54

Codecov Report

Merging #56 (9b4dccf) into php (15482b3) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##                php      #56      +/-   ##
============================================
+ Coverage     85.07%   85.10%   +0.03%
  Complexity       94       94
============================================
  Files             9        9
  Lines           422      423       +1
============================================
+ Hits            359      360       +1
  Misses           63       63

Impacted Files
Coverage Δ

app/Confluence.php
97.10% <ø> (ø)

app/Coding/Wiki.php
81.65% <100.00%> (+0.16%)
: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 15482b3...9b4dccf. Read the comment docs.


Investigate missing CSV report in ttnn device perf pipeline

https://github.com/tenstorrent-metal/tt-metal/actions/runs/8274402385/job/22639678294
cc: @eyonland

cc: @TT-billteng @jliangTT

took it out

is this missing for all the tests? or just some tests?


Missing scrollbar

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS:
- Continue version:
- IDE version:
- Model:
- config.json:

Description
Hi! Conversations, especially those involving code blocks typically gets a bit longer. Long enough to put some uncomfortable strain on a scroll wheel. Bringing back a scrollbar should be considered, especially as it doesn't take any horizontal space.
To reproduce
No response
Log output
No response

@sestinj /assign

@robertpiosik As of now this is configurable in config.json's "ui" section. We will definitely look to make it more obvious when we build a full GUI for the config

@sestinj could config.json ship with that setting, even if set to false (which I also think is a bad idea)? I don't see anything about "scrollbar" in my config.json (though I installed the extension a while back) (or here) so I had to spend extra time referring to the docs.


Strange serving errors

After cloning the project,  I tried a local run.
iruby:~/j/dumb$ bundle exec jekyll serve
Configuration file: /home/ubuntu/j/dumb/_config.yml
            Source: /home/ubuntu/j/dumb
       Destination: /home/ubuntu/j/dumb/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 0.803 seconds.
 Auto-regeneration: enabled for '/home/ubuntu/j/dumb'
    Server address: http://<IP_ADDRESS>:4000
  Server running... press ctrl-c to stop.
[2021-01-23 08:34:02] ERROR bad Request-Line `\x16\x03\x01\x02\x00\x01\x00\x01�\x03\x03\x1E�S�� �V\x03\x02J��JM\x1ASY.T���T��,���h� xh��VvR�������\x193��\ra�Ù��/[NE\x14|T\x00$\x13\x01\x13\x03\x13\x02�+�/̨̩�,�0�'.
[2021-01-23 08:34:02] ERROR bad Request-Line `\x16\x03\x01\x02\x00\x01\x00\x01�\x03\x03>k\x7F۰����ӌ��&#a��!z'.
[2021-01-23 08:34:02] ERROR bad Request-Line `\x16\x03\x01\x02\x00\x01\x00\x01�\x03\x03wv�\x01m��\x1A�/te:\x1F��\r�@�\x1E���\x13n�_�?�� �G<=�4�\x15'.

Every request of the browser pointing to the local port is producing at least one error.
This is strange

This is very strange I haven't seen this before. I just cloned and ran the install and server and it works fine on my end. Two questions about your setup.

Did you run bundle install in the project directory before starting the server?
What is your environment & versions

This is very strange I haven't seen this before. I just cloned and ran the install and server and it works fine on my end. Two questions about your setup.

Did you run bundle install in the project directory before starting the server?
What is your environment & versions

Also, I did some research on this. Can you confirm you are accessing the dev server at http and not being forced to https from your browser? See this related issue https://github.com/jekyll/jekyll/issues/6507#issuecomment-341128488

Also, I did some research on this. Can you confirm you are accessing the dev server at http and not being forced to https from your browser? See this related issue https://github.com/jekyll/jekyll/issues/6507#issuecomment-341128488

First of all, iruby is simply the name of the virtual machine. I have organized my tasks in lxd-containers, this one is called iruby.
Second, off cause did I bundle install
Using
firefox --version
Mozilla Firefox 66.0.3

just the standard case with adblocker.  Did'nd find any control to force https.
The address accessed is 'localhost:4000', without https -prefix
Its reproducible and does not appear using other jekyll-implementions z.b. https://jekyllthemes.io/theme/feeling-responsive, which I used previously.
iruby:~/j/dumb$ bundle install
Using public_suffix 4.0.6
Using addressable 2.7.0
Using latex-decode 0.3.2
Using bibtex-ruby 5.1.6
Using bundler 2.0.2
Using namae 1.0.2
Using citeproc 1.0.10
Using csl 1.5.2
Using citeproc-ruby 1.1.13
Using colorator 1.1.0
Using concurrent-ruby 1.1.8
Using csl-styles <IP_ADDRESS>
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.14.2
Using forwardable-extended 2.6.0
Using i18n 1.8.7
Using sassc 2.4.0
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using listen 3.4.1
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.4.0
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 2.0.0
Using jekyll 4.2.0
Using jekyll-environment-variables 1.0.1
Using jekyll-feed 0.15.1
Using jekyll-scholar 6.8.0
Bundle complete! 4 Gemfile dependencies, 38 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
(base) iruby:~/j/dumb$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
(base) iruby:~/j/dumb$ bundle exec jekyll serve --trace
Configuration file: /home/ubuntu/j/dumb/_config.yml
            Source: /home/ubuntu/j/dumb
       Destination: /home/ubuntu/j/dumb/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 0.961 seconds.
 Auto-regeneration: enabled for '/home/ubuntu/j/dumb'
    Server address: http://<IP_ADDRESS>:4000
  Server running... press ctrl-c to stop.
[2021-01-24 03:43:09] ERROR bad Request-Line `\x16\x03\x01\x02\x00\x01\x00\x01�\x03\x03!�C��;��",({�lk\f~W�\e\x17�Y�]��\x0F~CV6 {\bK'.
[2021-01-24 03:43:09] ERROR bad URI `\x18��+���tR����\x7Fb��\x16t�P�ɨ�_Z\x18\x0Eį�\x00$\x13\x01\x13\x03\x13\x02�+�/̨̩�,�0�'.

First of all, iruby is simply the name of the virtual machine. I have organized my tasks in lxd-containers, this one is called iruby.
Second, off cause did I bundle install
Using
firefox --version
Mozilla Firefox 66.0.3

just the standard case with adblocker.  Did'nd find any control to force https.
The address accessed is 'localhost:4000', without https -prefix
Its reproducible and does not appear using other jekyll-implementions z.b. https://jekyllthemes.io/theme/feeling-responsive, which I used previously.
iruby:~/j/dumb$ bundle install
Using public_suffix 4.0.6
Using addressable 2.7.0
Using latex-decode 0.3.2
Using bibtex-ruby 5.1.6
Using bundler 2.0.2
Using namae 1.0.2
Using citeproc 1.0.10
Using csl 1.5.2
Using citeproc-ruby 1.1.13
Using colorator 1.1.0
Using concurrent-ruby 1.1.8
Using csl-styles <IP_ADDRESS>
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.14.2
Using forwardable-extended 2.6.0
Using i18n 1.8.7
Using sassc 2.4.0
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using listen 3.4.1
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.4.0
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 2.0.0
Using jekyll 4.2.0
Using jekyll-environment-variables 1.0.1
Using jekyll-feed 0.15.1
Using jekyll-scholar 6.8.0
Bundle complete! 4 Gemfile dependencies, 38 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
(base) iruby:~/j/dumb$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
(base) iruby:~/j/dumb$ bundle exec jekyll serve --trace
Configuration file: /home/ubuntu/j/dumb/_config.yml
            Source: /home/ubuntu/j/dumb
       Destination: /home/ubuntu/j/dumb/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 0.961 seconds.
 Auto-regeneration: enabled for '/home/ubuntu/j/dumb'
    Server address: http://<IP_ADDRESS>:4000
  Server running... press ctrl-c to stop.
[2021-01-24 03:43:09] ERROR bad Request-Line `\x16\x03\x01\x02\x00\x01\x00\x01�\x03\x03!�C��;��",({�lk\f~W�\e\x17�Y�]��\x0F~CV6 {\bK'.
[2021-01-24 03:43:09] ERROR bad URI `\x18��+���tR����\x7Fb��\x16t�P�ɨ�_Z\x18\x0Eį�\x00$\x13\x01\x13\x03\x13\x02�+�/̨̩�,�0�'.

I haven't personally tested this with linux containers but not sure what exactly in this theme would cause an issue when running the dev server through a container rather then directly on the host terminal. I'll do some testing with lxd-containers and get back to you.
I did notice your Firefox version is severely out of date, I would try to launch the server on an up-to date version of firefox as well as other browsers. I've tested on firefox 84.0.0 + and Chrome 87.0 +. Additionally you mention adblockers, try disabling them and see what the result is.

I haven't personally tested this with linux containers but not sure what exactly in this theme would cause an issue when running the dev server through a container rather then directly on the host terminal. I'll do some testing with lxd-containers and get back to you.
I did notice your Firefox version is severely out of date, I would try to launch the server on an up-to date version of firefox as well as other browsers. I've tested on firefox 84.0.0 + and Chrome 87.0 +. Additionally you mention adblockers, try disabling them and see what the result is.

I have organized my tasks in lxd-containers

What is the lxd-container environment that is being used ? I will need this to replicate the issue as running the dev server through a host terminal does not cause trigger the error

I have organized my tasks in lxd-containers

What is the lxd-container environment that is being used ? I will need this to replicate the issue as running the dev server through a host terminal does not cause trigger the error


Update stat doc to mention stat-actions

stat-actions was missing in the table, but used in an example below

Thank you!


Experimental branch/PR to harmonize data labels

Address and maybe solve #17

this package may be super useful retroharmonize

It looks like retroharmonize can be a very robust/full feature solution to exactly what we want. The only downsides right now are:

I can't quite figure out how to properly extract the metadata from .dta files, but I think this will be possible with tinkering and maybe asking their repo.
adding this to the GLD/I2D2 workflow would mean making the project multilingual, but I think if this works there's a strong argument to make in favor of this because you can essentially have the two workflows entirely distinct. The only mono-lingual solution would be to use iecodebook (and that really isn't monolingual, and there are reproducibility arguments to be had for the R/Stata workflow also). Anyway, worth discussing.

Somewhat annoyingly, the "simple" dplyr / openxlsx workflow isn't really that simple because for it relies on an output xlsx file from iecodebookthat appears to have very odd formatting for openxlsx and the interaction between openxlsx and the product of iecodebook produces empty cells with NA, which sort of destroys the workflow. This doesn't totally discount this option it just makes it less viable.
On the other hand, the retroharmonize option has become slightly more attractive because, basically, I figured out how to use it properly. You get this really nice metadata tibble and from there the package has all these function that allow you to harmonize the whole survey. The (sub)question for us within the retroharmonize path is:

do we go "all in" and just harmonize/apppend the whole survey, with variable names, variable labels, and value labels in R and create an exported .dta file that we work from in stata? Or,
do we do "part way" and just use the metadata file with dplyr and take out the value labels that we need, then work to iecodebook. But then we're stuck with the exporting to xlsx problem.

update: maybe no support for the haven_labeled data type. This could be a deal-breaker so consider either finding a way to get out of this data type or submit an issue

include this file to have the draft .rmd files hanging around because they're useful.


Code Janitor task: Replace use of deprecated Class.newInstance()

This is a no-jira task, just some cleaning in activemq-unit-tests to minimize deprecated warnings when building.

If you need to open five "no jira" PRs for cleaning up unit tests, then you probably need a JIRA for cleaning up unit tests.

If you need to open five "no jira" PRs for cleaning up unit tests, then you probably need a JIRA for cleaning up unit tests.

Fair enough. At first it was going to be one PR, but I split it up to keep changes related, hence 5 PRs. I will create a ticket.


Update to Kotlin 1.6.0.

Update to Kotlin 1.6.0 + update a few other dependencies.

So far I'm having the following issues:

On host13:  Exception in thread "main" java.lang.IllegalStateException: Unsupported Xcode version 12.4, minimal supported version is 12.5.
Variant selection seems to be broken for compiler tests. Unsure why this is suddenly a problem:

* What went wrong:
Could not determine the dependencies of task ':plugin-compiler:test'.
> Could not resolve all task dependencies for configuration ':plugin-compiler:testRuntimeClasspath'.
   > Could not resolve project :library-base.
     Required by:
         project :plugin-compiler
      > The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, preferably optimized for standard JVMs, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm'. However we cannot choose between the following variants of project :library-base:
          - jvmRuntimeElements
          - ktlint
        All of them match the consumer attributes:
          - Variant 'jvmRuntimeElements' capability io.realm.kotlin:library-base:0.8.0-SNAPSHOT declares a runtime of a library, packaged as a jar, preferably optimized for standard JVMs, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm':
              - Unmatched attributes:
                  - Doesn't say anything about how its dependencies are found (required its dependencies declared externally)
                  - Doesn't say anything about its target Java version (required compatibility with Java 8)

Still need to investigate potential XCode issues one one of our builders. But otherwise this should be ready for review.
I had to refactor our Ktlint support as the gradle plugin for controlling apparently had issues when combined with Kotlin 1.6.0. Not 100% sure what it was about, but removing it was relatively easy.

XCode has been upgraded on host_13. So this should now be fully ready for review.


[BUG] New Mend (formerly Whitesource) integration is not working correctly

Describe the bug
We previous installed a WhiteSource Github app for CVEs scan. However, it doesn't work correctly at this time. We just get informed from WhiteSource support that they are using Java 8 for their integration with Github.com. Although we currently began to support Java 11, it would still cause the gradle resolution failed.
To Reproduce
N/A
Expected behavior
A clear and concise description of what you expected to happen.
Plugins
WhiteSource integration with Github.com

What is specifically failing when using Java 8?

WhiteSource integration can't scan all libraries comprehensively currently. @bbarani and I are reaching out to WhiteSource support separately for this same issue. However, we got different respond from them. Barani was told that the issue is because of an unsupported Gradle version v6.6.1 which is necessary for our project build, while I was told it's related to java version. We are keeping contacting them and will also have another backup plan for CVEs scan on repos.

@zelinh One of the recent PRs #1603  had a successful WhiteSource run https://github.com/opensearch-project/OpenSearch/runs/4296697988. Was any fix done for this?

WhiteSource integration check on PR passes if there is no new vulnerability introduced in the PR. However, the general CVEs scan with WhiteSource integration in this repo is not working correctly and not showing the right number of libraries. There might be package manager version issue on WhiteSource side. We are escalating this issue with WhiteSource support and waiting for them to help us.

I just got notice from WhiteSource team after their team review, it turned out to be a part of a bigger problem with how they manage versions of all the scanners in WhiteSource integration. They had an epic ticket for this and will keep us updated with the progress.

Thank you for the update @zelinh ! Since the WhiteSource is failing and not scanning correctly, can we disable it till we have a fix so that PRs like #1594 are not blocked?

I think we can disregard the WhiteSource check for now and keep merging PRs. I don't have access to disable it. Any objections? @bbarani @dblock

@zelinh The Whitesource job on 1.x fails after 375m. Is there any update here?

Unfortunately no, I had a meeting with WhiteSource support last Monday regarding of the issue on scanning our core repo and she said she would escalate this issue but I haven't heard any update from them since then.
I think for now, one option is that we ignore the WhiteSource PR check for core repo now;
or the other option is to change this to be success so the check will always be success no matter it passes or fails. Ref: https://whitesource.atlassian.net/wiki/spaces/WD/pages/697696422/WhiteSource+for+GitHub.com#Check-Run-Settings-(checkRunSettings)

Until this gets fixed, let's disable the whitesource integration.   Otherwise this is blocking our ability to build on 1.3

We will remove the mend scan config now, to resolve this temporarily and would look into re-adding it later on.


Disable mentions for replies and others

This PR disables mentions for replied messages (as well as the everyone tag and roles). Originally, replies have mentions enabled, but this can be disabled by any user; this essentially does that, but for the bot (that way, you're not constantly getting pings for each prompt).
I also changed the ignore file to use Github's, which generally ignores more files which are unnecessary, such as default virtual envs. Other changes have been documented in commit messages.

Denying this, as I actually prefer AutoTSS to mention you when replying to a message, as it helps the message stand out if you're doing something interactive (e.g. if you're adding a device), and other users are sending messages in the channel.

At least cherry-pick the commit with the gitignore, as well as other changes which clean up your code.

Decided to revert the whole reply mentions part; this PR still has some small but critical changes.

The PR looks good to me, but I'm gonna nitpick a few things.

Edits can be made directly in the PR; I enabled the option before making the PR.


Post idea: classical analogy of no cloning theorem in terms of probabilities

Suppose I give you a coin. I used a process that made it be heads with x% probability. I ask you to clone it, producing two coins that independently have x% probability of being heads.
Clearly this is impossible. The quantum case is basically the same idea. Discuss how they are the same, how they differ.

Already done by someone else: https://marozols.wordpress.com/2012/05/21/three-myths-about-quantum-computing-part-2/


🌱  Move Dockerfile.gsutil to inside cron/

Please check if the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] PR title follows the guidelines defined in  https://github.com/ossf/scorecard/blob/main/CONTRIBUTING.md#pr-process

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:

I'm not sure what is going on, I'm stuck in a loop of running "make all/e2e" and then having the tests fail because tree is not clean. Basically, I commit the new go.sum (which is modified when running make all), then when you re-run "make all", go.sum is modified again. Any ideas?


Add segment analytics

Issue

Link: https://github.com/nebraltd/maker-starter-app/issues/127
Summary:

Do not track email or name, use Helium account ID.
Track screens.
Track actions: onboarding, assert location, device transfer, set antenna

How

Add the segment react-native sdk.
Associate the Helium account ID as the segment identity
Automate the screen tracking.
Track onboarding, assert location, transfer device

Screenshots

References

Checklist

[ ] Tests added
[ ] Cleaned up commit history (rebase!)
[ ] Documentation added
[ ] Thought about variable and method names

@Andrewsopoku Could you install iOS native modules by executing the following command?
 npx pod-install

It comes from https://segment.com/docs/connections/sources/catalog/libraries/mobile/react-native/#automatic-screen-tracking

@Andrewsopoku
Change antenna only is our internal usage of assert location and we can't differentiate the change antenna transaction from the assert location.
For every hotspot action, there are 2 events such as 'ASSERT_LOCATION_INITIATED/ASSERT_LOCATION_SUBMITTED`.
If we track the change antenna action using 'UPDATE_ANTENNA_INITIATED/ASSERT_LOCATION_SUBMITTED`, that might frustrate.

I don't see commits for antenna change

@Andrewsopoku Could you install iOS native modules by executing the following command?
 npx pod-install

It comes from https://segment.com/docs/connections/sources/catalog/libraries/mobile/react-native/#automatic-screen-tracking

@posterzh This has been done.

@Andrewsopoku Thank you.

The submitted transaction is tracked in the app link called by the Helium App.

Don't want to block this trying to make it perfect.

Thanks for approving. I can improve a little bit by getting maker name, etc.


better handling of "./" in 'go doc ./foo'

This CL handles somewhat better the ./ case.
Instead of displaying:
 $> go doc ./g
 ./go ./github.com ./golang.org [...]

It will propose the packages beginning with a g in the current
directory, if that current directory is under $GOPATH:
 $> ls
 gopkg mypkg urpkg

 $> go doc ./g
 gopkg gopkg/

Thanks for the submission.


Update dns-for-failover module to get public CNAME (and later) fix(es)

Fixed

Update dns-for-failover module to get public CNAME (and later) fix(es)

I have mixed opinions about using ~> for module versions. On the plus side, it decreases the volume of pull requests. On the down side, it's not immediately obvious what version is in use and how to ensure the latest is used. Thoughts?

I have mixed opinions about using ~> for module versions. On the plus side, it decreases the volume of pull requests. On the down side, it's not immediately obvious what version is in use and how to ensure the latest is used. Thoughts?

I came across a recommendation in a "best practices" document that seems to strike a good balance:

When depending on third-party modules, require specific versions to ensure that updates only happen when convenient to you.
For modules maintained within your organization, specifying version ranges may be appropriate if semantic versioning is used consistently...
(source)

In this case, constraining this code to use at least version 0.5.1 (but allowing for it to use any subsequent bugfix release) of our dns-for-failover module seems appropriate. As far as I understand, on every Terraform Cloud run it will see what the latest available module version is (that meets these constraints) and use that.


if inside a pattern match isn't supported

If within a when is case isn't supported:
match = \input ->
    when input is
        [Foo, Count num, ..] if num > 0 -> FooBar
        _ -> Other

solved


Not Advertising: Cannot read property 'registerAdvertisement' of undefined

I am trying to run the example on ChromeOS using an AOpen Chromebase machine.  I have opened the project using a chrome app IDE called puresolid (it lets me load and run the project locally on the chromebase). The app loads and displays and  all appears to function until I try and click  Update Advertisement then I see the error Not Advertising: Cannot read property 'registerAdvertisement' of undefined but no more information.
How do I solve this problem?

Can you open a console in the app and check if you have chrome.bluetoothlowenergy.registerAdvertisement?

Sorry I'm really new to all this. How do I do that exactly?  Thanks for your help.

That is strange. What version of Chrome OS do you have? You can check by going to about:version on Chrome.

57.0.2987.146 (Official Build) (64-bit)
Does that help?

Just to confirm. You opened the app, then the console (by clicking inspect or following instructions here). Then you tried to type
chrome.bluetoothLowEnergy and it didn't autocomplete?

Yep exactly what I did.
Ran app and it opened a new tab with it running, I pressed CTRL-SHIFT-I and went to the console tab and started typing chrome.blue and it didn't autocomplete :(
I have the flags enabled and there is also a setting 'Enable bluetooth' and that is checked as well.

Are there any APIs under chrome?

Im not exactly sure what you mean but id say 'No' because what is shown all looks like properties or something.
When I type chrome.?  I see
app
csi
loadTimes
runtime
webstore
constructor
hasOwnProperty
isPrototypeOf
propertyIsEnumerable
toLocaleString
toString
valueOf
defineGetter
defineSetter
lookupGetter
lookupSetter
proto
and that's it
Curiously I get the same thing on my windows machine :(
Have I forgot to enable something??

Ah that means you are not running an actual Chrome App just a tab.

OMG! damn I feel silly.  OK so can you point me to some way to get your sample from github and run it as a chrome app?


HA + RTSPtoWeb in docker /stream = 404

Yesterday I updated home assistant, re-created new docker image using
  rtsp-to-web:
    image: ghcr.io/deepch/rtsptoweb:latest
    container_name: rtsp-to-web
    restart: unless-stopped
    network_mode: host

then successfully re-added rtsptoweb integration, but stream did not appear in rtsp-to-web demo page, and home-assistant when accessing cameras shows
Error handling WebRTC offer: RTSPtoWebRTC server failure: Not Found
I did test in without virtualization just clone and exec ..and its working
weblogs
startup:
rtsp-to-web                | [GIN-debug] Listening and serving HTTP on :8083
rtsp-to-web                | [GIN] 2022/02/20 - 18:14:56 | 200 |     2.78774ms | <IP_ADDRESS> | GET      "/"

adding integration in HA:
rtsp-to-web                | [GIN-debug] redirecting request 301: /static/ --> /static/
rtsp-to-web                | [GIN] 2022/02/20 - 18:15:52 | 200 |      329.65µs |     <IP_ADDRESS> | GET      "/static/"
rtsp-to-web                | [GIN] 2022/02/20 - 18:15:52 | 401 |       10.35µs |     <IP_ADDRESS> | GET      "/streams"
rtsp-to-web                | [GIN-debug] redirecting request 301: /static/ --> /static/
rtsp-to-web                | [GIN] 2022/02/20 - 18:15:52 | 200 |     288.392µs |     <IP_ADDRESS> | GET      "/static/"

accessing stream in HA:
rtsp-to-web                | [GIN] 2022/02/20 - 18:16:23 | 404 |       2.555µs |     <IP_ADDRESS> | POST     "/stream"

I have a guess: the default for this server is to have HTTP Basic Auth turned on in the default config.json, so if your server RTSPtoWeb server url is http://example.com/ then you may need to specify<EMAIL_ADDRESS>as the home assistant url. Alternatively, you can supply your own config.json with an empty login and password.

Yeah, that was the case !
So in my humble opinion there is default values/documentation issue. When using default config via docker, users do not know defaults credentials, and don't know what to write into HA integration configuration. Also, there is no error while adding integration with wrong credentials - it should be
Solutions :

HA integration should always try default RTSPtoWeb credentials if used did not provide any.
Change  default credentials to empty
provide HA integration example with http://demo:demo@IP , documentation need it too

Yes, I would love this if you updated the documentation.

Yeah, that was the case !
So in my humble opinion there is default values/documentation issue. When using default config via docker, users do not know defaults credentials, and don't know what to write into HA integration configuration. Also, there is no error while adding integration with wrong credentials - it should be
Solutions :

HA integration should always try default RTSPtoWeb credentials if used did not provide any.
Change  default credentials to empty
provide HA integration example with http://demo:demo@IP , documentation need it too

Any chances you can share your config.json since I'm trying to run it on its own docker LXC container. But so far it did not work. Also trying to make it, so I can run it on HTTPS:// using selfsign certs. Thanks


German language syntax fix, add trailing quote

Fixes #1453
Description
The de.json5 German language pack was missing a closing quote on one line, which caused it to not work.  See #1453.

Merging this immediately, as it's a tiny, obvious, one-character fix.  Also tested it locally & all CI tasks succeeded.


Broken recent commit history link

Original issue: https://charm.cs.illinois.edu/redmine/issues/391

Per Jim,

Hi,
The "Recent Commit Activity" link on http://charm.cs.illinois.edu/help still
points to http://charm.cs.illinois.edu/cgi-bin/gitweb.cgi?p=charm.git
rather than http://charm.cs.illinois.edu/gerrit/gitweb?p=charm.git
Jim

Instructions to update webpage are at: https://wiki.engr.illinois.edu/display/ppl/Deploy+the+PPL+website

Original date: 2014-01-08 16:24:36

Assigning to Jonathan because there was confusion regarding the instructions on the web - which branch to update? I would prefer if Jonathan verifies the instructions and then reassigns for updating the link.

Original date: 2014-01-08 21:01:36

Due to the priority of the task I have completed it quickly myself. However, I don't really know what the confusion is regarding the instructions. Changes are to be made on the "master" branch and then ported to the release branch "charmweb-1.0", because it has charm server configuration/paths etc. baked in for the release.
Nikhil Jain wrote:

Assigning to Jonathan because there was confusion regarding the instructions on the web - which branch to update? I would prefer if Jonathan verifies the instructions and then reassigns for updating the link.

Original date: 2014-01-08 21:15:02

Confirmed new link is in place.


Start of mutation tests

Starting mutation tests by using a program called Manbearpig. Manbearpig cannot run mutation tests on Go test files so the only way to get it to perform an analysis was to comment out the test features of the file such as import "testing" and  t *testing.T used in the functions. If a mutation is detected it switches == into !=  . Below is the output for two files:
C:\Users\Alex\go\src\higherorderfunc>manbearpig -import higherorderfunc -mutation ==
2018/11/27 16:18:59 mutating in C:\Users\Alex\AppData\Local\Temp\manbearpig582495379
2018/11/27 16:18:59 found 0 occurrence(s) of == in HighOrderFunc.go
2018/11/27 16:18:59 found 0 occurrence(s) of == in HighOrderFuncTest.go

Assigned @AshotC.  @AshotC: you have the right to say you can't review this.


Theme doenst load properly in spotify

reinstalled the theme and still no effect

Hey! Can you let me know the steps you performed to enable the theme? Also, can you confirm if you can open Spotify without the theme?
The image you linked hints at the fact that the theme is loading properly but its your Spotify client that isn't working/opening.

I preformed the steps on the catppuccin spicetify repo, It works without theme

I cannot reproduce this on my end on spicetify version 2.13.1 on Linux. Maybe @nekowinston on macOS can try and let me know if they face the same issue or not.

Just tried it on my end on macOS, also couldn't reproduce the issue.
I'll walk through the installation with @NamesCode on Discord.


[Accessibility] Broken keyboard navigation on demo page

Navigating by tab on the demo page, I get directed to:

The first "..." (good)
download (good)
github (good)
demo (good)
<a href="#project">, an element invisible on the screen (bad)

More info on why this is important:

https://accessibility.digital.gov/ux/tab-order/
https://www.w3.org/TR/UNDERSTANDING-WCAG20/content-structure-separation-sequence.html

This, along with #73 , makes it hard to evaluate whether the plugin is accessible.

Hi @GaloisGirl. You're totally right, and I appreciate you pointing this out. My work on this plugin was fro much earlier in my web career when I didn't understand almost any accessibility best practices. Unfortunately, this plugin is effectively abandoned, as I just don't have time to make any meaningful updates.


new utility to truncate blocks.log

Change Description
New program blockLogTrim will truncate blocks.log and blocks.index after a given block number.
To trouble shoot a problem at block 'n' can truncate blocks.log to before that, then run nodeos, then snapshot the state. Then can debug nodeos as it runs forward from the snapshot.
First command line arg should be the directory where blocks.log and blocks.index are located and second arg is -b flag to give last block kept. Example:
blockLogTrim ../eos_data/blocks -b33000111

I have code for reconstructing blocks.index from blocks.log that is much faster than nodeos (in my test case 2 minutes vs. 90 minutes). I also have code for exploring blocks.log. This code should be added to blockLogTrim so that it becomes a more general utility for dealing with blocks.log and blocks.index.

There is also this: https://github.com/EOSIO/eos/blob/master/programs/eosio-blocklog/main.cpp
Seems like it should all go into one util.

Should this be included in binary releases?
Should this have unit tests?

Note that nodeos supports --truncate-at-block which will play back a block log to the indicated block number then stop.  It produces a blocks.log, blocks.index, and matching state to the given point, which may then be snapshoted.  This tool appears to be redundant for the stated purpose.

Note that nodeos supports --truncate-at-block which will play back a block log to the indicated block number then stop.  It produces a blocks.log, blocks.index, and matching state to the given point, which may then be snapshoted.  This tool appears to be redundant for the stated purpose.

@jgiszczak I requested this because I'm tired of waiting long periods of time on --truncate-at-block. Future functionality is at https://github.com/EOSIO/devdocs/wiki/nodeos-utils

#6884

Subsumed by #6884


Added repository_ids in non-natural joins in the examples

Added repository_ids to JOIN .. ON clauses and unified the indentation to four spaces (which was used before).
This would hopefully close #575.

Thanks @BakeRolls !


Updated: gnucash 3.9

${}

592402bc-4ad1-4e3b-9d2f-801ca696204f

Newer version of gnucash (4.0) is now available in master. 7bd23d1d9d5e0a8555fbab9146b35d2121252aae


Add JS Packaging

Summary
Problem
We do not package rs-ucan for JavaScript environments.
Impact
rs-ucan cannot be used in web browsers, node, and other JavaScript environments.
Solution
Add a crate that acts as a thin layer over the ucan and ucan-key-support crates. The crate should compile to Wasm and provide JS packaging.
Detail
Is your feature request related to a problem? Please describe.
We want to use rs-ucan in the UCAN validator. See https://github.com/ucan-wg/rs-ucan/issues/19#issuecomment-1549929270 for more detail.
Describe the solution you'd like
Add a ucan-wasm crate that produces a JS-packaged version of rs-ucan.
Additional context
Implementing initial support with a limited set of features and targets will probably be best. This approach will let us get the machinery in place and support the UCAN validator as a first target.

Related discussion in: https://github.com/ucan-wg/rs-ucan/issues/19

Recording some notes on the wasm-pack and wasm-bindgen tooling available today.
Our goal in selecting a packaging approach is maximum support across targets with the best possible developer ergonomics. As noted above, our initial goal will be to support the UCAN validator, which lives in a web app. In the long run, we may need to use multiple approaches to support all targets.

wasm-pack
wasm-pack supports a few targets, including bundler, web, node, and no-modules.
The bundler target relies on the esm-integration proposal (https://github.com/WebAssembly/esm-integration), which currently has limited bundler support. For example, it does not have first-class support in Vite, though it can be used with a Vite plugin.
The web target forces downstream users to call an init function to instantiate the Wasm module, which is less than ideal.
The node and no-modules targets don't fit our initial use case, but they should definitely be considered in the future!
wasm-bindgen
wasm-bindgen can be used without wasm-pack to get more control over the package output. For example, we may want our own package.json instead of the one created by wasm-pack.
One benefit of this approach is that we can include a custom entry point that calls the init function for users, which seems like an ideal developer experience. A developer could import from the package like any JavaScript package without awareness of the underlying Wasm.
Unfortunately, this approach relies on top-level await to load the module. A custom entry point might look like this:
import init from './ucan-wasm.js';

await init();

export * from './ucan-wasm.js';

Top-level await makes a module asynchronous, which means init will finish before the exports are available. See https://exploringjs.com/impatient-js/ch_modules.html#top-level-await for more details.
Top-level await is available in all modern browsers, but support is still lacking in some bundlers like esbuild.
Let's pick one
wasm-pack with the web target seems the best place to start. It doesn't rely on bundler plugins, and it should work with most bundlers (I will verify this while implementing packaging support). If we decide to take another approach in the future, developers should be able to drop the init call from their code, and everything should work.

The scope of JS packaging is somewhat narrow compared to packaging in general, and with that in mind it can pay off to have opinions. We don't currently have a recorded use case for packaging as Wasm for use outside of JS (although I'm sure such use cases exist).
@fabricedesre could you share any examples that come to mind that may show off the advantages of the less bloated with wit-bindgen?

The node and no-modules targets don't fit our initial use case, but they should definitely be considered in the future!

The issue states that Node.js and "other" JS environments are in scope for JS packaging. Should I understand that the initial use case is scoped to main-thread web (excluding web workers, I suppose, since we're assuming ESM)?
As a general comment: JS bundling is a fraught exercise. There are about as many opinions as there are tools available for bundling, and no clear consensus in the community on the topic of tool interoperability. So, even if we bless a bundler strategy such as wasm-pack, we'll most likely be doing so with trade-offs on the consumption side.
In other projects I have worked on, we have assumed that the NPM package consumer is probably using a bundler of their choice. This frees the package maintainer from having a strong opinion on bundling. Instead, they can worry about distributing a package that has a very good chance of being easily bundled. And today we have such niceties as ESM and Import Maps on the web, and configurable package entrypoints in Node.js, making this an easier strategy than it has been historically.
With the above in mind, it seems like wasm-bindgen is the right tool for the job, since it does not concern itself with bundling per se. Maybe there is a similarly interesting approach to consider with wit-bindgen.
This is an aside: this article crossed my feed today from a former colleague; it may contain some topical pointers: https://www.donmccurdy.com/2023/05/24/publishing-webassembly-modules-with-assemblyscript/

Thanks for the Don McCurdy article! Good to see this approach. 🙏

The issue states that Node.js and "other" JS environments are in scope for JS packaging. Should I understand that the initial use case is scoped to main-thread web (excluding web workers, I suppose, since we're assuming ESM)?

Yep, the initial use case is main-thread web only. My initial thought was to only package for that, but it does seem like it would be better to package for a couple of environments.
wasm-pack doesn't seem up to that task because it can target one environment or another, but not multiple environments in a single package.
@hugomrdias mentioned Automerge, which also packages for multiple environments. From their package.json, it looks like they target browsers, node, deno, and Cloudflare workers: https://github.com/automerge/automerge/blob/main/rust/automerge-wasm/package.json

The other option is to not use wasm-bindgen (it's quite opinionated and bloated imho) and use the wasm component model (start at https://github.com/bytecodealliance/wit-bindgen). I've had good results with it and found it more enjoyable to use than the reflection used with wasm-bindgen eg. to access WebCrypto.

I would be open to trying wit-bindgen! A working example would be helpful for getting a sense for it. We are definitely going to need WebCrypto, so anything that makes that more pleasant is appreciated. 💯

Let me try to re-vive my wit-bindgen branch. When I first tried I hit https://github.com/bytecodealliance/wit-bindgen/issues/305 but that got fixed since.


Add a default case for "I don't know that command"

New feature
Currently the discord bot doesn't respond to unknown triggers, but it should let the user know about the command being invalid.
Directions/Approach
https://github.com/osdc/bots/blob/6adc0b2cdd6b3258dfc32376272901e3cb5c1585/discord-bot/bot.js Add an else case. May need to convert the existing if statements to else if.
First-time Contributors
If it is the first time that you contribute to the bot, follow these steps:
Write a comment in this issue thread to let other possible contributors know that you are working on this bug. For eg : Hey all, I would like to work on this issue., follow README to the bot 🔥✨ and feel free to ask anything related to this issue ✌

Hey folks ! I would like to work on this issue

@reapedjuggler Great 🚀. Thanks for showing your interest in this 🎉. I have assigned it to you 😁. Feel free to ask any queries regarding the issue or setting up the bot ✌.

Just a suggestion, it should be more like "I don't know this command, do !help to see the list of commands."

Just a suggestion, it should be more like "I don't know this command, do !help to see the list of commands."

Yes I will keep in mind :D


Fonduer in windows machine

I am new to Fonduer , is there any steps to install fonduer in a windows machine.
https://fonduer.readthedocs.io/en/latest/user/getting_started.html
Above link shows to how to  install external dependence other than Windows system.
Could you please help ?

Fonduer does not currently support Windows. You could try using a Ubuntu virtual machine.
Or, you may be able to go through the process of debugging how to get it to work with Windows. If you're successful, we'd be happy to add it to our docs.


Default Icons problem

Hi
I'm currently trying to use a DEFAULT icon in a button but I can't see the icon at all
That is what I get:

I can see the icons on the Semantic Website so the problem don't seem to come from my browser
I already tried to add the default theme path to the icon.variables Path: Nothing
I can see the icon when I'm using the CDN
I don't know If I forgot to configure something or if it's an other problem
Tell me if you want me to link a file
Thanks

Can you create a JSFiddle  to replicate the issue?

Sure Here you have  it : https://jsfiddle.net/ca0rovs3/478/
I hope this is what you need 😄
It seems to work on the jsfiddle so I guess the problem is not in my code btw

The icons load for me

Are you getting shown something else?


Allow TuplePattern to have null fields and match any tuple

Fixes issue raised in https://discuss.tvm.apache.org/t/tuplepattern-for-any-number-of-inputs-to-the-tuple/8926
I'm not sure I love the fix, the specialization of paritioning to support ops that are technically outside of the pattern makes me queasy. Any thoughts to make it better?
@masahi

Q: Can you also have this for function calls? (Matching a call with any number of arguments.)

Q: Can you also have this for function calls? (Matching a call with any number of arguments.)

Hmm, probably, @masahi and i have been talking about cleaner ways to do this for function/call/etc. Let me do some experiments and try to get back to you next week. I'm going to close this to work on a more complete solution.

Hmm, probably, @masahi and i have been talking about cleaner ways to do this for function/call/etc. Let me do some experiments and try to get back to you next week. I'm going to close this to work on a more complete solution.


Improved Navbar of the website

Pull Request template
Please, go through these steps before you submit a PR.
Make sure you have done your changes in a separate branch. Branches MUST have descriptive names that start with either the fix/ or feature/ prefixes. Good examples are: fix/signin-issue or feature/addded-home button.
Describe your changes
I have improved the navbar of the website by adjusting margin, padding, improving hover effect of all the pages of the website.
Issue  number and link
#245

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] Please ensure that there aren't other open Pull Requests for the same update/change/feature/bugs?
[x] The title  pull request is a short description of the proposed changes.

Screenshots

@aytida0606  I have made a new PR as there was merging problem in PR no. #254 . Kindly view.


Add a Wait()-like method that returns a caught panic

Re-panicking is not ideal for every situation. Sometimes, in the case of a panic, a user will want to handle the panic manually. It's possible to recover() the propagated panic, but that's extra work for the user and you lose the type information that the panic value is a RecoveredPanic.
We should add a method like WaitSafe() that returns a *RecoveredPanic if a panic was caught.
Open questions:

What to call it? WaitSafe, SafeWait, WaitAndRecover all come to mind
Do we add this just to WaitGroup, or also add it to each of the .*Pool types?

I would like to give this a shot over the next day or two if its not urgent

All yours -- have fun!

something want to say about this.
now :
// Wait will block until all goroutines spawned with Go exit and will
// propagate any panics spawned in a child goroutine.
func (h *WaitGroup) Wait() {
h.wg.Wait()
// Propagate a panic if we caught one from a child goroutine
h.pc.Repanic()

}
i think :
func (h *WaitGroup) safeWait() {
h.wg.Wait()
// Propagate a panic if we caught one from a child goroutine
//h.pc.Repanic()

}
maybe give the choice to the user:
func (h *WaitGroup) Wait() {
h.wg.Wait()
    return h.pc

}
WTF is  now "safe" use .
pc.Try( wg.Go(func) )

as the golang design about log
func Println(v ...any) {
if atomic.LoadInt32(&std.isDiscard) != 0 {
return
}
std.Output(2, fmt.Sprintln(v...))
}
func Fatal(v ...any) {
std.Output(2, fmt.Sprint(v...))
os.Exit(1)
}
i agree with  the panic should be process. but give the choice to user.

I'm actually going to put this back up for others to take on, I took too many things on at once... Sorry for the inconvenience

No problem, thanks for letting us know 👍

I don't mind giving this a shot if you don't mind.

We should add a method like WaitSafe() that returns a *RecoveredPanic if a panic was caught.

I'll attempt this approach ☝  unless you would prefer another.

Go for it! Let me know if you have any questions

Cool. Thank you!
Super nice project by the way!


Add Northlight Detection

Some reference to the engine, such as the developer site or a wikipedia article.
https://www.remedygames.com/northlight/
SteamDB links
https://steamdb.info/app/474960/
https://steamdb.info/app/870780/
Possible way to detect it
rmdp files? but they are used in older remedy games too i think

\.rmdp$ @Lifeismana also pls lmk if i can't mention you

https://steamdb.info/app/108710/
https://steamdb.info/app/202750/
https://steamdb.info/app/474960/
https://steamdb.info/app/870780/
this rule would also match Alan wake which is not correct ( it's using "The Alan Wake Engine" )
The easiest way of solving that is probably to name the rule AlanWakeEngine_OR_Northlight since it's not the same engine
Once again, feel free to do the pr or else i'll do it
(Feel free to mention me but you don't need to, i'll still see your messages without it)

https://steamdb.info/app/108710/
https://steamdb.info/app/202750/
https://steamdb.info/app/474960/
https://steamdb.info/app/870780/
this rule would also match Alan wake which is not correct ( it's using "The Alan Wake Engine" )
The easiest way of solving that is probably to name the rule AlanWakeEngine_OR_Northlight since it's not the same engine
Once again, feel free to do the pr or else i'll do it
(Feel free to mention me but you don't need to, i'll still see your messages without it)

I'll try to find a way to remove AW engine, but if it wont be possible then we'll just go with OR rule i guess


Implement visual feedback (node highlighting) on hover or selection

Is Blocked By #126 #127
Related to User Story #120
Is Highly Related to #127
Acceptance criteria

Nodes are highlighted with single click/selected.
Users can deselect nodes by clicking outside the node or on a different node.
The visual feedback is consistent across different nodes and states.

Optional:

Nodes are distinguished when hovered over with the cursor.
Hovering and selection states are visually distinct.

@lomeintheory Please make sure you touch base with @colinvandergraaf on this one.

What's the status of this issue? @lomeintheory If you hit any blockers please come to the team for advice.


Configurable pull interval

FluentBit flushes its data to a predefined interval. Make it so we pull data to the same interval as Fluent Bit to not waste resources.

Done


Can support changing the global font size ?

@waleswood All fonts are defined here. You can override these keys at the App.xaml.

for example, As the font gets larger, the button will also become larger. Adaptive UI interface

@waleswood This was not yout intial question, and it's already there...
The first button has a larger Font size, the rest the default font size.
<Button Content="Test" FontSize="48" />

thanks


Feature/artisan create db

We added feature for database creation. This way, you can set up a Laravel project using artisan command. We use Laravel for all our in-house PHP applications, and this feature will definitely help reduce the time it takes to set up a Laravel project.

Wrong branch

Thanks.


[BUG]

the coming from and going to airports are the same on most of the flights

Can you give an example of a flight where this is happening, so far I have not found it to be true in my current use case

https://api.adsbdb.com/v0/aircraft/a658a1?callsign=GTI4766

Looks like a cargo flight, which change their origin and destination frequently. Which origin + destination do you think it should be changed to, the latest flight was Frankfurt (HHN) to Chicago (RFD), but has been other pairs recently.
adsbdb is static in this regard, the data in the database doesn't/can't get updated with human (my) interaction

Thanks for the help but we decided to remove it from our application due to the inaccurate flightroute data we have been comparing the data to https://globe.adsbexchange.com/ alot of it didnt match what they had


Using the Django channels for the button "Next" in the demo and the learner flow.

Description:  Using Django channels for the button "Next" in the demo and the learner flow.
Using Redis like CHANNEL_LAYERS.
Tasks:
https://vpalresearch.atlassian.net/browse/AD-267
https://youtrack.raccoongang.com/issue/ALOSI-76

@AndreyLykhoman please resolve conflicts.


Configuration Dialogue has an unnamed field

Configuration shows a field with no identification or description.

That's a modbus id right there. I'll check it. Thanks.

3808a54

No change, still unnamed.

Does you translation files containt "inverter_mb_slave_id" string?

Confirmed translation is there. It's not really an issue so park it until someone else reports it. Could be something odd about my system.

And magically it has now appeared 😕

Magic! hehe


Update vnu.jar to 15.6.29 version

Update with jar from
https://github.com/validator/validator/releases/tag/15.6.29

:+1:

Thanks! I've published 0.5.0, sticking with the tradition of major version bumps for vnu.jar updates.


Does not handle final long words nicely

Steps to Reproduce
Use AutoSizeText with a sentence that has a very long last word with maxLines set to 1.
The entire last word is dropped and the font size is set to minFontSize making the viewable text unnecessarily small.
Better behavior would be to show as much of the last word as possible following the 'overflow' parameter to clip or elide it.
Code sample
AutoSizeText(minFontSize: 8,  maxLines: 1, 'This is a bad url: xxxxxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyyyyyy.zzz')

Screenshots
If applicable, add screenshots to help explain your problem.
Version

Flutter version: 3.0.2
auto_size_text version: 3.0.0

Can I Work on this please?


.NET MAUI support

WIP, due to a bug dotnet/maui#24685

The issue in the MAUI repository was put on the backlog. It seems that I'll have to try using MAUI again in a couple of years. It's disappointing, that whenever I tried to use Xamarin.Forms (and now MAUI), there were always bugs blocking me. In other words: Xamarin.Forms/MAUI has been unusable for around ten years now 😞 .

That's the exact reason why I prefer not to touch the Maui/uno/uwp actually. Anyway, thanks for improving this library!


Replace konstraint extensions by a validator Kotlin DSL

In order to provide a more idiomatic Kotlin experience, I am wondering if we could replace konstraint extensions introduced by #16 (I don't really like this kind of k prefixed to be honest) by a Kotlin DSL that would isolate more the Kotlin API from the Java one. I need to give it more thoughts but my initial proposal is the following:
val validator = validator<User> {
     constraint(User::name) {
          notNull()
          lessThanOrEqual(20)
     }
     constraint(User::email) {
          notNull()
          greaterThanOrEqual(5)
          lessThanOrEqual(50) //
          email()
     }
     constraint(User::age) {
          notNull()
          greaterThanOrEqual(0)
          lessThanOrEqual(200)
     }
}

Any thoughts? If you like it I can probably try to craft a PR.

The motivation of #16 was that it was frustrating to find a method for Kotlin from a lot of candidates. Changing method names worked for me.
If your suggestion works too, it would be great to make this library more Kotlin idiomatic.
My another concern is the maintenability of the isolated API for Kotlin.
This library was not originally designed for Kotlin and started to support it with minimal efforts.
I'm not confident to keep on updating the API.
But I'd really like to see how the DSL will be implemented.

The question of the maintainability of the Kotlin API is a good one, and I would also add another point that I have in mind for Kofu: multiplatform validation to be able to do same checks on server side via Kotlin/JVM and client side with Kotlin/JS.
This will likely require a Kotlin MP library like https://github.com/konform-kt/konform so I need to think more about that before asking advanced support for Kotlin here.

+1 for the Kotlin DSL, e.g. the DSL of https://github.com/konform-kt/konform looks very clean.
(Or would this be too big of a break with the Java compatibility..?)

@hartmut-co-uk Are you willing to propose a pull request?

let me try to make time! (might not be within the next 2 weeks)

I've made a start -> https://github.com/making/yavi/pull/152
Please let me know what you think, seems this won't be a small feat to cover the vast YAVI capabilities.. :-)

Supported by 0329aa47f67c4071adc3cc576f9287faaddbdde7 🎉


nico/polymer proofs

add tool to generate proof test data
add proof test data
add merkle trie verification libs
add op proof verifier

Should we add the external solidity dependencies like RLPReader.sol as submodules instead of copying them into our code base?

@coderabbitai review

Should we add the external solidity dependencies like RLPReader.sol as submodules instead of copying them into our code base?

yeah! that was there because I was just lazy

@coderabbitai review


Convenience functions

Maybe round_up_to(factor)?

See #17 for discussion of the problems with round_up_to(factor). Not going to do this until it become more obvious it would be useful.


custom retries doesn't work while using POST method

I had very confused
#!/usr/bin/env python
import logging

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3 import Retry

logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger('requests')
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

with requests.Session() as s:
    retry = Retry(status_forcelist=[503])
    adapter = HTTPAdapter(max_retries=retry)
    s.mount('http://', adapter)

    try:
        # r = s.get('http://httpbin.org/status/503')
        r = s.post('http://httpbin.org/status/503')
        r.raise_for_status()
    except requests.HTTPError:
        print 'BANG!'
        print "where are my retries???"
    except requests.exceptions.RetryError:
        print 'computation does not rich this exception'

When session.get() all works fine.

You need to specify the methods via the method_whitelist parameter to the Retry class.

thx, forgive my inattention

No worries @tribals. If you read my blog post about retries with requests I probably failed to mention this. Cheers!

if it's this post, then yep, i've read it


Checking if the Provider can be reached and throwwing an error

Fixes # .
Changes proposed in this PR:

Seems to be a lot of code in this, what is goal ?


VR creator with limited amount of CLI experience

Hi,
My name is Lolo, and I would love to use your VR viewer to demo my 3DGS scenes.
But my knowlage of CLI is limited and installing a project like this from GitHub without a detailed install tutorial has been tried, and failed....
I understand that a lot of people are able to "install" this but i'm simply not able to look at this repo and go, yeah this, then that then boom!
I have watched a ton of tutorials to learn how to install Nvidia Nerf, Nerfstudio, Inria GS but with a lot of hand holding. And now that i'm trying to simply download, place on HD and execute a command in CLI i'm completly lost. Also because of the custom prompt you are using in the youtube video.
Would you mind doing an install video for dummies like me? or is there another way i can learn how to install your project? Because i really like what i see in the Youtube video and i'd really love to try!
Thank you for your patience.
Lodewijk

Hi, yeah the github project is more about the source code.  It doesn't provide a running executable, unless you build it from scratch.  I hope to address this at a later date.
First off you'll need some data.  I recommend downloading .ply created using the Luma App.
Lets say the file you downloaded is c:\data\my_capture.ply
But in the meantime, you can download a Windows executable here.
Unzip that folder somewhere on your hard drive.  Sadly, you can't just double click it to run.  Instead you'll have to open a CLI in that folder.  Also, you should cd into the same directory that you've unzipped the zip file.  Once there type splatapult.exe c:\data\my_capture.ply
Hope this helps.


MAINT: Replace supermag-api with link

Keeping a local copy of supermag-api in the notebook directory is incompatible with the MIT license., so it should be referenced from another copy. This is related to Issue #8 .

Available here: https://supermag.jhuapl.edu/mag/lib/content/api/supermag-api.py


Delete branch button overflow the box

Description
No response
Screenshots

Gitea Version
1.18.0+dev-421-geaa561145
Can you reproduce the bug on the Gitea demo site?
Yes
Operating System
No response
Browser Version
Edge

Hi, I thought this issue was interesting, so I thought I'd dive a little deeper:
When viewing the Branches overview page, and viewing at a smaller resolution than 1920 by 1080 or a DPI larger than 1 (i.e. the breakpoint trigger at @media only screen and (min-width: 992px) and (max-width: 1199.98px) or smaller), the action buttons to the right of each branch overflow their container. In addition, the "Create Pull Request" button (because it is actually a link) shows a single ellipsis.
I've also tested this on 1.17.0, using Arch Linux as my OS.
I've also tested these browsers:

Chromium ("Version 105.0.5195.125 (Official Build) Arch Linux (64-bit)")
Firefox ("106.0b3 (64-bit)")

Both browsers show the same issue.
@rock2dust can I suggest a title change, to something like "Repository Branches Overview - Action Button Overflow"? That way, it's a bit clearer what this issue intends to fix. Good find though! 😃

#21559


NWB updates from run_kilosort branch to main

Updates

enforce ephys_mode via dj.config rather than activated schema, which had complications in testing.
limit comments to 88 char
fix bug on creating units table

I chose not to version bump as this would make the main branch's changelog out of synch with the dev branch

Fully incorporated in #94


fixing a typo

Q
A

Bug fix?
no

New feature?
no

API breaks?
no

Deprecations?
no

Related tickets
none

What's in this PR?
fixing a typo in the docs
Why?
it produces an error while trying to execute the command

Fixed in #784


Recent topics improvements

@timabbott with all the html elements and jquery involved it is difficult to get complete coverage without creating a simulation of the whole modal. Let me know your thoughts.
@showell we are no longer selecting the search keywords in input after a relaunch of recent topics, rather we focus on the last coordinates user was at.
I think this PR completely adds arrow navigation support, we will find out if any behaviour seems odd to users after deploying it. I have focused on arrow keys + enter as primary mode of navigation and selecting elements, space button is not reliable as it is used for scrolling the table.

This looks great; I made the following changes (mostly to add more comments, but I ended up changing MAX_SELECTABLE_COLS because the old semantics were annoying to describe; often a useful function of adding comments).
diff --git a/static/js/hotkey.js b/static/js/hotkey.js
index cabde8676b..90cd1ee256 100644
--- a/static/js/hotkey.js
+++ b/static/js/hotkey.js
@@ -422,7 +422,7 @@ exports.process_shift_tab_key = function () {
 exports.process_hotkey = function (e, hotkey) {
     const event_name = hotkey.name;

-
+    // This block needs to be before the `tab` handler.
     switch (event_name) {
     case 'up_arrow':
     case 'down_arrow':
diff --git a/static/js/recent_topics.js b/static/js/recent_topics.js
index b56a9dd28f..3fad7308e8 100644
--- a/static/js/recent_topics.js
+++ b/static/js/recent_topics.js
@@ -21,10 +21,14 @@ let filters = new Set();
 // `row_focus` and `col_focus`.
 let current_focus_elem;
 let row_focus = 0;
-let col_focus = 0;
+// Start focus on the topic column, so Down+Enter works to visit a topic.
+let col_focus = 1;

-// NOTE: Increase this when adding more selectable actions in a row
-const MAX_SELECTABLE_COLS = 3;  // 3 = 4 here (0, 1, 2, 3)
+// The number of selectable actions in a recent_topics.  Used to
+// implement wraparound of elements with the right/left keys.  Must be
+// increased when we add new actions, or rethought if we add optional
+// actions that only appear in some rows.
+const MAX_SELECTABLE_COLS = 4;

 function set_default_focus() {
     // If at any point we are confused about the currently
@@ -37,10 +41,12 @@ function set_table_focus(row, col) {
     const topic_rows = $("#recent_topics_table table tbody tr");
     if (topic_rows.length === 0 || row < 0 || row >= topic_rows.length) {
         row_focus = 0;
-        // return focus back to filters if cannot focus on table.
+        // return focus back to filters if we cannot focus on the table.
         set_default_focus();
         return true;
     }
+
+    // The first two "columns" are the stream/topic links.
     if (col === 0 || col === 1) {
         topic_rows.eq(row).children().eq(col).find('a').focus();
     } else {
@@ -423,6 +429,10 @@ exports.launch = function () {
 };

 exports.change_focused_element = function (e, input_key) {
+    // Called from hotkeys.js; like all logic in that module,
+    // returning true will cause the caller to do
+    // preventDefault/stopPropagation; false will let the browser
+    // handle the key.
     if (input_key === 'tab') {
         input_key = 'right_arrow';
     } else if (input_key === 'shift_tab') {
@@ -439,6 +449,9 @@ exports.change_focused_element = function (e, input_key) {
     }

     if (e.target.id === 'recent_topics_search') {
+        // Since the search box a text area, we want the browser to handle
+        // Left/Right and selection within the widget; but if the user
+        // arrows off the edges, we should move focus to the adjacent widgets..
         const textInput = $("#recent_topics_search").get(0);
         const start = textInput.selectionStart;
         const end = textInput.selectionEnd;
@@ -450,7 +463,7 @@ exports.change_focused_element = function (e, input_key) {

         switch (input_key) {
         case 'left_arrow':
-            if (start !== 0 ||  is_selected) {
+            if (start !== 0 || is_selected) {
                 return false;
             }
             current_focus_elem = $elem.prev().children().last();
@@ -465,7 +478,6 @@ exports.change_focused_element = function (e, input_key) {
             set_table_focus(row_focus, col_focus);
             return true;
         }
-
     } else if ($elem.hasClass('btn-recent-filters')) {
         switch (input_key) {
         case 'left_arrow':
@@ -487,16 +499,19 @@ exports.change_focused_element = function (e, input_key) {
             return true;
         }
     } else if (current_focus_elem === 'table') {
+        // For arrowing around the table of topics, we implement left/right
+        // wraparound.  Going off the top or the bottom takes one
+        // to the navigation at the top (see set_table_focus).
         switch (input_key) {
         case 'left_arrow':
             col_focus -= 1;
             if (col_focus < 0) {
-                col_focus = MAX_SELECTABLE_COLS;
+                col_focus = MAX_SELECTABLE_COLS - 1;
             }
             break;
         case 'right_arrow':
             col_focus += 1;
-            if (col_focus > MAX_SELECTABLE_COLS) {
+            if (col_focus >= MAX_SELECTABLE_COLS) {
                 col_focus = 0;
             }
             break;

Merged, thanks @amanagr!  I think it's OK for this sort of UI-heavy module to not have extensive unit tests; we can add them if we find ourselves fixing a lot of bugs in this.
I'll get this on chat.zulip.org tonight so that we can get feedback, but I really like it.

Thanks for improving the code documentation. I need to start thinking from a third user perspective when writing comments.


Notify safekeeper readiness with systemd.

To avoid downtime during deploy, as in busy regions initial load can currently take ~30s.

Tested it locally with unit file like
[Unit]
Description=Monitors room temperature by safekeeper

[Service]
# if you think it is a good idea, it isn't
# User=ars
ExecStart=/home/ars/neon/neon2/target/debug/safekeeper
WorkingDirectory=/home/ars/neon/neon2
Restart=on-failure
RestartSec=10
TimeoutStartSec=90s
# use sd_notify for determining readiness
Type=notify

[Install]
WantedBy=default.target

at /home/ars/.config/systemd/user/safekeeper.service with
cargo build_testing && systemctl --user enable --now safekeeper && systemctl --user restart safekeeper.service
, adding sleep before readiness notify.


Add color settings

It would be nice to have some control over the color codes being used. I am having trouble reading tags on a windows machine using putty with default color settings (black background).
If I can help out make this happen, in any way, give me hint :smile:

Yeah, I think we could add that to the config. Right now all the colors are listed here: https://github.com/TailorDev/Watson/blob/master/watson/cli.py#L32-L41

@k4nar thanks for your quick answer - I just 'patched' my code to make the tags readable, nice quick fix.
I could try making this configurable, but my Python skills are limited, to say the least. Should I give it a try or are there any coders already waiting to implement new features?

I'm not sure if this is an issue w/ td-watson and instead w/ PuTTY
I think the colour settings would be part of the terminal, and so instead part of PuTTY?
check out this.
Not sure if adding colours on putty can be done  w/o setting PuTTY up properly :/

@Charc248 this issue deals with ANSI colors. Thanks to ANSI escape codes, your terminal is able to format displayed text. Then, your terminal (PuTTY in your case) is able to theme this display on top.
@SpotlightKid this issue should have been closed right?

Can the code owners please review https://github.com/TailorDev/Watson/pull/488 that will close this?

On Powershell (bkue background) "watson projects" isn't readable.


Feature/3056 update infolistitem comp mui v5 style engine

Fixes # BLUI-3056
Changes proposed in this Pull Request:
Update styles to use Mui-v5 Styled components
Update component to extend sx prop
Test:
There is a showcase branch feature/3050-channel-value-mui-v5-styles-update that you can use to test this.
When testing, ensure that there are no breaking changes and that the old API properties still work the same and that you can still style things with inline styles as well as using our classes prop.
Also, test out the new sx prop extension. You can apply styles to the root by using sx directly on the component as well as by targeting nested items by the generated classnames. I will work on documentation while this is in draft review.

@bkarambe
@daileytj made a PR to merge some changes into this branch, however this branch is now a little out of date with the release/mui-v5-style-updates branch.   Could you merge that release branch back into this feature branch so that Tom's PR is easier to understand?  I think Tom might have branched from the release branch instead of your feature branch.

all the xs class overrides seem to be working except for BluiInfoListItem-icon. Not sure but wasn't able to give it any style override with the common sx props but could be me....

@bkarambe  Can you open the console while running the showcase and observe these errors?
react-dom.development.js:67 Warning: React does not recognize the `statusColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `statuscolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element.

We've seen something similar before; this happens when invalid props aren't being "de-spread" (I forget the jargon) from the props object before being passed onto a wrapped element.

sx={{ '& .BluiInfoListItem-listItemButtonRoot': { backgroundColor: '#bada55' } }} This style is only applied if there is a ripple and a click event. Should this be applied to the listItemButtonRoot regardless of whether the ripple prop is on?

listItemButtonRoot
An element with className listItemButtonRoot only appears when ripple is on and there is onClick event.
This is code from base branch:

props.onClick && ripple ? (
                <ListItemButton className={combine('listItemButtonRoot')} focusRipple={ripple}>
                    {getInfloListItemContent}
                </ListItemButton>


Add benchmarks to LayoutFrameworkBenchmark

LayoutFrameworkBenchmark supports adding new layout framework's benchmark via pull request, so add this project's benchmark to it.

Resolved


The Relevant attributes like x, y, height and width of controls are not populated correctly

This is in continuation with issue #265

The relevant attributes are not getting relayed to page source or in fact the automation object i guess.
      <ToolBar AcceleratorKey="" AccessKey="" AutomationId="IENotificationBar" ClassName="DirectUIHWND" FrameworkId="Win32" HasKeyboardFocus="False" HelpText="" IsContentElement="True" IsControlElement="True" IsEnabled="True" IsKeyboardFocusable="False" IsOffscreen="False" IsPassword="False" IsRequiredForForm="False" ItemStatus="" ItemType="" LocalizedControlType="tool bar" Name="Notification" Orientation="None" ProcessId="5312" RuntimeId="42.988984" x="0" y="0" width="0" height="0" />

This should be addressed by our RC2 release.
Thanks for the patience.


ngclient: target directory creation is missing

ngclient has so far copied the legacy client decision of downloading files to the same directory structure as the repository uses. It has however removed the code that creates the directory structure.
So downloading any targets with paths like "path/to/file" will fail because the local directories do not exist.

I think this is actually a good time to get rid of this idea of using target paths as local path with directories (as it has several issues, not just that we don't create the subdirectories)... I'll take this

We might want to fix this with #1412
https://github.com/theupdateframework/python-tuf/issues/1412#issuecomment-917966743

This is in practice blocked by #1587 : The legacy tests do not include any targets with sub directories (!) and I can't be bothered to add them, will wait for #1587
I also suppose this one makes #1576 trickier to test (as the downloads just won't work).

I think this is actually a good time to get rid of this idea of using target paths as local path with directories (as it has several issues, not just that we don't create the subdirectories)... I'll take this

@jku I am sorry I created a commit before reading this issue and noticing you are assigned to it.
I created one commit possibly solving that issue: https://github.com/theupdateframework/python-tuf/pull/1591/commits/6f108c9a1f7822b863b0118d8159e108b850bca8, but the question remains do we want
to further support targetpaths as local paths.
What other do you mean besides this one if we consider targetpaths as local paths?

@jku I am sorry I created a commit before reading this issue and noticing you are assigned to it.
I created one commit possibly solving that issue: 6f108c9,

That's fine, I'm sure you needed to do something to test -- and we are annoyingly touching the same bits of code. We'll see how bad the merging/rebasing gets...

but the question remains do we want to further support targetpaths as local paths.

I don't want to create local directories based on a URL -- a specific TUF implementation might know that is a reasonable thing to do but I don't think the library can know that. I'm suggesting we use the whole target path (url encoded) as a filename, and then also offer a way for the client application to decide the filepath themselves (so if the client knows using target path as path is safe, it can create the directories).