Qunatize glm-4v-9b with INT8 Quantization

Describe the bug
Trying to Qunatize glm-4v-9b with INT8 Qunatization
Tried to follow https://docs.vllm.ai/en/latest/quantization/int8.html Example , But it seems to be for Instruct Model and not for MultiModel.
Expected behavior
it should be Qunatized by using ShareGPTV4 Dataset.
Environment
Include all relevant environment information:

OS [e.g. Ubuntu 20.04]: Ubuntu 22.04
Python version [e.g. 3.7]: 3.10
LLM Compressor version or commit hash [e.g. 0.1.0, f7245c8]: 0.3.1
ML framework version(s) [e.g. torch 2.3.1]: 2.5.1+gitabbfe77
Other Python package versions [e.g. vLLM, compressed-tensors, numpy, ONNX]: vLLM
Other relevant environment information [e.g. hardware, CUDA version]: AMD W7900 with Rocm 6.3

To Reproduce
Exact steps to reproduce the behavior:
Tried to use Example as here - https://docs.vllm.ai/en/latest/quantization/int8.html
But seems its for Instruct Based model, Below is the script i was trying.
from transformers import AutoProcessor, GlmForCausalLM
from llmcompressor.transformers import oneshot
from llmcompressor.modifiers.quantization import GPTQModifier
from llmcompressor.modifiers.smoothquant import SmoothQuantModifier

MODEL_ID = "/model/glm-4v-9b"
model = GlmForCausalLM.from_pretrained(
    MODEL_ID, device_map="auto", torch_dtype="auto", trust_remote_code=True
)
tokenizer = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)

from datasets import load_dataset

NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 2048

ds = load_dataset("/model/ShareGPT4V-dataset", 'ShareGPT4V', split="train")
ds = ds.shuffle(seed=42)
ds = ds.select(range(NUM_CALIBRATION_SAMPLES))

# Configure the quantization algorithms
recipe = [
    SmoothQuantModifier(smoothing_strength=0.8),
    GPTQModifier(targets="Linear", scheme="W8A8", ignore=["lm_head"]),
]

# Apply quantization
oneshot(
    model=model,
    dataset=ds,
    recipe=recipe,
    max_seq_length=MAX_SEQUENCE_LENGTH,
    num_calibration_samples=NUM_CALIBRATION_SAMPLES,
    trust_remote_code_model=True
)

Errors
Traceback (most recent call last):
  File "/model/glm-4v/quan_experiments/quant-glm4v-int8.py", line 28, in <module>
    oneshot(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/llmcompressor/transformers/finetune/text_generation.py", line 82, in oneshot
    main(model_args, data_args, training_args)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/llmcompressor/transformers/finetune/text_generation.py", line 333, in main
    stage_runner.populate_datasets(tokenizer=tokenizer, add_labels=add_labels)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/llmcompressor/transformers/finetune/runner.py", line 115, in populate_datasets
    tokenized_dataset = dataset_manager.tokenize_and_process(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/llmcompressor/transformers/finetune/data/base.py", line 161, in tokenize_and_process
    dataset = self.map(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/llmcompressor/transformers/finetune/data/base.py", line 229, in map
    return dataset.map(**kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 560, in wrapper
    out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2971, in map
    return self.remove_columns(remove_columns)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 560, in wrapper
    out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/datasets/fingerprint.py", line 442, in wrapper
    out = func(dataset, *args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2164, in remove_columns
    raise ValueError(
ValueError: Column name ['text'] not in the dataset. Current columns in the dataset: []

Additional context
Not very sure if the Script is correct or dataset can be used in this way for MultiModel. Please help, Thanks.

Hey @kylesayrs - are any of the new multimodal pathways ready for trialing?

Hi @citrix123! You can now quantize ChatGLM by checking out the kylesayrs/gptq-partition branch and running the script below. Full support for this VLM and others will be a part of the next llm-compressor release.
Please let me know if this script works for your use case!
glm_example.py
```
import requests
from PIL import Image
from io import BytesIO
from transformers import AutoProcessor
from llmcompressor.transformers import oneshot
from llmcompressor.modifiers.quantization import GPTQModifier
from datasets import load_dataset
from llmcompressor.transformers.tracing import ChatGLMForConditionalGeneration
from llmcompressor.transformers.utils.data_collator import glm_data_collator
MODEL_ID = "THUDM/glm-4v-9b"
model = ChatGLMForConditionalGeneration.from_pretrained(
MODEL_ID, device_map="auto", torch_dtype="auto", trust_remote_code=True
)
processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)
NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 2048
ds = load_dataset("Lin-Chen/ShareGPT4V", "ShareGPT4V", split=f"train[:{NUM_CALIBRATION_SAMPLES}]")
ds = ds.shuffle(seed=42)
def preprocess(example):
url_part = "/".join(example["image"].split("/")[1:])
url = f"http://images.cocodataset.org/{url_part}"
response = requests.get(url)
response.raise_for_status()
image = Image.open(BytesIO(response.content)).convert('RGB')
return processor.apply_chat_template(
    [
        {
            "role": "user",
            "image": image,
            "content": example["conversations"][0]["value"],
        }
    ],
    add_generation_prompt=True,
    tokenize=True,
    return_tensors="pt",
    return_dict=True,
)

ds = ds.map(preprocess, remove_columns=ds.column_names)
Configure the quantization algorithms
recipe = [
GPTQModifier(
targets="Linear",
scheme="W8A8",
sequential_targets=["GLMBlock"],
ignore=["transformer.output_layer", "re:transformer.vision.*"],
),
]
Apply quantization
oneshot(
model=model,
dataset=ds,
recipe=recipe,
max_seq_length=MAX_SEQUENCE_LENGTH,
num_calibration_samples=NUM_CALIBRATION_SAMPLES,
trust_remote_code_model=True,
data_collator=glm_data_collator,
)
</details>

Hi @kylesayrs , Thanks for the script and information !
It worked and ran for a about ~3 hours but than I hit the error.
/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py:248: UserWarning: ChatGLMForConditionalGeneration fails layer-wise assumptions
  warnings.warn(f"{model_name} fails layer-wise assumptions")
/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py:252: UserWarning: Falling back to basic pipeline, which requires extra memory and
may result in decreased accuracy
  warnings.warn(
Calibrating:   0%|                                     | 0/512 [00:05<?, ?it/s]
Traceback (most recent call last):
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_quantize.py", line 161, in quantize_weight
    H = torch.linalg.cholesky(H)
torch._C._LinAlgError: linalg.cholesky: The factorization could not be completed because the input is not positive-definite (the leading minor of order 8834 i
s not positive-definite).

Please find the Traceback below, I am using compressed-tensors latest commit, because 0.8.1 version dont have update_offload_parameter
Please let me know if i am doing something wrong in here ! Thanks

 Traceback
Traceback (most recent call last):
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py", line 221, in on_initialize
    run_sequential(
  File "/model/llm-compressor/src/llmcompressor/pipelines/sequential/pipeline.py", line 64, in run_pipeline
    forward_function(model, **inputs)
  File "<string>", line 7, in forward
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 711, in forward
    mlp_output = self.mlp(layernorm_output)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 647, in forward
    output = self.dense_4h_to_h(intermediate_parallel)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1844, in _call_impl
    return inner()
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1803, in inner
    hook_result = hook(self, args, result)
  File "/model/llm-compressor/src/llmcompressor/modifiers/utils/hooks.py", line 69, in wrapped_hook
    return hook(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py", line 319, in compress_module
    loss, quantized_weight, scale, zero_point, g_idx = quantize_weight(
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_quantize.py", line 166, in quantize_weight
    raise ValueError(
ValueError: Failed to invert hessian due to numerical instability. Consider increasing GPTQModifier.dampening_frac, increasing the number of calibration samples, or shuffling the calibration dataset

Traceback (most recent call last):
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py", line 238, in on_initialize
    run_layer_sequential(
  File "/model/llm-compressor/src/llmcompressor/pipelines/layer_sequential/pipeline.py", line 56, in run_pipeline
    layer(**inputs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
TypeError: GLMBlock.forward() missing 1 required positional argument: 'rotary_pos_emb'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/model/glm-4v/quan_experiments/quant-glm4v-int8-community.py", line 62, in <module>
    oneshot(
  File "/model/llm-compressor/src/llmcompressor/transformers/finetune/text_generation.py", line 84, in oneshot
    main(model_args, data_args, training_args)
  File "/model/llm-compressor/src/llmcompressor/transformers/finetune/text_generation.py", line 413, in main
    stage_runner.one_shot()
  File "/model/llm-compressor/src/llmcompressor/transformers/finetune/runner.py", line 163, in one_shot
    self.trainer.one_shot(calibration_data=calib_data, stage=stage)
  File "/model/llm-compressor/src/llmcompressor/transformers/finetune/session_mixin.py", line 440, in one_shot
    apply(
  File "/model/llm-compressor/src/llmcompressor/core/session_functions.py", line 184, in apply
    return active_session().apply(
  File "/model/llm-compressor/src/llmcompressor/core/session.py", line 212, in apply
    self.initialize(**kwargs)
  File "/model/llm-compressor/src/llmcompressor/core/session.py", line 158, in initialize
    mod_data = self._lifecycle.initialize(
  File "/model/llm-compressor/src/llmcompressor/core/lifecycle.py", line 126, in initialize
    data = mod.initialize(state=self.state, **extras)
  File "/model/llm-compressor/src/llmcompressor/modifiers/stage.py", line 124, in initialize
    modifier.initialize(state, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/modifiers/modifier.py", line 118, in initialize
    initialized = self.on_initialize(state=state, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py", line 256, in on_initialize
    run_basic(state.model, state.data.calib)
  File "/model/llm-compressor/src/llmcompressor/pipelines/basic/pipeline.py", line 20, in run_pipeline
    model(**batch)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 1179, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 1179, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 1049, in forward
    hidden_states, presents, all_hidden_states, all_self_attentions = self.encoder(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 787, in forward
    layer_ret = layer(
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 711, in forward
    mlp_output = self.mlp(layernorm_output)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl
    return forward_call(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/transformers/tracing/glm/modeling_chatglm.py", line 647, in forward
    output = self.dense_4h_to_h(intermediate_parallel)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1844, in _call_impl
    return inner()
  File "/opt/conda/envs/py_3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1803, in inner
    hook_result = hook(self, args, result)
  File "/model/llm-compressor/src/llmcompressor/modifiers/utils/hooks.py", line 69, in wrapped_hook
    return hook(*args, **kwargs)
  File "/model/llm-compressor/src/llmcompressor/modifiers/quantization/gptq/base.py", line 306, in compress_module
    self._hessians[module],
KeyError: Linear(in_features=13696, out_features=4096, bias=False)

Hi @citrix123,
The torch._C._LinAlgError can occur due to numerical instability in the GPTQ algorithm. This can be solved by shuffling your dataset. If you try a few seeds and that doesn't work, you can increase the GPTQModifier.dampening_frac parameter, although you may seem slightly decreased performance if it comes to this.
except torch._C._LinAlgError:
    raise ValueError(
        "Failed to invert hessian due to numerical instability. Consider "
        "increasing GPTQModifier.dampening_frac, increasing the number "
        "of calibration samples, or shuffling the calibration dataset"
    )

Hi @kylesayrs
Thanks for the guidence :)
It worked perfectly, But when i tried adding below 2 lines to save the model. It got killed due to OOM.
do you see the same behaviour at your side ?
# Apply quantization
oneshot(
    model=model,
    dataset=ds,
    recipe=recipe,
    max_seq_length=MAX_SEQUENCE_LENGTH,
    num_calibration_samples=NUM_CALIBRATION_SAMPLES,
    trust_remote_code_model=True,
    data_collator=glm_data_collator,
    output_dir=SAVE_DIR // This was added by me.
)

processor.save_pretrained(SAVE_DIR) // This was added by me.

Please let me know if this is correct way to save the mode.

@citrix123 There was a memory bug that affected specifically versions transformers <= 4.46.0 | accelerate == 1.1.0, 1.1.1
I'll attempt to replicate on my side, please check the versions of these two libraries on your side.

It seems i have all updated versions.
# pip list | grep -E 'accelerate|transformers'
accelerate                        1.2.1
transformers                      4.47.1

Is this some other issue ?


toggle 'markdownify-menu' buttons visibility

When in preview mode, hide 'markdownify-menu' buttons.

you want to hide every other buttons in preview mode ?

yes. In preview mode, we do not need edit buttons in edit toolbar.


parametrize docker image ligato/vpp-agent to satisfy also ARM64 platform

Signed-off-by: Stanislav Chlebec<EMAIL_ADDRESS>Where the docker image is used ligato/vpp-agent in different Dockerfiles it was replaced by parameter.
The parameter is going to be set up in the file .mk/docker.mk
Description
Parameter VPP_AGENT is used to define proper docker image according to detected platform x86_64 or aarch64
Motivation and Context
This change is required if we want to have docker building process on ARM64 platform executed by command: make k8s_save
How Has This Been Tested?

[ ] Covered by existing integration testing
[ ] Added integration testing to cover
[x] Tested locally
[ ] Have not tested

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
It should be somewhere mentioned where is the point where it is possible to change version of ligato/vpp-agent docker image

@rdimitrov could you check this to see if it runs?

@edwarnicke I will try it 👍

@stanislav-chlebec @edwarnicke @nickolaev
Built the images on both ARM64 and x86-64 and it went successful, so okay from my side.
Nice! 👍
PS.
Just noticed a couple of small things:

Passing a build-arg introduces a warning when the arg is not used, for ex. for each non-vppagent related build:
[Warning] One or more build-args [VPP_AGENT] were not consumed
For ARM64, the vppagent image doesn't have the kafka config file and we try to delete it, so during build time we have:
rm: cannot remove '/opt/vpp-agent/dev/kafka.conf': No such file or directory
Resolve the failed DCO check

@stanislav-chlebec are you canceling this PR?

Well it seems that yes
It happened due to my inexperience with git☺
I attempted to sign-off one of those commit but I did it in a bad way
I am not sure if it is possible to revert
If not I will reconstruct it and prepare a new PR.
Sorry.
Stan
From: Nikolay Nikolaev<EMAIL_ADDRESS>Sent: Monday, March 11, 2019 4:01 PM
To: networkservicemesh/networkservicemesh<EMAIL_ADDRESS>Cc: Stanislav Chlebec<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [networkservicemesh/networkservicemesh] parametrize docker image ligato/vpp-agent to satisfy also ARM64 platform (#818)
@stanislav-chlebechttps://github.com/stanislav-chlebec are you canceling this PR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/networkservicemesh/networkservicemesh/pull/818#issuecomment-471575412, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Aek0u4suOmGV2yF6HyP2r-Uztw-hUe9nks5vVm-sgaJpZM4blT2e.

@stanislav-chlebec  git checkout -b recover 5fa131c?

Here it is - https://pastebin.com/vzKL661Q

Thanks
It helped.
S.
From: Radoslav Dimitrov<EMAIL_ADDRESS>Sent: Monday, March 11, 2019 4:08 PM
To: networkservicemesh/networkservicemesh<EMAIL_ADDRESS>Cc: Stanislav Chlebec<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [networkservicemesh/networkservicemesh] parametrize docker image ligato/vpp-agent to satisfy also ARM64 platform (#818)
Here it is - https://pastebin.com/vzKL661Q
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/networkservicemesh/networkservicemesh/pull/818#issuecomment-471578468, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Aek0uyn25v8EjJvBlE9Os1BXavtxjDrjks5vVnFYgaJpZM4blT2e.


redesign Metadata class to be able to hold the style-related attributes

v0.4.13-SNAPSHOT, the Metadata class is a plain key-value store as Map<String,String>
{
  "URL.fragment": "content",
  "URL.host": "baeldung.com",
  "URL.path": "/articles",
  "URL.port": "80",
  "URL.protocol": "https",
  "URL.query": "topic\u003djava\u0026version\u003d8"
}

On the other hand, in the HTML report, I want to present the Metadata with certain styles like this:

I implemented this styling in a way heavily dependent on Groovy MarkupBuilder. The implementation is very tricky; difficult to understand, is not easily maintainable.
Now I want to move from Groovy to Java, want to use FreeMarker instead of MarkupBuilder. How to implement this minute styling with FreeMarker?
I think that I should re-design the Metadata class to be information rich; able to carry the style-related information.

{
  "URL.fragment": "content",
  "URL.host": "baeldung.com",
  "URL.path": "/articles",
  "URL.port": "80",
  "URL.protocol": "https",
  "URL.query": "topic\u003djava\u0026version\u003d8"
}

done at 0.4.14


VariableBindableEffectField is missing blur

I'm trying to set the blur value of a shadow effect to a variable, but it seems that's the one field i can't set. Types seem to not even specify blur as a bindable effect field.
declare type VariableBindableEffectField = 'color' | 'radius' | 'spread' | 'offsetX' | 'offsetY'

My fault, turns out radius is what I'm looking for! 🤦


"Stores" field should not show a ProgressBar

Hi everyone,
When we edit a product, we can add Stores.
However, we don't have (yet) an auto-completion for this field.
But even, we should a ProgressBar for nothing, as we don't have any.
So the fix here is to remove this mechanism for the particular case of Stores.
Video
https://github.com/openfoodfacts/smooth-app/assets/246838/85c62258-a5f2-46cf-aa27-ce9bdb46a3d8

I can work on this :)

I can work on this :)

Ok, but just ask for one issue at a time, please


Added a feature for caching all kind of images to Amazon s3 for a signed in voter

Caching and storing twitter profile , background and banner images to AWS for a signed in voter

👍  Thank you @jainanisha90!


publish new version on crates.io

Hi,
Could you push the newest version to crates.io?
Thanks in advance!

Done. Sorry for the delay and thanks for the ping. Happy hacking 😄


Option to disable some error logs

My Model 3 is a leased vehicle, therefore I have not full access to alle data of the car. For example, I can't view my charing history. Normaly there is menu point in the Tesla App, but I don't have it. I already called with Tesla and my Leasing provider, they say I have not access because I'm not the primary vehicle owner.
Because of this fact I get regularly "access denied" errors from the Tesla adapter. For users like me, it would be nice if we could disable known error logs. Would that be conceivable?

with the 1.3.5 version you can exclude some endpoints is this working for you?

I have version 1.3.2. I will try right now.

I updated my adapter and now I am wonder a little bit. As I can remember there was an endpoint folder calling like "charge history" or something like that. But now I can't see this folder, is it removed from adapter? For me it's no problem I don't have acces to this data :-)


feat(tutorial): complete step 5 - Rochester

@dstanich @andrewvanheuklon
Deployed app url: http://carbon-tutorial-rdahlman3.mybluemix.net/#/

Looks good.  I've marked your step 5 as complete.  You can shut down the cloud app from the dashboard if you want.
Our records show you have completed all 5 steps!


Add JMX predicate pushdown for node

This PR addresses #2286 and implements predicate pushdown for the node column for the jmx split manager.

Merged.  Thanks


Update lint command following go-oscal validate updates

https://github.com/defenseunicorns/go-oscal/pull/77
Will need to follow suit for consuming the ValidateCommand function.

Waiting on go-oscal release.

Blocks testing for a couple of commands in Lula.
Creating those tests should be an easy lift.


Access webserver hosted on WSL2 from other devices in same network.

When I host the webserver from windows with ipv4 as its hostname I was able to access the website
from my mobile devices under the same network. But doing this under wsl2 ubuntu doesn't work.
When I try to run django webserver with the ip assigned to wsl2 instance, I cannot access the webserver
even from same windows device. The webserver is accessible only when it runs on <IP_ADDRESS> . How can I
access my wsl2 webserver from other devices under same network.
I would be very happy if you could provide me with a solution or even better release this feature on next update.

A large range of solutions are discussed in this issue https://github.com/microsoft/WSL/issues/4150.
The 2 main approaches are using a TCP proxy on the windows side (docs here), or by setting up a bridge mode adapter (this method is undocumented and experimental).

If you're looking for a quick way (and are familiar with Node.js/npm), simply run npx expose-wsl before starting your server.
More details here: https://github.com/icflorescu/expose-wsl

If you're looking for a quick way (and are familiar with Node.js/npm), simply run npx expose-wsl before starting your server. More details here: https://github.com/icflorescu/expose-wsl

This is the best option so far form my point of view. a) because the chance is high that your dev env already has node, even many IDE's require it for some code and spell checks, etc. and b) it is REALLY doing all by itself. Even installing missing dependencies when running the command. It took me 5 seconds with WSL 2 and Win 11 / Debian after searching and buggin garound for days. This option should be more exposed to researchers, maybe in the windows issue queues or on top of WSL README's etc.


License Missing

Can you please provide a license for your code like MIT or BSD so that people can use it. No one has the right to use your code until you do so.

Ok, I've added one.


New project using colly

Hello ! I saw that you maintain a list of open-source projects which use colly on the readme. I've created a quote scrapper in golang, goquotes.
Feel free to add it :) ( or not )
EDIT: I forgot to mention that colly is really a project which improved my workflow a lot, so thanks to all of you :) !

@jesuiscamille Glad colly has come in handy for you!  I think you should open up a PR and add your project to the README.


Crash in Envoy when using dynamic opentracing driver

I am developing Pinpoint Opentracing C++ Tracer and try to use Envoy's dynamic opentracing config to integrate with Istio.
When testing with Envoy in isio/proxyv2:1.4.6 docker image, Envoy segfaults on request to the proxy.
(gdb) bt
#0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x0000561f87faeab5 in Envoy::SignalAction::sigHandler(int, siginfo_t*, void*) ()
#2  <signal handler called>
#3  0x0000561f879ab8a4 in Envoy::Extensions::Tracers::Common::Ot::(anonymous namespace)::OpenTracingHTTPHeadersReader::headerMapCallback(Envoy::Http::HeaderEntry const&, void*) ()
#4  0x0000561f87f981ba in Envoy::Http::HeaderMapImpl::iterate(Envoy::Http::HeaderMap::Iterate (*)(Envoy::Http::HeaderEntry const&, void*), void*) const ()
#5  0x0000561f879ab82d in Envoy::Extensions::Tracers::Common::Ot::(anonymous namespace)::OpenTracingHTTPHeadersReader::ForeachKey(std::__1::function<opentracing::v2::expected<void, std::__1::error_code> (opentracing::v2::string_view, opentracing::v2::string_view)>) const ()
#6  0x00007f762bbd5c62 in pinpoint::TextMapPropagator::Extract(opentracing::v2::TextMapReader const&, pinpoint::PinpointTracer const*) const () from /root/libpinpoint_opentracing.so
#7  0x00007f762bbe27c5 in pinpoint::PinpointTracerImpl::Extract(opentracing::v2::HTTPHeadersReader const&) const () from /root/libpinpoint_opentracing.so
#8  0x0000561f879aa3b9 in Envoy::Extensions::Tracers::Common::Ot::OpenTracingDriver::startSpan(Envoy::Tracing::Config const&, Envoy::Http::HeaderMap&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > >, Envoy::Tracing::Decision) ()
#9  0x0000561f87dea1c4 in Envoy::Tracing::HttpTracerImpl::startSpan(Envoy::Tracing::Config const&, Envoy::Http::HeaderMap&, Envoy::StreamInfo::StreamInfo const&, Envoy::Tracing::Decision) ()
#10 0x0000561f87d39a7f in Envoy::Http::ConnectionManagerImpl::ActiveStream::traceRequest() ()
#11 0x0000561f87d3904e in Envoy::Http::ConnectionManagerImpl::ActiveStream::decodeHeaders(std::__1::unique_ptr<Envoy::Http::HeaderMap, std::__1::default_delete<Envoy::Http::HeaderMap> >&&, bool) ()
#12 0x0000561f87d4c36b in Envoy::Http::Http1::ServerConnectionImpl::onMessageComplete() ()
#13 0x0000561f87d4b075 in Envoy::Http::Http1::ConnectionImpl::onMessageCompleteBase() ()
#14 0x0000561f87d4edbd in Envoy::Http::Http1::ConnectionImpl::$_7::__invoke(http_parser*) ()
#15 0x0000561f87e2fcc2 in http_parser_execute ()
#16 0x0000561f87d4a35a in Envoy::Http::Http1::ConnectionImpl::dispatchSlice(char const*, unsigned long) ()
#17 0x0000561f87d4a13f in Envoy::Http::Http1::ConnectionImpl::dispatch(Envoy::Buffer::Instance&) ()
#18 0x0000561f87d34a71 in Envoy::Http::ConnectionManagerImpl::onData(Envoy::Buffer::Instance&, bool) ()
#19 0x0000561f87b28edb in Envoy::Network::FilterManagerImpl::onContinueReading(Envoy::Network::FilterManagerImpl::ActiveReadFilter*, Envoy::Network::ReadBufferSource&) ()
#20 0x0000561f87b25e3d in Envoy::Network::ConnectionImpl::onReadReady() ()
#21 0x0000561f87b258fd in Envoy::Network::ConnectionImpl::onFileEvent(unsigned int) ()
#22 0x0000561f87b200b0 in Envoy::Event::FileEventImpl::assignEvents(unsigned int)::$_0::__invoke(int, short, void*) ()
#23 0x0000561f87e2961b in event_process_active_single_queue ()
#24 0x0000561f87e27cde in event_base_loop ()
#25 0x0000561f87b17278 in Envoy::Server::WorkerImpl::threadRoutine(Envoy::Server::GuardDog&) ()
#26 0x0000561f87fb1a63 in Envoy::Thread::ThreadImplPosix::ThreadImplPosix(std::__1::function<void ()>)::$_0::__invoke(void*) ()
#27 0x00007f762e60f6db in start_thread (arg=0x7f76015e9700) at pthread_create.c:463
#28 0x00007f762e33888f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

However, it works when using Envoy in the envoyproxy/envoy docker image. Envoy versions are both the same. (1.12.0)
I googled and found that similar issues were reported in Jaeger native tracing before. (https://github.com/istio/istio/issues/16321)
And, the issue of ABI compatibility has been posted on the Envoy github.(https://github.com/envoyproxy/envoy/issues/9055)
In my opinion, I think ABI compatibility is the cause.
So, I want to know the C++ toolchain used to build Envoy that is being used in Istio proxy. I would like to build my Pinpoint c++ tracer and test it using this toolchain.
The compiler version I use is as follows.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 201609

Thanks.

@mandarjog @kyessenov

In 1.4 we uses RemoteBuildExecution to build release artifacts, so not sure how hard it would be to use the same tool chain to compile other things. Here is the rbe toolchain options: https://github.com/istio/proxy/blob/aa9f6a9eadad401d8630be220af2ee8a033a2fdb/.bazelrc#L101-L121 1.4 uses, and this is the toolchain container release artifacts built from: https://pantheon.corp.google.com/marketplace/details/google/rbe-ubuntu16-04?_ga=2.219931865.1163394825.1586215093-1356317842.1555554402

We use clang8/9 and libc++. This is probably an ABI incompatibility with gcc-built library.


proposing Linting options

the commit will not pass travis as app.js needs to be cleaned up, this is to just get the option on the table
more info on options available at http://jshint.com/docs/options/

The following options are deprecated and we should consider not using them (I have additional comments below on a few of these which will be moot if we remove them):

camelcase
immed
indent
maxlen
newcap
noempty
quotmark

I think that eqeqeq should perhaps be false. There are times where the additional type comparison is not necessary. I don't have a particularly strong opinion about this, though, so would be fine if we left it as true.
I believe that Cloudant has traditionally used 2 spaces for indents (indent) instead of 4. I don't really care, but I've tried to stay consistent with the Cloudant style guide.
Should we limit maxlen at 80, or give a little more wiggle room at maybe 120?
I find myself using increment and decrement operators from time to time (plusplus). I don't see the harm in allowing this.
I don't see trailing in the list of JSHint options.

@bradley-holt updated proposed options...  thoughts?

+1
The deprecated indent option is still in there. I'm fine with it as is, but just wanted to check that this was intentional. The JSCS rules look good to me.
How do we want to merge this? I'm assuming we fix all the checks here in this branch before merging?

@bradley-holt ill fix up the indent thing...  Yeah im gonna have to fix all the issues to merge this...

+1


Wrong Phase in imaginary part

The CrankNicolson1D class produces an wrong complex phase, comparing to the time-evoution
operator! This seems to be a systemsize specific issue!
Furtunately both GPU and CPU Solvers produce the same output! Therefore the issue has to do something with the implementation of the Matrix generation/multiplication!
To be fixed/investigated ASAP!

Fixed with  commit https://github.com/s0vereign/QonGPU/commit/a313b76de0efe370012d0328ed9879dc28285ce9 ! It seems like the inital Phase of psi = phi_0 + i * 0
causes problem in the algorithm or at least in the implementation! This commit hotfixed this issue, by applying the Time Evolution Operator for a short time and using this phase as psi(t==0)! TODO: More tests for at least one complete phase!


Apply trim_microhomology to combiner.py

Currently, trim_microhomology is used in call_csvtag, but it is not necessary. Instead, combiner.py requires trim_microhomology, so it should be applied there.

Solved https://github.com/akikuno/csvtag/commit/65515436e454929d50242dfb3651b44ead9802e5


[Feature] Bahasa Indonesia Translation

Is your feature request related to a problem? Please describe.**
Not really. I'm working on localization to Bahasa Indonesia but it's not supported yet, so I just translate a scenario in the EN file, and upload it as a NEW ISSUE.
Describe the solution you'd like
Please add an option for Bahasa Indonesia language (ID). thank you.
Describe alternatives you've considered
that's it.
Additional context
At first it's just for playing with my family but I want to try introduce valkyrie to my community here.

thank you very much for the kind reply, I will gladly provide some assistance with the translation as best as I can. @vidimus @antontimmermans

@jariterbang Here is the text from the official app. You will need to translate it to provide Indonesian language support for Valkyrie, if possible. Please contact first with one of the developers to see if adding Indonesian language is possible or not before starting the translation.
Mansions of Madness 2ed - Text from the app.xlsx


[release-1.21] Drop SupportedFeatures from gateway-api

Manual cherrypick required.
#52132 failed to apply on top of branch "release-1.21":
Applying: Drop SupportedFeatures from gateway-api
Using index info to reconstruct a base tree...
M	pilot/pkg/config/kube/gateway/conversion.go
A	pilot/pkg/config/kube/gateway/supported_features.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/config/kube/gateway/fuzz_test.go
CONFLICT (content): Merge conflict in pilot/pkg/config/kube/gateway/fuzz_test.go
Auto-merging pilot/pkg/config/kube/gateway/conversion.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 Drop SupportedFeatures from gateway-api
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

This code does not exist on 1.21 already


creating key in backend at s3://<IP_ADDRESS>/test-bucket failed:  unsupported protocol scheme ""

I have a local S3 cluster, both riak cs and swift deployted in the lab, not on AWS
s3cmd and other tools can read/write/make/delete buckets and objects without issues
i set  AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment to match
my credentials, when running
restic init -r s3://<IP_ADDRESS>/test-bucket
enter password for new backend:
enter password again:
creating key in backend at s3://<IP_ADDRESS>/test-bucket failed: Put /test-bucket/restic/key/e2130523be50a1ced505d5607b8e35124c21d378cb901bd2de9952d550e72c30: unsupported protocol scheme ""

Could you take a look @howeyc?

+1 the ability to specify any s3 url would be a great plus.

I had a quick look yesterday: We need to specify a way to configured backends in general and the s3 backend in particular so that arbitrary servers can be specified. At the moment it only seems to work with Amazon, this is a limitation that should be rather easy to lift once we have a way to configure backends.

Consider handling backend properties similiar to mount: -o <optlist> [-o <optlist>]  where  is passed to the backed as key(-value) list (multiple optlists joined together). In result it would look like restic [...] -o some-flag,some-key=some-value,other-flag with restic [...] -o some-flag -o some-key=some-value -o other-flag also being supported.

Yeah, that's similar to how openssh handles this, and I like it. Now we need to implement that ;)

sweet, itll be nice since we dont all use AWS for S3 services........especially when we have it locally inhouse...

I have the same issue with
creating key in backend at s3://eu-west-1.amazonaws.com/backup failed: Put /backup/restic/key/7bfc951b6db28bda3daea50ce02df8ffd77ea0bedd7eaae1d8e36bf9c: unsupported protocol scheme ""


Gas limits for queries

It would be nice to be able to set a gas limit for a contract query. This way, we can query arbitrary contracts from another contract and not really worry about out of gas issues or panics.

There is no way to do that in cosmwasm 1.0. The best you can do is run a submessage with a gas limit, and in that submessage do the query.
Panics in the called contract are returned as an error in the query (which can be handled). There is no protection against infinite gas usage.


Balder/minor cleanup of logd

@arnej27959 PR
No semantic changes, at least not intended.

@havardpe PR


TLSProxy: When in debug mode, show the exact subprocess commands

When you want to debug a test that goes wrong, it's useful to know
exactly what subprocess commands are run.
Checklist

[x] tests are added or updated

Merged.
master: 46d5e2b42e00ec392bf3326743519bc25136db09
1.1.0: af50d454f9914a7c5864832087ea73caff1b4aae

my hero.

Aw, you made me blush :-)


Implement user guide for relationships

Proposed Changes
Add a user guide for using the Relationships feature.

Justification
There is not currently a user guide and we want to have guides for all of the advanced features including examples and common usage patterns. This feature especially could benefit from examples of source/destination filter expressions, common issues, how to test your relationships, etc.

@jathanism I am happy to take this on.  I'm currently learning netbox and nautobot so I am thinking I could start this in a couple weeks or so.  Would that work?  Is there a timeline you'd like this done?

I think we spoke since you commented here but just for posterity we are trying to get these user guides done for 1.0.0 final release.

Was going to give this a shot; however what beyond https://docs.nautobot.com/projects/core/en/stable/models/extras/relationship/?h=relation
is wanted here? The standard extras doc page already goes quite a bit into an example and details that'd I'd expect in the user guide.

Working on this, please assign to me


[nl] translate placeholders to dutch

Wasn't sure if I had to run the todo generator, it removed the 2 missing validation lines from the dutch translations, but also removed lines from bg and de..

Hello @wouter2203 ,
yes you can run the todo generator.

Thank you


hopefully fixed #7140 (the resize problem on mac)

Need to test that custom window (window with decorations) is resizable on mac. Hopefully fixes #7140

If you put 'fixes #7140' or 'closes #7140' GitHub will automatically link the issue to this PR and merging the PR will automatically close the issue. It just helps everyone keep track of things.

Someone needs to test this change on Mac, since I am out of Mac temporarily. I tested the change on windows with USE_MANAGED_DRAG set to true and some one slight modifications.

Friends, can someone please, do the review and the Mac test? I do not want this fix to go down the memory hole

I was going to try it today, but found some problems with my mac, I don't usually use it. Will try it again later today.

I was going to try it today, but found some problems with my mac, I don't usually use it. Will try it again later today.

Dan tried it. it did not work, unfortunately. Thanks

Closing due to inactivity and merge conflicts. Please ping me if you're gonna work on this again.


multiple issues with output declarations

page PricingPage {   output PricingPageText showsksoTemplateApp. ProductOfferingText   ... }
This should not compile. First, there should be a space between shows and ksoTemplateApp. Second, there should be a record keyword between shows and ksoTemplateApp. Third, there should not be a space between ksoTemplateApp. and ProductOfferingText. The correct syntax would be:
page PricingPage{   output PricingPageText shows record ksoTempateApp.ProductOfferingText   ... }

I will try to get to this tomorrow

It turns out this syntax is actually legal.  I reformatted the AST, and for the output element it yielded:
output PricingPageText shows type ksoTemplateApp.ProductOfferingText. This shows that it differentiated the shows keyword and accepted the type name without the keyword.  The only surprising part there is that the keyword did not require space after it.  This is a general problem throughout the language and needs to be fixed everywhere. Big job.


Registration or submission fails: Error: Post "/outbox": unsupported protocol scheme ""

Call to client.ToCollection() are not including the fedbox hostname in the URL argument, resulting in http client requests failing.
littr .env:
# HOSTNAME is used as the base for the absolute URLs in the site
HOSTNAME=littr.brokedown.net
# LISTEN_PORT is the port number that the application will listen on for connections
LISTEN_PORT=3000
# LISTEN_HOST is the host/ip that the application will listen on for connections
LISTEN_HOSTNAME=littr
# ENV the environment type sets different configuration settings, valid are: DEV, QA, STAGING, PROD
ENV=DEV
# API_URL is the url of the fedbox instance that provides our C2S ActivityPub API
API_URL=http://fedbox.local
# SESS_AUTH_KEY is used for encrypting the session data
SESS_AUTH_KEY=1234567890123456
# SESS_ENC_KEY
SESS_ENC_KEY=6543210987654321
# OAUTH2_KEY the default OAuth2 key used by the frontend to connect to the C2S ActivityPub end-points
OAUTH2_KEY=8b80de04-b72b-455f-aab3-4cada26e47c5
# OAUTH2_SECRET the default OAuth2 secret used by the frontend
OAUTH2_SECRET=server
# SESSIONS_BACKEND the backend to use for session storage, valid: cookie, fs
SESSIONS_BACKEND=cookie
# DISABLE_SESSIONS setting this to true, makes the instance essentially read only, by disallowing user logins
DISABLE_SESSIONS=false
# DISABLE_DOWNVOTING disables allowing Dislike activities
DISABLE_DOWNVOTING=false
# DISABLE_VOTING disables all Like/Dislike activities
DISABLE_VOTING=false

fedbox .env:
HOSTNAME=fedbox.local
LISTEN=fedbox.local:80
ENV=dev
STORAGE=fs
STORAGE_PATH=/tmp/data/fedbox

Environment is a docker container with hosts entries for littr resolving to container's IP and others resolving to <IP_ADDRESS>.

This tells me that the littr.brokedown.net OAuth2 application wasn't configured.
Check the FedBOX documentation for adding an OAuth2 application and use the UUID it outputs and the password you provided as OAUTH2_KEY and OAUTH2_SECRET.
This seems to be a pain point in the docs, so I'll try to spend some time to clarify the situation.

I've gone through the boottrapping and oauth2 creation (and subsequent updating of the .env file) multiple times while debugging, removing fedbox's data as well, including just now. Here's what i've done:
root@16c5aeb083ad:~/go/src/github.com/ProjectHoot/fedbox# rm -rf /tmp/data/fedbox
root@16c5aeb083ad:~/go/src/github.com/ProjectHoot/fedbox# mkdir /tmp/data/fedbox
root@16c5aeb083ad:~/go/src/github.com/ProjectHoot/fedbox# bin/ctl bootstrap
root@16c5aeb083ad:~/go/src/github.com/ProjectHoot/fedbox# ./bin/ctl --env=dev ap actor add admin
admin's pw:
pw again:
Added "Person" [admin]: http://fedbox.local/actors/e4e61764-d0fd-4491-8f0a-a4b9ef89379b
root@16c5aeb083ad:~/go/src/github.com/ProjectHoot/fedbox# bin/ctl --env=dev oauth client add --redirectUri http://littr.brokedown.net/auth/fedbox/callback
client's pw:
pw again:
Client ID: 1072a0f3-17fe-41ed-8882-b36baf5999af

then I update littr's .env file for the client ID 1072a0f3-17fe-41ed-8882-b36baf5999af and the client pw I entered in the last step
OAUTH2_KEY=1072a0f3-17fe-41ed-8882-b36baf5999af
# OAUTH2_SECRET the default OAuth2 secret used by the frontend
OAUTH2_SECRET=server
# SESSIONS_BACKEND the backend to use for session storage, valid: cookie, fs

After restarting littr and opening a new incognito window, I am able to log in with the admin user I created in the previous step. After logging in, attempts to add a new item fail as noted in the title. After logging out, registration also fails as in the title.

OK, I think I understand better now. I'll try to reproduce on my side. Could you please confirm if the oauth2 application actor has an /outbox collection?
What do you get in the browser if you go to http://fedbox.local/actors/1072a0f3-17fe-41ed-8882-b36baf5999af/outbox ?

it appears not. i've done naother iteration so the ID is changed again.
ERRO[0767] Not Found                                     addr="<IP_ADDRESS>:54564" elapsed="701.76µs" id=16c5aeb083ad/bV9FoqBFXN-000040 len=8452 method=GET proto=HTTP/1.1 scheme=http status=404 ts="Tue, 14 Jul 2020 15:50:26 UTC" ua=curl/7.68.0 uri="http://fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/outbox"
curl -v http://fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/outbox
*   Trying <IP_ADDRESS>:80...
* TCP_NODELAY set
* Connected to fedbox.local (<IP_ADDRESS>) port 80 (#0)
> GET /actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/outbox HTTP/1.1
> Host: fedbox.local
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Content-Type: application/json
< Date: Tue, 14 Jul 2020 15:50:26 GMT
< Transfer-Encoding: chunked
<
{"@context":"http://fedbox.local/ns#errors","errors":[{"status":404,"message":"/tmp/data/fedbox/dev/fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/outbox not found","trace":[{"file":"github.com/go-ap/errors@v0.0.0-20200610194301-39b7d0cbba26/errors.go","line":79,"calee":"github.com/go-ap/errors.wrap(0x0, 0x0, 0xc1d92e, 0xc, 0xc0000117c8, 0x1, 0x1, 0x0, 0x0, 0x0, ...)"},{"file":"github.com/go-ap/errors@v0.0.0-20200610194301-39b7d0cbba26/errors.go","line":42,"calee":"github.com/go-ap/errors.Annotatef(...)"},{"file":"github.com/go-ap/errors@v0.0.0-20200610194301-39b7d0cbba26/http.go","line":54,"calee":"github.com/go-ap/errors.wrapErr(0x0, 0x0, 0xc1d92e, 0xc, 0xc0000117c8, 0x1, 0x1, 0x0, 0x0, 0x0, ...)"},{"file":"github.com/go-ap/errors@v0.0.0-20200610194301-39b7d0cbba26/http.go","line":109,"calee":"github.com/go-ap/errors.NotFoundf(...)"},{"file":"github.com/go-ap/fedbox/storage/fs/repository.go","line":775,"calee":"github.com/go-ap/fedbox/storage/fs.repo.loadFromPath.func1(0xc0000d0180, 0x54, 0x0, 0x0, 0xd33380, 0xc0005e2060, 0x6, 0x1)"},{"file":"path/filepath/path.go","line":404,"calee":"path/filepath.Walk(0xc0000d0180, 0x54, 0xc000011a30, 0x14, 0xc4d928)"},{"file":"github.com/go-ap/fedbox/storage/fs/repository.go","line":773,"calee":"github.com/go-ap/fedbox/storage/fs.repo.loadFromPath(0xc0000a0780, 0x13, 0xc0000a0820, 0x14, 0xc4d928, 0xc4d928, 0xd327a0, 0xc0003a4600, 0xc000011b28, 0x770893, ...)"},{"file":"github.com/go-ap/fedbox/storage/fs/repository.go","line":159,"calee":"github.com/go-ap/fedbox/storage/fs.(*repo).LoadCollection(0xc000097b90, 0xd327a0, 0xc0003a4600, 0x0, 0x0, 0x0, 0x0)"},{"file":"github.com/go-ap/fedbox/app/handlers.go","line":63,"calee":"github.com/go-ap/fedbox/app.HandleCollection.func1(0xc0000c03f1, 0x6, 0xc000140b00, 0x7f4a604682f0, 0xc000097b90, 0x0, 0xc1697e, 0x1, 0x0)"},{"file":"github.com/go-ap/handlers@v0.0.0-20200630121116-d3d7a2315572/handlers.go","line":163,"calee":"github.com/go-ap/handlers.CollectionHandlerFn.ServeHTTP(0xc4d890, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/chain.go","line":31,"calee":"github.com/go-chi/chi.(*ChainHandler).ServeHTTP(0xc0000a31c0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":431,"calee":"github.com/go-chi/chi.(*Mux).routeHTTP(0xc000095200, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc00009ac60, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":70,"calee":"github.com/go-chi/chi.(*Mux).ServeHTTP(0xc000095200, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":298,"calee":"github.com/go-chi/chi.(*Mux).Mount.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae360, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":431,"calee":"github.com/go-chi/chi.(*Mux).routeHTTP(0xc0000951a0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc00009ac50, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":70,"calee":"github.com/go-chi/chi.(*Mux).ServeHTTP(0xc0000951a0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":298,"calee":"github.com/go-chi/chi.(*Mux).Mount.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae400, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/chain.go","line":31,"calee":"github.com/go-chi/chi.(*ChainHandler).ServeHTTP(0xc0002b0a40, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":431,"calee":"github.com/go-chi/chi.(*Mux).routeHTTP(0xc000095080, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc00009ac20, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":70,"calee":"github.com/go-chi/chi.(*Mux).ServeHTTP(0xc000095080, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":298,"calee":"github.com/go-chi/chi.(*Mux).Mount.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae4a0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":431,"calee":"github.com/go-chi/chi.(*Mux).routeHTTP(0xc000095020, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc00009ac10, 0x7f4a60468068, 0xc0000a25c0, 0xc000140b00)"},{"file":"github.com/go-ap/fedbox/app/middleware.go","line":61,"calee":"github.com/go-ap/fedbox/app.ActorFromAuthHeader.func1.1(0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0000a3000, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/middleware/get_head.go","line":37,"calee":"github.com/go-chi/chi/middleware.GetHead.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae0e0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/middleware/realip.go","line":34,"calee":"github.com/go-chi/chi/middleware.RealIP.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae100, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":70,"calee":"github.com/go-chi/chi.(*Mux).ServeHTTP(0xc000095020, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":298,"calee":"github.com/go-chi/chi.(*Mux).Mount.func1(0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae6e0, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":431,"calee":"github.com/go-chi/chi.(*Mux).routeHTTP(0xc000094900, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc00009af00, 0x7f4a60468068, 0xc0000a25c0, 0xc000140a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/middleware/logger.go","line":46,"calee":"github.com/go-chi/chi/middleware.RequestLogger.func1.1(0xd417e0, 0xc0002c41c0, 0xc000252a00)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002b4f90, 0xd417e0, 0xc0002c41c0, 0xc000252a00)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/middleware/request_id.go","line":76,"calee":"github.com/go-chi/chi/middleware.RequestID.func1(0xd417e0, 0xc0002c41c0, 0xc000252900)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002ae700, 0xd417e0, 0xc0002c41c0, 0xc000252900)"},{"file":"github.com/go-ap/fedbox/app/middleware.go","line":21,"calee":"github.com/go-ap/fedbox/app.Repo.func1.1(0xd417e0, 0xc0002c41c0, 0xc000252800)"},{"file":"net/http/server.go","line":2012,"calee":"net/http.HandlerFunc.ServeHTTP(0xc0002b4fc0, 0xd417e0, 0xc0002c41c0, 0xc000252800)"},{"file":"github.com/go-chi/chi@v4.1.2+incompatible/mux.go","line":86,"calee":"github.com/go-chi/chi.(*Mux).ServeHTTP(0xc000094900, 0xd417e0, 0xc0002c41c0, 0xc000252700)"},{"file":"net/http/server.go","line":2807,"calee":"net/http.serverHandler.ServeHTTP(0xc0002c4000, 0xd417e0, 0xc0002c41c0, 0xc000252700)"},{"file":"net/http/server.go* Connection #0 to host fedbox.local left intact
","line":1895,"calee":"net/http.(*conn).serve(0xc0002b2d20, 0xd45e20, 0xc0002b6780)"},{"file":"net/http/server.go","line":2933,"calee":"created by net/http.(*Server).Serve"}],"location":"github.com/go-ap/errors@v0.0.0-20200610194301-39b7d0cbba26/http.go:54"}]}

What does tree /tmp/data/fedbox/dev/fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531 give you[1]?
If there's a __raw.json in it, could you also paste it here?
[1] Or the corresponding path outside your docker container

tree /tmp/data/fedbox/dev/fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531

|-- __meta_data.json
`-- __raw.json

0 directories, 2 files

cat /tmp/data/fedbox/dev/fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/__raw.json

Hmm, I didn't think to ask, but are you using latest master with fedbox?
The structure should be something similar to this:
tree .cache/dev/fedbox.git/actors/4f449c81-1dbb-4108-b1a3-5a83926a0fbf
├── inbox
├── __meta_data.json
├── outbox
└── __raw.json

As a workaround you can create the two folders outbox and inbox in the folder and it should work.

I am up to date with the current master, yes.
After creating the inbox and ourbox files, the curl call seems to work:
{"@context":"https://www.w3.org/ns/activitystreams","id":"http://fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531/outbox","type":"OrderedCollection","totalItems":0}root@16c5aeb083ad:/tmp/data/fedbox/dev/fedbox.local/actors/2241cb6e-c3cf-4b66-9865-dfd9ce32c531#
However the littr app calls have the same result as before.
INFO[0009] loaded account from session
ERRO[0009] http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox?type=Like&type=Dislike&type=Undo: Unable to load from the AP end point: invalid status 404
ERRO[0009] Post "/outbox": unsupported protocol scheme ""
ERRO[0009] Error: unable to save item                    before="Post \"/outbox\": unsupported protocol scheme \"\""
INFO[0009] session saved
INFO[0009] OK                                            duration=3.379755ms host=littr.brokedown.net https=false id=16c5aeb083ad/Et0JoycInm-000002 length=0 met=POST proto=HTTP/1.1 status=302 uri=/submit
INFO[0009] loaded account from session
ERRO[0009] http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox?type=Like&type=Dislike&type=Undo: Unable to load from the AP end point: invalid status 404
INFO[0009] session saved
INFO[0009] OK                                            duration=8.362144ms host=littr.brokedown.net https=false id=16c5aeb083ad/Et0JoycInm-000003 length=18950 met=GET proto=HTTP/1.1 status=200 uri=/submit

I went ahead and creeated inbox and outbod directories in /tmp/data/fedbox/dev/fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659 (the created admin user's uuid) and I'm able to perform a similar curl request successfully:
{"@context":"https://www.w3.org/ns/activitystreams","id":"http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox","type":"OrderedCollection","totalItems":0}

again this didn't change the ability to add content etc via littr.

fedbox log from trying to create a post after adding the inbox/outbox for the adminuser:
INFO[0669] OK                                            addr="<IP_ADDRESS>:54616" elapsed="552.251µs" id=16c5aeb083ad/VwYgi6hH97-000048 len=971 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:00 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors?name=admin&type=Person&type=Service&type=Group&type=Application&type=Organization"
ERRO[0669] Invalid bucket fedbox.local/authorize         code=FT0LkpORRo2LFxERSr7Vag
INFO[0669] OK                                            addr="<IP_ADDRESS>:54616" elapsed="539.452µs" id=16c5aeb083ad/VwYgi6hH97-000049 len=205 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:00 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox?type=Like&type=Dislike&type=Undo"
INFO[0672] OK                                            addr="<IP_ADDRESS>:54616" elapsed="531.589µs" id=16c5aeb083ad/VwYgi6hH97-000050 len=971 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:03 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors?name=admin&type=Person&type=Service&type=Group&type=Application&type=Organization"
ERRO[0672] Invalid bucket fedbox.local/authorize         code=FT0LkpORRo2LFxERSr7Vag
INFO[0672] OK                                            addr="<IP_ADDRESS>:54616" elapsed="531.587µs" id=16c5aeb083ad/VwYgi6hH97-000051 len=205 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:03 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox?type=Like&type=Dislike&type=Undo"
INFO[0672] OK                                            addr="<IP_ADDRESS>:54616" elapsed="507.021µs" id=16c5aeb083ad/VwYgi6hH97-000052 len=971 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:03 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors?name=admin&type=Person&type=Service&type=Group&type=Application&type=Organization"
ERRO[0672] Invalid bucket fedbox.local/authorize         code=FT0LkpORRo2LFxERSr7Vag
INFO[0672] OK                                            addr="<IP_ADDRESS>:54616" elapsed="520.19µs" id=16c5aeb083ad/VwYgi6hH97-000053 len=205 method=GET proto=HTTP/1.1 scheme=http status=200 ts="Tue, 14 Jul 2020 16:20:03 UTC" ua=littr.brokedown.net-3fa9885-git uri="http://fedbox.local/actors/89717cdc-c063-48be-b0a5-1e826f035659/outbox?type=Like&type=Dislike&type=Undo"

It seems like I was looking in the wrong direction. The problem seems to be related to the boltdb oauth storage. I still can't reproduce on my end, but maybe it's related to the docker setup.
Do you have a fedbox-local-oauth-dev.bdb file in the storage path?
If so, can you tell me if you can navigate inside it using museli/thunder and if it has the authorize bucket:
[.cache/fedbox-git-oauth-dev.bdb /] # ls /
fedbox.git/
1 keys in bucket
[.cache/fedbox-git-oauth-dev.bdb /] # ls fedbox.git/
access/
authorize/
clients/
refresh/
4 keys in bucket```

There is no authorize bucket:
[fedbox-local-oauth-dev.bdb /] # ls fedbox.local
access/
clients/
refresh/
3 keys in bucket

My docker container is a ubuntu:20.04 base with go1.14.4
After creating an empty authorize bucket, littr seems to fail during starting and throws 502 errors for any requests, so i've removed it again.

Could you please try to walk me through reproducing your setup? A docker-compose file would be great, but I can try to do it manually.
I can't think why the three buckets were created but not the authorize one. :(

OK, the setup is not the issue. I could reproduce on my side starting everything from scratch.
I'll ping back when I have a fix.

OK standing by!

GHey @squash I pushed a new commit to fedbox, that fixes the fact that for badger, fs and pgx storage backends the OAuth2 boltdb database wasn't being properly generated.
I could test with creating the admin user from the command line, and also by registering a user from the web interface of go-littr.
Please use this last version and let me know if it fixes the problem for you.

This doesn't seem to fix the issue. I've done a clean checkout and fresh build, removed my old data dir and started from scratch.
I still don't have inbox or outbox directories created for actors. the boltdb file now has an empty authorize bucket, and the littr app is still unable to create either a user or a post.

i should clarify that the littr instance is still showing the same issue as the initial post, trying to do a post request without the hostname.

So, while I explore different ways to reproduce this, could you please help me get your docker setup working?

I've created a simple (sloppy, apologies) docker setup to replicate my setup, zip file attached. You'll need to edit runcontainer.sh to set your hostname/passwords and set up proxying to port 8080 yourself of course.
test.zip

Thank you, I'm finally making some progress, but I don't have a fix yet. I'll probably come back during the w/e with a solution.
(PS. Sorry for spamming, but I'm excited that people are using my thing)

Great to hear, we REALLY appreciate your support with this!

As a side-note, both fedbox and go-littr have working independent docker configurations.
There is a docker-compose setup I started on go-littr, but I got stuck at how I pass the OAUTH credentials from the fedbox container to the go-littr container environment. If you guys are interested in using docker for your setup, you can take a look at that and maybe find way to make it work. I'll gladly accept any PR in that direction.

OK, I think my latest changes in fedbox fixed this issue. Please give it a test and let me know.
However looking at your usage for fedbox I must warn you that in order for ActivityPub service to service functionality to work (basically that's the federated part of ActivityPub) it needs to be exposed on the internet. Go-Littr is just a client for it, it doesn't really fulfill any ActivityPub related functionality.
It's true that fedbox does not federate yet, but that's one of the things that's going to change very soon. :)

I can confirm that the latest updates allow me to log in, comment, register a new user, log in as them, and reply.

Cool. I'm glad we got this sorted, thank you.


fix password reset through routes

Hi all!
This should fix the password reset issues. Turns out it was a route-matching issue.
It relates to the following issue #s:

Fixes #1266

haha, go figure. Thanks for taking a look at this @mdworken . I'll review this shortly.
In the meantime, would you mind refreshing from origin to kill the bundler audit warning that's showing up in ci?
Name: nokogiri
Version: 1.8.1
Advisory: CVE-2017-15412
Criticality: Unknown
URL: https://github.com/sparklemotion/nokogiri/issues/1714
Title: Nokogiri gem, via libxml, is affected by DoS vulnerabilities
Solution: upgrade to >= 1.8.2

Codecov Report

Merging #1381 into master will decrease coverage by 4.34%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1381      +/-   ##
==========================================
- Coverage   93.47%   89.13%   -4.35%
==========================================
  Files          61       61
  Lines        1380     1380
==========================================
- Hits         1290     1230      -60
- Misses         90      150      +60

Impacted Files
Coverage Δ

app/controllers/patients_controller.rb
56.75% <0%> (-43.25%)
:arrow_down:

app/models/concerns/exportable.rb
59.25% <0%> (-37.04%)
:arrow_down:

app/helpers/pledges_helper.rb
71.42% <0%> (-28.58%)
:arrow_down:

app/models/concerns/attribute_displayable.rb
71.42% <0%> (-7.15%)
:arrow_down:

app/helpers/patients_helper.rb
93.75% <0%> (-6.25%)
:arrow_down:

app/models/audit_trail.rb
94.73% <0%> (-5.27%)
:arrow_down:

app/controllers/application_controller.rb
95% <0%> (-5%)
:arrow_down:

Continue to review full report at Codecov.

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

@colinxfleming done, all tests pass now, too :)

This is looking good to me! Tested the routing pretty intensely and I'm satisfied that this fixes our password reset routing issue without accidentally opening up a gap somewhere else. Nicely done, @mdworken !


Add sed command to TF VAR tenant and subscription IDs

When following the instructions as written, the two variables had quotes around the values, which resulted in errors in the next steps. Adding the sed command to remove leading/trailing double quotes resolved the error.

@dixoncrews won't be using sed. You'll have to find another way. sed changes based on Linux/Mac OS. Need something more generic.

@andybouts this is one for you to review and verify.

suggest adding "--output tsv", e.g.
az account show --query tenantId --output tsv

@enderm Yep, that does it!

Hey @thpang , I can review the tf helper script, but I believe my tf helper script already does what they are doing.  I certainly did not use sed,  but instead parsed the output for a value.

Hey @dixoncrews , long time since we last spoke.  We might want to review and make sure the tf helper script I provided does the same thing.  I didn’t like keeping track of the tf env vars so I wrote the script to make it easier.

@andybouts you are correct the code has that option already set. Thx.

All, suggest you use this script  ... it works well and can be run as often as you want ... I also have suggested commands at the bottom that print out in case your credential needs to be reset, which happens enough to me that it's annoying.  This script already included the changes that you pushed to the md.


Exception when not initialized in Application.onCreate

I have a use case in which I can't initialize JobManager in Application.onCreate (I'm using android-job in a library and I don't have access to the application's Application class).
Now, if I schedule a job which is run after the application closes, the job will be run without initializing JobManager and I will get the exception:
IllegalStateException: You need to call create() at least once to create the singleton

This can easily be solved if JobManager is created before being used in PlatformJobService.onStartJob using the service context if the singleton doesn't already exist.
Could you add this change to the project? I could do it myself if you approve.

Interesting, but how do you attach your job creator in this case?

I attach the the Jobcreator once my library is initialized. The problem is my library isn't necessarily initialized in Application.onCreate,  the user can initialize it in any arbitrary place, such as Activity.onCreate.

But then you job won't run at all. The JobManager will ask all JobCreators if they can create a job for the specific tag. Your creator won't be called, because you haven't registered the creator, yet.
I only see the option that you need to tell the users of your lib to initialize your library in the Application.onCreate() method.

If for example I call JobCreator in Activity.onCreate, the JobManager will call my JobCreator form then on and jobs are scheduled and run. The problem is when application is not running, this exception (IllegalStateException) is raised. I may initialize JobCreator in a service so as it exists even app is closed but if user force-close the app, this exception will happen again.
As I cannot prevent occurrence of this exception in this scenario, I need this exception to not happen. At least even f my jobs are not running, the app still can have its normal behaviour.
@vRallev

Fixed in version 1.0.10. Thanks for your feedback!

Thanks for update. It is really helping.
By the way, I am curious about a solution that completely resolve this issue. I mean while google gcmNetworkManager has no problem even when the app which is using it for scheduling its task is closed; it seems to me that this problem can be completely avoided here too. Maybe by relying on some sort of permanent storage (like SharedPref, a file or DB) for handling jobs when AlarmManager is used for scheduling jobs.
Am I correct or there is some other considerations that I missed?

My guess is that GCM is using reflection internally. We at Evernote decided against it. Class name mappings may change between versions and could result in undesired behavior.


add dev channel 1.9.2 to pick image changes missed

Signed-off-by: dongdwdw<EMAIL_ADDRESS>

The failure results from IBM internal repo pulling. This requires special setting from github side. So
just neglect this.


dm_control.rl.control.PhysicsError: Physics state is invalid. Warning(s) raised: mjWARN_BADQACC

I am running the task "dog-walk", and this error always happens in different training steps. This task should fix some bug?

Interesting. Could you try reducing the physics timestep (or possibly using integrator="RK4" if your code is somehow tied to the 5ms) and seeing if that solves it?
You are not doing anything wrong, timesteps are often chosen to be as large as possible (for speed) without leading to divergence (what you are seeing). I suppose that when we were training this env our agent was a bit less aggressive and we could get away with 5ms, but it looks like that might be too big.


Catching a server timeout

🔍 Before submitting the issue

[x] I have searched among the existing issues
[x] I am using a Python virtual environment

🐞 Description of the bug
Hello, I'm running PyFluent on a SLURM HPC environment where the amount of Ansys HPC licenses is finite. It is very often that I'm not able to find licenses and my code terminates with the following output:
INFO:
Queuing for license HPC_PARALLEL has been initiated.
      The application will resume once the license is granted.
      Please use the lmutil lmstat utility to see who is currently using the license.

E1112 15:56:51.479564186  195523 server_chttp2.cc:40]        {"created":"@1731419811.479514442","description":"Only 1 addresses added out of total
2resolved","file":"/home/staff/kkripa/tfsagent/_work/20/b/.conan/data/grpc_base/1.25.0/thirdparty/stable/build/1036933dfdff90461d4bf4154f59e6aa78392d87/grpc/src/core/ext/transport/chttp2/server/chttp2_server.cc","file_line":403,"referenced_errors":[{"created":"@1731419811.479495877","description":"Address family not supported by protocol","errno":97,"file":"/home/staff/kkripa/tfsagent/_work/20/b/.conan/data/grpc_base/1.25.0/thirdparty/stable/build/1036933dfdff90461d4bf4154f59e6aa78392d87/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc","file_line":395,"os_error":"Address family not supported by protocol","syscall":"socket","target_address":"[::1]:46831"}]}
Information: The server has started and is running.

Application is timed out, aborting ...

/mnt/apps/prebuilt/ansys/2023R2/ansys_inc/v232/fluent/fluent23.2.0/bin/fluent: line 2973: 195523 Aborted                 (core dumped) $NO_RUN $CORTEX_PRE $EXE -f $FLUENT_PROD $CX_FLAGS "$CX_FUNCTION"
pyfluent.general WARNING: Fluent Cortex properties unobtainable. 'force exit()' and othermethods are not going to work properly. Proceeding...

Is there a way (other than increasing the timeout to infinite) to catch this error, in order to re-launch FLUENT? I have tried the classic try/except but it seems that this error is internal.
📝 Steps to reproduce
Using:
        self.solver = pyfluent.launch_fluent(dimension=3,
                                            precision='double',
                                            mode="solver",
                                            gpu=True,
                                            processor_count=16,
                                            ui_mode=gui,
                                            additional_arguments="-gu -cflush",
                                            cleanup_on_exit=True)

💻 Which operating system are you using?
Linux
📀 Which ANSYS version are you using?
ANSYS FLUENT 2023R2
PyFluent 0.21 (cannot really update right now)
🐍 Which Python version are you using?
3.11
📦 Installed packages
-

@christospliakos Please check if the following solution works.

Set the environment variable PYFLUENT_WATCHDOG_EXCEPTION_ON_ERROR to 1.
Catch LaunchFluentError from launch_fluent.

from ansys.fluent.core.launcher.error_handler import LaunchFluentError
try:
    solver = pyfluent.launch_fluent(...)
except LaunchFluentError as ex:
    <relaunch code>


Date time to Snapshot height convert

[ ] Create Bifrost/Karura/Moonriver backend services to serve time to block height convert ( Scan and save block head only )

@hyifeng Scan and save all the block head is not acceptable.
Suppose:

targetHeight = the wanted height
estimatedTime = estimated block time
expectedTime = expected target time
blockTime = the average time to produce one block

A possible way:

Set targetHeight = latest height
Get the block time of targetHeight, and set it to estimatedTime.
If the gap between estimatedTime and expectedTime is smaller than for example 3 * blockTime, then we use this block.
Estimate the target block height with each block time
If the gap between estimatedTime and expectedTime is smaller than for example 3 * blockTime, then we use this block.


LiteDB Studio takes forever to connect 2gb data file

I have 2 gb of Data file and LiteDb Studio takes forever to connect. I guess it's trying to read all the collection/documents in memory for something while connection because the memory usage just keeps increasing in task manager.
I am closing it now after 3 minutes.
Screen 1

Screen 2

Hi @vickyrathee, yes, there is no memory managment in LiteDB Studio if you query big documents (limit only in 1000 document, but if each document are too big LiteDB Studio will crash).
I will implement some memory limit result according document size. Will add this issue in my project

If you are just open a old database, this long time was to convert into new version. Use around 1Gb is default (has some variables can be drop this size but will take long time to process).
Maybe a better user message or upgrade progress bar can help in this case.


Enabling addons will put height: 12px on div wrapper around PreviewConnected and make preview invisible

After upgrading to v5 we're seeing this issue where if addons are enabled the preview is not showing up. After digging into the elements in the devtools I noticed the div that wraps PreviewConnected has following inline style:
style="height: 12px; left: 0px; top: 0px; width: 1460px;"

Screenshots

Code snippets
.storybook/addons.js
import '@storybook/addon-actions/register';
import '@storybook/addon-links/register';
import '@storybook/addon-knobs/register';

// .storybook/config.js
import { configure } from '@storybook/react';
import registerTheme from '../src/utils/registerTheme';

registerTheme();

// automatically import all files ending in *.stories.js
const req = require.context('../stories', true, /.stories.tsx$/);
function loadStories() {
  req.keys().forEach((filename) => req(filename));
}

configure(loadStories, module);

// .storybook/webpack.config.js
module.exports = ({ config }) => {
  config.module.rules.push({
    test: /\.tsx?$/,
    loader: 'babel-loader',
    exclude: /node_modules/,
  });

  config.resolve.extensions.push('.ts', '.tsx');

  return config;
};

package.json
 "@storybook/addon-actions": "^5.0.1",
    "@storybook/addon-info": "^5.0.1",
    "@storybook/addon-knobs": "^5.0.1",
    "@storybook/addon-links": "^5.0.1",
    "@storybook/addons": "^5.0.1",
    "@storybook/react": "^5.0.1",
    "@types/chrome": "0.0.77",
 "@types/storybook__addon-actions": "^3.4.2",
    "@types/storybook__addon-knobs": "^4.0.3",
    "@types/storybook__addon-links": "^3.3.4",
    "@types/storybook__react": "^4.0.1",

System:

OS: MacOS
Device: Mac
Browser: Chrome
Framework: React
Addons: see snippt
Version: see package.json

Additional context
Add any other context about the problem here.

This is not happening in an Incognito window so I am assuming it's some Chrome extension messing with the layout.


Units are shown in wrong incident

Affects Version 1.1.0
If there are multiple incidents visible for the unit, all incidents contain all units, even if the units are assigned to some incidents.
Fix: Filter to units which are actually assigned to incident.

will be fixed with >=1.1.1


python311Packages.msgspec: 0.18.5 -> 0.18.6

Diff: https://github.com/jcrist/msgspec/compare/refs/tags/0.18.5...0.18.6
Changelog: https://github.com/jcrist/msgspec/releases/tag/0.18.6
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 283271 run on x86_64-linux 1

6 packages built:

gallia
gallia.dist
python311Packages.msgspec
python311Packages.msgspec.dist
python312Packages.msgspec
python312Packages.msgspec.dist


Detect ending carriage return or punctuation in fmt.Fatalf

The linter detects carriage returns or punctuation at the end fo fmt.Errorf, why shouldn't it do so for fmt.Fatalf?

fmt.Errorf returns an error, while log.Fatalf (there is no fmt.Fatalf) logs to stderr. It’s perfectly reasonable to log messages to contain punctuation or carriage returns at the end.


Drop arbitrary limit on splat arguments

What is the deal with a numeric limit on splat() arguments? Why not just specify unlimited by default? If anyone wants to limit it to 1 he could always optionally pass that integer. But a limit between 1 and 999 seems quite arbitrary to me.

That's a good question. I don't recall the details, so I have to look at the sources again. Is the limit causing an issue for you?
Maybe @Tieske could shed some light if he still remembers as I believe he introduced it in the first place.

Not directly an issue but it's weird and counter intuitive API behaviour.
If I do a command like:
# takes a list of items and calculates the price of each
myproject calc "item 1" "item 2" "item3"

I expect that:
cli:splat("ITEMS", "list of items for which to calculate the price")
-- and not:
-- cli:splat("ITEMS", "list of items for which to calculate the price", nil, 999)

is enough to allow a list of multiple items. If there were just one item I would not be using splat() in the first place, but rather use option.

I don't recall why, probably has to do with implementation details. First thing that comes to mind is formatting error messages.
But from a functional perspective I don't see why this could not be changed.

I studied the code, and the maximum amount is also used to determine if enough parameters have been given on the command line; with 0 options being a valid amount.

Hey @n0la, I've spent some time going over the splat argument logic and dropped the arbitrary limit of 999 and made the default behaviour to accept an unlimited number of repetitions. Since that's a breaking API change, we must do it in a major release.
Please check it out if you can so that can proceed.


Cannot install dependency matplotlib

🐛 Bug Report

[N/A - didn't get that far ] 📁 I've Included a ZIP file containing my librephotos log files
[x] ❌ I have looked for similar issues (including closed ones)
[ ] 🎬 (If applicable) I've provided pictures or links to videos that clearly demonstrate the issue

📝 Description of issue:
Installation fails with missing dependencies:
ERROR: Could not find a version that satisfies the requirement matplotlib==3.9.0 (from -r requirements.txt (line 23)) (from versions: 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.4.0, 1.4.1rc1, 1.4.1, 1.4.2, 1.4.3, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.0.0b1, 2.0.0b2, 2.0.0b3, 2.0.0b4, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.0.1, 2.0.2, 2.1.0rc1, 2.1.0, 2.1.1, 2.1.2, 2.2.0rc1, 2.2.0, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 3.0.0rc2, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0rc1, 3.1.0rc2, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0rc1, 3.2.0rc3, 3.2.0, 3.2.1, 3.2.2, 3.3.0rc1, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0rc1, 3.4.0rc2, 3.4.0rc3, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.5.0b1, 3.5.0rc1, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.6.0rc1, 3.6.0rc2, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.7.0rc1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5)
ERROR: No matching distribution found for matplotlib==3.9.0 (from -r requirements.txt

It seems that only v3.1.2 is available in the ubuntu repository.
I tried using the instructions here: https://matplotlib.org/stable/install/index.html for a nightly build, but that only installed v3.7.5
🔁 How can we reproduce it:
git clone https://github.com/LibrePhotos/librephotos-linux.git
cd librephotos-linux
./install-librephotos.sh

Please provide additional information:

💻 Operating system: Ubuntu 20.04.6 LTS
⚙ Architecture (x86 or ARM): x86
🔢 Librephotos version: Downloaded using git 12 hours ago
📸 Librephotos installation method (Docker, Kubernetes, .deb, etc.): "./install-librephotos.sh"

How can I get the right version for my OS?

The local install option is no longer maintained and deprecated. Please use docker-compose instead.


Implement methods lower()/islower() for unicode based on Cpython

The PR is continuation of other one.

@densmirn thanks for this, I see some of the references to the cpython source code are referencing master.  It would be better, if they could reference a specific commit instead, to make sure the references don't end up pointing to the wrong code snippet as the upstream code changes.

Could you please close the PR and switch to https://github.com/numba/numba/pull/4651 which includes the changes?

@densmirn - you got it.


Random Password Generator

Description
Add the length of password you want
Add special characters/ number or a capital alphabet if you want ...just tick the desired option and hit enter ..... boom your in password is ready
Screenshots
No response
Additional information
using HTML CSS JS

@Jaideep25-tech  bro ye bhi kr dena ... thank you

@AyushSingh22 kindly assign this  please...

Try to use the proper lines of sentences to describe your issues. @RAHULBAWA777


[Chainlink] Compare costs of storing oracleQueryRunPath on chain vs recreating on demand

Before you start work
Please read our contribution guidelines and if there is a bounty involved  please also see here
If you have ongoing work from other bounties with us where funding has not been released, please do not pick up a new issue.  We would like to involve as many contributors as possible and parallelize the work flow as much as possible.
Please make sure to comment in the issue here immediately after starting work so we know your plans for implementation and a timeline.
Please also note that in order for work to be accepted, all code must be accompanied by test cases as well.
User Story
As a user, I always want to spend less gas!
Why Is this Needed?
Summary: After creating the ChainLinkQuery struct, we are storing the string[] oracleQueryRunPath for later use with on demand queries.  It may be better to just recreate it, rather than storing it, which is expensive.
Description
Type: Feature / comparison of benefits
Solution
Summary: Compare gas costs of requestOnDemandQuery when creating oracleQueryRunPath[] during that call vs when we store it in our struct to see which is better.
Definition of Done

[ ] analysis of gas costs for both approaces
[ ] suggestion on better approach
[ ] implementation post review by @MARKETProtocol/core

Closing.


[WIP] Add object detection query sampler

Still WIP. Adds a query sampler for object detection using the uncertainty strategies on the bounding box with highest prediction probability.

Do we also need to add
<EMAIL_ADDRESS>opencv-python==<IP_ADDRESS>

into the requirements for the recipe to work?

Yes, I have added keras-retinanet. opencv should not be required as it is installed by retinanet


⚠ Processors has degraded performance

In 7bd8f44, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 54 ms

Resolved: Processors performance has improved in c8862a7.


api: Terminate Gracefully

Feature request
In the event the apiserver needs to stop (example - from a SIG_TERM signal), the server should gracefully terminate.
Use case

Gracefully stop inbound and outbound gRPC/HTTP requests in the event the kubelet stops the apiserver container.

/remove-lifecycle stale

/lifecycle frozen

/area roadmap


Fix Category list layout overlapping.

I want to merge this change because...

#1138 Category list layout overlap with the side bar.
PR intended to be tested with API branch:
Screenshots
Before:

After:

Pull Request Checklist

This code contains UI changes

Test environment config

API_URI=https://qa.staging.saleor.cloud/graphql/

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Executing Roslaunch commands inside a running container

Hi,
I am trying to run autoware with carla. Autoware is running as a container in linux machine. now after starting the container, with the following commands
docker run
-d
-it --rm
--volume=$(pwd)/autoware-contents:/home/autoware/autoware-contents:ro
--env="DISPLAY=${DISPLAY}"
--privileged
--net=host
$RUNTIME
carla-autoware:latest, the container is up
now I want to launch my launch files to start the auotware nodes using
roslaunch carla_autoware_agent carla_autoware_agent.launch town:=Town04 synchronous_mode:=true
with out entering into the container so I tried to run with docker exec, I am getting the following error
OCI runtime exec failed: exec failed: unable to start container process: exec: "roslaunch": executable file not found in $PATH: unknown
How do I run the roslaunch command in a linux machine without entering into the container either using shell script.

Hi @tecena,
When the docker is running, you can send it a command similar to this docker ps | grep -Eo '([0-9]|[a-z]){12}' | xargs -I %% docker exec --user autoware --env-file='$DIR_WHERE_YOUR_ENV_LIST_IS/env-list' %% roslaunch carla_autoware_agent carla_autoware_agent.launch town:=Town04 synchronous_mode:=true and to over come the error you will need to specify the environment variables. To do that, echo out the env variables from the docker container to a file and transfer to your host from which you will be running the above command. Let me know how you go!... Good luck!


Create ~/iden3/wallet directories if needed

On first run, the wallet app fails to create the DB ~/iden3/wallet/ doesn't exist. This ensures the directory exists.

FYI @jimthematrix


Fix revved regex to support extensionless paths

I have an anchor with href='/admin'. I also have a file 'admin.css' in my assets directory.
After running usemin, it changed to '/admin.css' because revedRx regex in method RevvedFinder.prototype.getCandidatesFromFS matches.
Why ? Because css extension starts with an hex character.

Added test and fixed build

:+1: awesome

@eddiemonge comments applied and branch rebased !


HTTP header support

Is it possible to pass headers with canary?
My use case is passing the Host header so I can monitor individual webs as well as balancers.

Yep: https://github.com/canaryio/canary/blob/master/pkg/manifest/manifest_test.go#L204

@blalor How do I get past the cert errors
$ MANIFEST_URL=file://hosts.json gopath/bin/canaryd
2015-05-27T22:54:00Z https://<IP_ADDRESS> 0 43.675067 false 1 'x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs'
2015-05-27T22:54:01Z https://<IP_ADDRESS> 0 4.055092 false 2 'x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs'
2015-05-27T22:54:02Z https://<IP_ADDRESS> 0 4.314491 false 3 'x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs'

$ cat hosts.json
{
  "targets": [
    {
      "url": "https://<IP_ADDRESS>",
      "name": "canary",
      "requestHeaders": {
       	"Host": "github.com"
      }
    }
  ]
}

Ah, I see the bug.  Let me see if I can get a PR together quickly.

This ought to address your concern with the Host header not being properly injected:
https://github.com/canaryio/canary/pull/47
I'm going to work on writing a test case or two for that so it doesn't slip again.
After that, I'll take a look at the SSL concerns.  We will likely want to allow for SSL cert validation to be turned off.

Awesome! Thanks for the quick fix.

Alright, just landed a fix for the Host header bit against HTTP.  Testing against that same hosts.json file:
$ MANIFEST_URL=file://hosts.json canaryd
2015-05-28T00:08:35Z http://<IP_ADDRESS> 301 53.696894 true 1
2015-05-28T00:08:36Z http://<IP_ADDRESS> 301 41.516196 true 2
2015-05-28T00:08:37Z http://<IP_ADDRESS> 301 53.206388 true 3
2015-05-28T00:08:38Z http://<IP_ADDRESS> 301 93.008069 true 4

I'll take a stab at the SSL validation bits in a moment.

Using the latest master release w/ the following manifest:
{
  "targets": [
    {
      "url": "https://<IP_ADDRESS>",
      "name": "canary",
      "requestHeaders": {
        "Host": "www.oregon.gov"
      },
      "insecureSkipVerify": true
    }
  ]
}

I am able to:
$ MANIFEST_URL=file://hosts.json canaryd
2015-05-28T00:21:10Z https://<IP_ADDRESS><PHONE_NUMBER>93 true 1
2015-05-28T00:21:11Z https://<IP_ADDRESS><PHONE_NUMBER>51 true 2
2015-05-28T00:21:12Z https://<IP_ADDRESS><PHONE_NUMBER>04 true 3

I think we're good to close here.  Please reopen if you have any questions.


Even a test case takes over 24 hours in zsh; is this normal?

I'm attempting to run tests for zsh using the following command:
python bugscpp/bugscpp.py test ./zsh/buggy-2 --coverage

However, even after 24 hours, not a single test case has been completed:

Is it typical for this test to take such a long time?
Could there be an issue specific to my machine or setup?

I would appreciate any guidance or known issues related to this.

Thank you for reporting this issue.
zsh/buggy-2 is not supposed to take that much time. Additionally, it should work Ubuntu 16.04, 18.04 or 20.4 (I haven’t verified on other environments, so could you please specify your environment?).
I would appreciate it if you could run the test again and let me know the results. Before running the test, please delete the Docker image (hschoe/defects4cpp-ubuntu) and remove the checked-out project.

Currently, I am running the experiment on Ubuntu 22.04.2
I followed your instructions but the test is still taking too long:

Removed the docker image:

Removed and cloned the project repository again.

Built and Ran the Test:


Positional arguments example in docs fails.

When I create a dodo.py that contains the following code from the documentation:
def task_pos_args():
    def show_params(param1, pos):
        print('param1 is: {0}'.format(param1))
        for index, pos_arg in enumerate(pos):
            print('positional-{0}: {1}'.format(index, pos_arg))
    return {'actions':[(show_params,)],
            'params':[{'name':'param1',
                       'short':'p',
                       'default':'default value'},
                      ],
            'pos_arg': 'pos',
            'verbosity': 2,
            }

I get the following error:
ERROR: Task pos_args contains invalid field: 'pos_arg'

pos_arg appears to be what's articulated in the code, but I also couldn't find any specific coverage for this feature in the test suite.

You did not show the command line used. But actually doesnt really matter based in the error message.
Which python version are you using? which version of doit?
I guess you have a really old doit version. Or you are running latest doit with python2 (which is not supported).
How did you install doit? I tried to put many checks to ensure people do not mistakenly install doit in the wrong python version...

Hi,
It seems that it was user error, doit 0.29.0 in my python2 environment doesn't support it, but doit 0.31 naturally does.
Sorry for opening an issue before checking versions, doit is a beautiful tool and one of my favorites to use. Thank you for all your time and effort making such a wonderful project.


shell: Move the call to uart_irq_rx_enable to the enable callback

The uart could get an RX interrupt before the main shell init code has
finished initializing.  The race looks like:
shell.c                   shell_uart.c
shell_init()
->instance_init()
init()
->uart_irq_init()
->uart_irq_callback_user_data_set()
                      RX interrupt
                      uart_rx_handle()
                       ->sh_uart->ctrl_blk->handler

transport_evt_handler()
->k_poll_signal_raise()
->k_thread_create(shell_thread)
Unfortunately, the code that initializes the signals is not run until
the beginning of shell_thread.  But that comes after
k_poll_signal_raise() has alread been called.
Signed-off-by: Bradley Bolen<EMAIL_ADDRESS>Fixes #16080

@lemrey : Please check this patch against your problem.

Actually, there is a better way to handle that. This PR fixes the crash but on the other hand looses bytes received before shell instance thread started. I've  created alternative fix #16093 where I've moved initialization of signals from thread to intance_init. This way it is fixed for all transports that transport is able to receive data and set signal. Signal will be handled once shell instance thread starts.


Fail if remote directory is not found

It currently tries to run git-init if the remote folder is not found. It should fail, instead.

Fixed via 846782bb457d8c878c1b90752aa35bf46dddcb8e.


Vulkan Support?

Excellent work with the webview using OpenGL! Is there any plan to support Vulkan?

There is no support for Vulkan yet, but I will support it in the future.

In the latest update, this plugin has added support for Vulkan with certain limitations. The target Android device must support not only Vulkan but also OpenGL ES, as this plugin depends on the GLES API for specific processes.

Announce
The current Vulkan issue is summarized here.