[feature request] add setting to disable notification

Love the module, but I don't need the notification when the scene view is restored. Would love to have an option to turn it off.

Love the module, but I don't need the notification when the scene view is restored. Would love to have an option to turn it off.

ok will do

for now you can use my other tiny module
https://github.com/misthero/warning-remove
you can configure it ro remove any message 😊

the setting to disable the message has been added


Update documentation link references

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind bug

/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
The doc project has changed its structure, which affects the links on the documentation. This updates the references.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/approve

/lgtm
/approve

/approve


Update from LoIDE config

Check:
https://github.com/DeMaCS-UNICAL/LoIDE/commits/master/config

Completed (9bb47f0)


[Documentation]:

Documentation Issue Description
On AzureOpenAI docs there is typo on this line:
llm = AzureOpenAI(engine="", mode="model name")
need to replace to this (just need to add 'l' to model arguments):
llm = AzureOpenAI(engine="", model="model name")
here the link for the docs: https://gpt-index.readthedocs.io/en/latest/examples/customization/llms/AzureOpenAI.html
can create new branch and fix that ?
Documenation Link
https://gpt-index.readthedocs.io/en/latest/examples/customization/llms/AzureOpenAI.html

This is fixed 👍


Add typespecs to Headers module and remove unnecessary guard

Added

added typespecs for the functions added in #148
added tests for get_content_length/1(won't pass until we have a version with this PR https://github.com/elixir-plug/plug/pull/1155)

Changed

made parse_integer/1 private

Removed

removed an unnecessary guard since the parser can never return a negative integer now
removed tests for parse_integer/1 (replaced by tests for get_content_length/1`)

IMPORTANT NOTE
It's easy to miss if skimming: the updated tests won't pass until we have a version of plug with the above-mentioned PR.

@ryanwinchester can you hold off on this for a day or so until #165 gets over the line?

Yeah we need to wait for a Plug release anyway.

@mtrudel Yeah, we need to wait for a Plug release anyway.

@ryanwinchester if I understand this correctly there's no runtime concern to people still using older version of plug with this merged, correct? It's just a concern for tests?

Good here.
Notes:

dialyzer errors in thousand_island will be resolved when we have https://github.com/mtrudel/thousand_island/commit/50447270eba5676597a5ac727a935cbfe3a34909
I skipped the failing test case and we can unskip when Plug updates.

dialyzer errors from thousand_island will be resolved when we have https://github.com/mtrudel/thousand_island/commit/50447270eba5676597a5ac727a935cbfe3a34909

This is in main now - can you rebase and push up so we can see green CI here?

👍

Thanks for the PR @ryanwinchester !


Address mutations

I want to merge this change because...
implements first 3 items of #2290
Screenshots

Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).

Hey @oldPadavan, thanks for this PR, really appreciate your work here. If you could hold on for now with continuing on this, as just yesterday I and @akjanik were discussing what mutations do we actually need here. @akjanik has a branch that handles managing addresses in the context of "customer" pages in the dashboard, but the PR just hasn't been opened yet. General "CRUD" mutations as those in this PR will be probably needed anyway, but I'd like to first merge those that @akjanik is working on.

@oldPadavan We've sorted out addresses in customer mutations (#2447) and we should merge it today. Your PR looks good and I'd like to merge it as well. I've added one comment in the review.


Fix display of Non Heap memory usage in UI

Good catch, thank you that you looked into this.
You need to rebuild web ui -- https://github.com/prestosql/presto/#building-the-web-ui

@findepi Thanks for pointing it out. Have rebuilt the web ui

Merged, thanks!


Skip existing files

kopy supports this feature, should we make it the default behavior?

should failed,  I think it would get many errors when not use full template files.

This would be very useful for updating generated projects.
Any update on this in regards to v2 ?


Scraper does not pull assessment from 'Examinations' section on ECP

If the course has a separate 'Individual Assignment' and 'Examination' section, the scraper does not grab both tables and won't be able to calculate percentages properly, Eg. INFS3208

I saw that you fixed this with a recent commit, but it must have not been deployed yet to the uqfinal site.

@jaydonhansen I updated the scraper in c96ddd08218009558e4889d94b9f4003c1237a10 but didn't re-run it (it takes a long time). All the reported broken courses at that point had been in the BIOM codes, so I assumed it was something only happening in that school.
Task here is to re-run the UQ scraper

Ah understood. I wonder if what's bottlenecking the performance of the scraper, in theory it's not that many requests but I might be overestimating how many requests UQ's server can deal with.

It's 2 requests / offering (so about 3600 for UQ 2020-2). But to be a nice neighbour to uni websites we don't parallelise the requests

That's fair, we don't want the subject old sign-on thing to happen again..

I'll leave this open until all the data is corrected

This should be fixed in 70424a4242c2239b03ecc4076f00a5a53830e814


Update README.md

Added in several new malware analysis tools as well as removed Malwr as it is no longer available at this time.

👍


DO NOT MERGE! Fast Forward stable to 6bfa390a9d7db0e184379cf108fd3d26840d9910.

This PR will be merged automatically once checks are successful.

This change is

Jenkins job mixer/postsubmit passed

jenkins rebuild mixer/e2e-suite

Jenkins job mixer/e2e-suite passed


python i3ipc updating

Project description
pythonPackages' i3ipc is outdated.
There's already version 2.1.1 available.
Could you update that, please

addressed by #78783


integrating new forecasting API

The new forecasting technique include explicitly the creation of the prediction model (to be call in the assessStrategicIndicators)

#19

Effort: 8 hours


Fix possible copy-paste error?

As title says, this seems to have been a copy-paste error from an editor?
These two commits fixes what seems to be the indented functionality for the script.

Done,


Keep best CP and best IV

Expected Behaviour
release: {
"any": {"keep_best_cp": x, "keep_best_iv": y}
}
Lets you keep your x best CP pokemon as well as your y best iv pokemon.
for example:
release: {
"any": {"keep_best_cp": 1, "keep_best_iv": 1}
}
will keep 2 magikarps:
120cp, 0.54iv
10cp, 0.96iv
Actual Behaviour
Currently, setting both appears to only consider the last rule, in this case it will only keep your y best IV pokemon:
release: {
"any": {"keep_best_cp": x, "keep_best_iv": y}
}
Other Information
OS: Mac OS X
Git Commit: 47cf9db53d986f78cf0cce8a2c6aa5863c29a7c8

It's a good suggestion.

PR #1472

PR has already been made. Closing this for now.
/closed


Fix trailing slash in url

This is an attempt to fix the problem mentioned here: https://github.com/ocurrent/ocaml-ci/issues/607#issuecomment-1379604676.
The solution comes from @cuihtlauac at https://github.com/ocaml/ocaml.org/pull/866.

Let me know if it solves your problem, I'm curious

Sure, no problem! On my workstation tests, it seems to fix the problem. Thanks for the solution :+1:

Let's try in production, then! :)


D3D12 ResizeBuffers throws after D2D DeviceContext.BeginDraw via D3D11On12

It seems like BeginDraw()/EndDraw() might be saving a COM pointer somewhere. ResizeBuffer throws saying back buffer resources need to be released first. ResizeBuffers executes without errors without the BeginDraw()/EndDraw() calls.
D2D on D3D12 via: https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/Samples/Desktop/D3D1211On12/src/D3D1211On12.cpp#L152
D2D on D3D12 resize via: https://github.com/GameTechDev/FlipModelD3D12/blob/master/Source/sample_dx12.cpp#L827

Haven't checked the details, afair, we don't do anything special for these methods in SharpDX (so we don't increment reference count). So the problem is elsewhere in your app.

I see. I just built and verified that there isn't anything special going on. Is there any way to force COM garbage collection? I've called ReportLiveDeviceObjects, and the only difference is that there are these objects:
D3D11 WARNING: 	Live ID3D11Texture2D at 0x00000140D3FE44F0, Refcount: 0, IntRef: 1 [ STATE_CREATION WARNING #425: LIVE_TEXTURE2D]
D3D11 WARNING: 	Live ID3D11RenderTargetView at 0x00000140D3FCBB60, Refcount: 0, IntRef: 0 [ STATE_CREATION WARNING #428: LIVE_RENDERTARGETVIEW]
D3D11 WARNING: 	Live ID3D11Texture2D at 0x00000140D3FE5BF0, Refcount: 0, IntRef: 1 [ STATE_CREATION WARNING #425: LIVE_TEXTURE2D]
D3D11 WARNING: 	Live ID3D11RenderTargetView at 0x00000140B8EDB000, Refcount: 0, IntRef: 0 [ STATE_CREATION WARNING #428: LIVE_RENDERTARGETVIEW]

I'm assuming that these are associated with the two swap buffers. Each RenderTargetView has 0 internal and external references, however it doesn't seems to be released. I'm assuming the 1 reference to the two textures are from the RenderTargetView

It seems like the objects may not be cleaned up immediately. Calling flush after all the disposes calls will clean them up on the DirectX side.
https://stackoverflow.com/questions/44155133/directx11-com-object-with-0-references-not-released


Update container-storage-introduction.md

Fixing the storage pool expansion for Azure Disk as it is supported.

#sign-off


Forward Port Class Cast Exception fix for Hazel Cast from 4.0

Travis failed with a checkstyle error, can you run locally to debug?


[Bug] Dialog box displays garbled characters

What did I do
open ssl file;
What happened
The dialog box displays garbled characters
Expected
Environment

OS: OS version, e.g. Ubuntu 20.10
MQTTX version, e.g. v1.5.1

More detail
More detail include log information or screenshot
[2021-02-08T17:08:47.370] [INFO] default - APP init
Gtk-Message: 17:09:32.688: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 17:09:43.915: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 17:10:09.514: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 17:31:40.216: GtkDialog mapped without a transient parent. This is discouraged.

Hi, thanks for your feedback! Could you please upload a screenshot? :)

https://user-images.githubusercontent.com/68314044/107243048-95109600-6a67-11eb-9610-0ff86af81943.MOV

@alvin1221 Thanks for your feedback.
I cannot reproduce this error locally. Could you please tell me your Gnome version? I strongly believe that it is caused by the electron itself.

Here are some reference issues: https://github.com/electron/electron/issues/12423.
And I think this problem lead by your Gnome version. Maybe you should update your Gnome.
This reply may help you, I think it caused by Gnome
https://github.com/electron/electron/issues/12423#issuecomment-699510600

@alvin1221 please tell us, what's your gnome version.
gnome-shell --version

We are expecting your reply. :)

GNOME Shell 3.38.1
Get Outlook for iOShttps://aka.ms/o0ukef

From: oceanlvr<EMAIL_ADDRESS>Sent: Tuesday, February 9, 2021 12:51:43 AM
To: emqx/MQTTX<EMAIL_ADDRESS>Cc: alvin<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [emqx/MQTTX] [Bug] Dialog box displays garbled characters (#506)
@alvin1221https://github.com/alvin1221 please tell us, what's your gnome version.
gnome-shell --version
We are expecting your reply. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/emqx/MQTTX/issues/506#issuecomment-775285166, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQJGHPAEHWOQH6XH3DEYTQLS6AJB7ANCNFSM4XIUMB5Q.

@alvin1221 Hi, I download the Ubuntu 20.10 and try MQTT X v1.5.1:

Dialog box works normal for me.
It's an opening issue in the electron. Not everyone will have this problem.
I won't take action util this issue has been solved https://github.com/electron/electron/issues/12423

Maybe you can reinstall MQTT X with:
snap install `your-local-MQTTX.snap` --dangerous

Hi， I have already removed MQTTX first, and execute "snap install your-local-MQTTX.snap --dangerous", but the same problem still exists;

@alvin1221
Maybe you can try to upgrade Gnome, this problem is caused by the system and the electron environment and I can't reproduce this problem in my machine, we are sorry about we can't take action or give you more suggestions under so less information.

OK ,I'll try it later

Same problem as:
https://github.com/zulip/zulip-desktop/issues/932
https://github.com/electron/electron/issues/17079

If there is nothing wrong, I will close this issue.


[Bug] Huggingface model works in cuda:0 but not cuda:1

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[X] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.

Describe the bug
Using the minimal reproduction from the documentation, but load the model in another gpu not cuda:0, such as cuda:1. The chat method will fail to generate response.
In documentation, the model is loaded as
model = AutoModel.from_pretrained(
    path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True).eval().cuda()

It works.
But the following code,
model = AutoModel.from_pretrained(
    path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True).eval().cuda("cuda:1")  # note the model is loaded to cuda:1 not cuda:0!

The model can be loaded to the correct model, but fail to run chat method.
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:1 and cuda:0! (when checking argument for argument index in method wrapper_CUDA__index_select)

I think it is due to these lines.
https://github.com/OpenGVLab/InternVL/blob/6a230b34cc04eb2ee51c3ea013362a57ab6a6dc9/internvl_chat/internvl/model/internvl_chat/modeling_internvl_chat.py#L288-L289
It should be ...to("<DEVICE>") rather than just .cuda().
Reproduction
import numpy as np
import torch
import torchvision.transforms as T
from decord import VideoReader, cpu
from PIL import Image
from torchvision.transforms.functional import InterpolationMode
from transformers import AutoModel, AutoTokenizer

IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)

def build_transform(input_size):
    MEAN, STD = IMAGENET_MEAN, IMAGENET_STD
    transform = T.Compose([
        T.Lambda(lambda img: img.convert('RGB') if img.mode != 'RGB' else img),
        T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC),
        T.ToTensor(),
        T.Normalize(mean=MEAN, std=STD)
    ])
    return transform

def find_closest_aspect_ratio(aspect_ratio, target_ratios, width, height, image_size):
    best_ratio_diff = float('inf')
    best_ratio = (1, 1)
    area = width * height
    for ratio in target_ratios:
        target_aspect_ratio = ratio[0] / ratio[1]
        ratio_diff = abs(aspect_ratio - target_aspect_ratio)
        if ratio_diff < best_ratio_diff:
            best_ratio_diff = ratio_diff
            best_ratio = ratio
        elif ratio_diff == best_ratio_diff:
            if area > 0.5 * image_size * image_size * ratio[0] * ratio[1]:
                best_ratio = ratio
    return best_ratio

def dynamic_preprocess(image, min_num=1, max_num=12, image_size=448, use_thumbnail=False):
    orig_width, orig_height = image.size
    aspect_ratio = orig_width / orig_height

    # calculate the existing image aspect ratio
    target_ratios = set(
        (i, j) for n in range(min_num, max_num + 1) for i in range(1, n + 1) for j in range(1, n + 1) if
        i * j <= max_num and i * j >= min_num)
    target_ratios = sorted(target_ratios, key=lambda x: x[0] * x[1])

    # find the closest aspect ratio to the target
    target_aspect_ratio = find_closest_aspect_ratio(
        aspect_ratio, target_ratios, orig_width, orig_height, image_size)

    # calculate the target width and height
    target_width = image_size * target_aspect_ratio[0]
    target_height = image_size * target_aspect_ratio[1]
    blocks = target_aspect_ratio[0] * target_aspect_ratio[1]

    # resize the image
    resized_img = image.resize((target_width, target_height))
    processed_images = []
    for i in range(blocks):
        box = (
            (i % (target_width // image_size)) * image_size,
            (i // (target_width // image_size)) * image_size,
            ((i % (target_width // image_size)) + 1) * image_size,
            ((i // (target_width // image_size)) + 1) * image_size
        )
        # split the image
        split_img = resized_img.crop(box)
        processed_images.append(split_img)
    assert len(processed_images) == blocks
    if use_thumbnail and len(processed_images) != 1:
        thumbnail_img = image.resize((image_size, image_size))
        processed_images.append(thumbnail_img)
    return processed_images

def load_image(image_file, input_size=448, max_num=12):
    image = Image.open(image_file).convert('RGB')
    transform = build_transform(input_size=input_size)
    images = dynamic_preprocess(image, image_size=input_size, use_thumbnail=True, max_num=max_num)
    pixel_values = [transform(image) for image in images]
    pixel_values = torch.stack(pixel_values)
    return pixel_values

# If you have an 80G A100 GPU, you can put the entire model on a single GPU.
# Otherwise, you need to load a model using multiple GPUs, please refer to the `Multiple GPUs` section.
path = 'OpenGVLab/InternVL2-8B'
model = AutoModel.from_pretrained(
    path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True).eval().cuda("cuda:1")  # note the model is loaded to cuda:1 not cuda:0!
tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True, use_fast=False)

generation_config = dict(max_new_tokens=1024, do_sample=False)
# pure-text conversation (纯文本对话)
question = 'Hello, who are you?'
response, history = model.chat(tokenizer, None, question, generation_config, history=None, return_history=True)
print(f'User: {question}\nAssistant: {response}')

Environment
> Which model are you using?
`InternVL2-8B` run in one GPU (RTX 4090)
> How you installed PyTorch [e.g., pip, conda, source]
via conda.

# install gcc, gxx compiler
conda install gcc=9 gxx=9 cxx-compiler -y -c conda-forge

# install pytorch, cuda and other dependencies
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=11.8 -c pytorch -c nvidia -y
conda install nvidia/label/cuda-11.8.0::cuda -y

> Other environment variables that may be related
Others should be fine.

Error traceback
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[2], line 100
     98 # pure-text conversation (纯文本对话)
     99 question = 'Hello, who are you?'
--> 100 response, history = model.chat(tokenizer, None, question, generation_config, history=None, return_history=True)
    101 print(f'User: {question}\nAssistant: {response}')

File ~/.cache/huggingface/modules/transformers_modules/InternVL2-8B/modeling_internvl_chat.py:285, in InternVLChatModel.chat(self, tokenizer, pixel_values, question, generation_config, history, return_history, num_patches_list, IMG_START_TOKEN, IMG_END_TOKEN, IMG_CONTEXT_TOKEN, verbose)
    283 attention_mask = model_inputs['attention_mask'].cuda()
    284 generation_config['eos_token_id'] = eos_token_id
--> 285 generation_output = self.generate(
    286     pixel_values=pixel_values,
    287     input_ids=input_ids,
    288     attention_mask=attention_mask,
    289     **generation_config
    290 )
    291 response = tokenizer.batch_decode(generation_output, skip_special_tokens=True)[0]
    292 response = response.split(template.sep)[0].strip()

File ~/miniconda3/envs/vlm/lib/python3.10/site-packages/torch/utils/_contextlib.py:115, in context_decorator.<locals>.decorate_context(*args, **kwargs)
    112 @functools.wraps(func)
    113 def decorate_context(*args, **kwargs):
    114     with ctx_factory():
--> 115         return func(*args, **kwargs)

File ~/.cache/huggingface/modules/transformers_modules/InternVL2-8B/modeling_internvl_chat.py:333, in InternVLChatModel.generate(self, pixel_values, input_ids, attention_mask, visual_features, generation_config, output_hidden_states, return_dict, **generate_kwargs)
    331     input_embeds = input_embeds.reshape(B, N, C)
    332 else:
--> 333     input_embeds = self.language_model.get_input_embeddings()(input_ids)
    335 outputs = self.language_model.generate(
    336     inputs_embeds=input_embeds,
    337     attention_mask=attention_mask,
   (...)
    342     **generate_kwargs,
    343 )
    345 return outputs

File ~/miniconda3/envs/vlm/lib/python3.10/site-packages/torch/nn/modules/module.py:1518, in Module._wrapped_call_impl(self, *args, **kwargs)
   1516     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]
   1517 else:
-> 1518     return self._call_impl(*args, **kwargs)

File ~/miniconda3/envs/vlm/lib/python3.10/site-packages/torch/nn/modules/module.py:1527, in Module._call_impl(self, *args, **kwargs)
   1522 # If we don't have any hooks, we want to skip the rest of the logic in
   1523 # this function, and just call forward.
   1524 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
   1525         or _global_backward_pre_hooks or _global_backward_hooks
   1526         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1527     return forward_call(*args, **kwargs)
   1529 try:
   1530     result = None

File ~/miniconda3/envs/vlm/lib/python3.10/site-packages/torch/nn/modules/sparse.py:162, in Embedding.forward(self, input)
    161 def forward(self, input: Tensor) -> Tensor:
--> 162     return F.embedding(
    163         input, self.weight, self.padding_idx, self.max_norm,
    164         self.norm_type, self.scale_grad_by_freq, self.sparse)

File ~/miniconda3/envs/vlm/lib/python3.10/site-packages/torch/nn/functional.py:2233, in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
   2227     # Note [embedding_renorm set_grad_enabled]
   2228     # XXX: equivalent to
   2229     # with torch.no_grad():
   2230     #   torch.embedding_renorm_
   2231     # remove once script supports set_grad_enabled
   2232     _no_grad_embedding_renorm_(weight, input, max_norm, norm_type)
-> 2233 return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)

I try this CUDA_VISIBLE_DEVICES=xx before command. :)

I try this CUDA_VISIBLE_DEVICES=xx before command. :)

Hi hshjerry, thank you for your reply. Yeah if only expose 1 GPU to the system, it will work. However, we're working on a compositional system which load multiple models to multiple GPUs, therefore we have to move each model to corresponding "cuda:x", as the environment variable CUDA_VISIBLE_DEVICES is shared in the process.

You can try setting this environment variable by adding os.environ["CUDA_VISIBLE_DEVICES"]="x" before import torch


Add reusable workflow for publishing docs

Description of your changes
This PR adds a reusable workflow to be reused by official provider repositories for publishing docs.
I have:

[ ] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested
Manually tested on turkenf/uptest and turkenf/provider-azuread

We will also need to update our release runbook after we merge the associated PRs.

I made the changes @ulucinar, and this PR is ready for review.


Not possible to decode resources while decompiling Facebook lasted APK

Signed-off-by: Luis Solorzano<EMAIL_ADDRESS>

Working well for me.

@iBotPeaches

Thanks for the PR! It looks like Windows broke, but I'll fix that tonight then ask you to rebase tomorrow.

If you rebase this, it should be good to go.

Merged master in. Awaiting build status.

Thanks for the PR, but not going to move forward with this. I don't suspect this is the proper way to resolve this.


Net plugin spam - 1.8

Change Description

Cut down on the number of messages sent by not sending a request message when not needed.
Candidate PR for 1.7.x & develop

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Replaced by #7965 which includes this fix.


LoRa Initialisation failed

Hi,
I've been trying to use this library for making a test node for LoRa.
I am using RFM95W with Raspberry Pi Pico.
I've set up the connections as mentioned in the wiki and have changed the region to IN865 in 'config.h'. Also, I am using 3.3V power out from the Pico. However, I still received the LoRa Init failed message.
Upon some tinkering, I managed to get past the Initialization phase after which I'm stuck on Joining with the following loop repeating itself.
`
=========== CTXS RESTORED ===========
Size        : 2208
DevEui      : E6-60-38-28-23-5C-4B-35
JoinEui     : 00-00-00-00-00-00-00-00
Pin         : 00-00-00-00
success!
Joining LoRaWAN network ...
=========== MLME-Request ============
MLME_JOIN
=====================================
STATUS      : OK
=========== MLME-Confirm ============
STATUS      : Tx timeout
=========== MLME-Request ============
MLME_JOIN
=====================================
STATUS      : OK
=========== MLME-Confirm ============
STATUS      : Tx timeout
=========== MLME-Request ============
MLME_JOIN
=====================================
STATUS      : OK
=========== MLME-Confirm ============
STATUS      : Tx timeout
=========== MLME-Request ============
MLME_JOIN
=====================================
STATUS      : OK
=========== MLME-Confirm ============
STATUS      : Tx timeout`
Any help would be appreciated.

Hi @SiddhantArya,
Are you using you trying to use this with your own LoRaWAN gateway? If so, have you looked at the gateway traffics logs in TTS web console?
I haven't used this library in India myself, but you might also need to set configure a channel mask like I had to for North America.
For example for US902-928  I had to use a channel mask value of "FF0000000000000000020000".
Please take a look at the TTN Frequency Plans for IN865-867.

Yes @sandeepmistry. I am using a pygate LoRaWAN gateway. The link of the same can be found here: PyGate Gateway. I have configured the gateway to the Indian frequency plan. The gateway shows up on the TTN console, but it doesn't show any message from my Pico + RFM95W node . I don't know where or how to set a channel mask.

I am using your module in order to connect to the TTN network in the Netherlands.
Code fails in SX1276Read (does not compare to 0x12 apparently)
Anything I can do to test? Do you have any progress?
Thanks for making this possible!

Hi @wboerhout,
Could you please open a new issue for this. Please include more details on the hardware you are using, the wiring (incl. photos), and what the  SX1276Read is returning.

will do.

@SiddhantArya would you be able to try ABP instead of OTAA?

Closing for now due to lack of response.


Add NoThreadClone#isShareable method so the elements can dynamically decide if they need cloning or not

Motivation and Context
Previously, components could implements NoThreadClone to prevent cloning in each thread, however, there was no way to "unimplement" the interface.
By default, isShareable returns true, so existing components work as before.
This improvement is needed for:

https://github.com/apache/jmeter/pull/727

It looks like another API is needed so the component can figure out if the actual element has been cloned or not.
For instance, in case like https://github.com/apache/jmeter/pull/727, HeaderManager#assertMutable() should be able to tell if the specific HeaderManager is cloned or not.
If a code creates a temporary HeaderManager object for the purpose of merging the headers, then the temporary HeaderManager should not fail with something like "oh, this is a shared instance, stop modifying it".
It sounds like NoThreadClone#freeze() method which would signal the component the instance is reused.
Then TreeCloner would call freeze on non-cloned objects.

Unfortunately, it reminds me of the new memory management in Kotlin Native : https://kotlinlang.org/docs/native-migration-guide.html
Initially, they had a memory model which the user must call freeze object before sharing the object cross-threads.
That memory model has proven to be hard to use, and they went with a garbage collector.
Even though our goals are slightly different, it sounds related.


updateValue deprecated from Control?

angular2 meteor tutorial 4.9
client/parties-form/parties-form.ts (33, 49): Property 'updateValue' does not exist on type 'AbstractControl'.
on debugg I found there is no such function on the this.partiesForm.controls.name object.
I think it might be deprecated.

btw
this.partiesForm.controls.name._value = '';
this.partiesForm.controls.name.value = '';
is not clearing the form, so what are the alternative to the updateValue function?

sorry it seems i didnt import the Control class:
import {FormBuilder, ControlGroup, Validators} from 'angular2/common';
insted of
import {FormBuilder, Control, ControlGroup, Validators} from 'angular2/common';


[Question] GIF files in OCR_VQA dataset

Question
I noticed during the fine-tuning phase that in the OCR_VQA dataset, there are many GIF files, but they have all been changed to JPG in the JSON. Can these files be directly modified by changing the file extension without any further processing?

I changed the fille extension, and it works.

I changed the fille extension, and it works.

Excuse me, should I change the extension in json or directly change the image files' extension from '.gif' to '.jpg'?

I changed the fille extension, and it works.

Excuse me, should I change the extension in json or directly change the image files' extension from '.gif' to '.jpg'?

I changed the image files' extension from '.gif' to '.jpg'.  I think this is relatively easy.

Thank you very much!
Also, I have another question, about 170 images in Visual Genome dataset I downloaded, specifically, the VG_100K_2, is empty. The others are fairly good. And I CAN'T open those 170 images. I've tried to download it several times, actually it's successfully downloaded and unzipped.
I DON'T know where the problem lying? Have you ever come across this problem?

Thank you very much! Also, I have another question, about 170 images in Visual Genome dataset I downloaded, specifically, the VG_100K_2, is empty. The others are fairly good. And I CAN'T open those 170 images. I've tried to download it several times, actually it's successfully downloaded and unzipped. I DON'T know where the problem lying? Have you ever come across this problem?

I didn't come across this problem. I previously downloaded this dataset, so I didn't download it this time.


[bug] Environment Variable Overrides Not Working with Nested .toml Values

Describe the bug
Environment variable overrides do not work with .toml values nested under tables.
To Reproduce
Steps to reproduce the behavior:

Having the following folder structure

 Project structure
$ tree -v -I ".venv"

.
├── settings.py
└── settings.toml

Having the following config files:

 Config files
.env file is not used
and
./settings.toml
[table]
value=123

Having the following app code:

 Code
./settings.py
from dynaconf import Dynaconf

settings = Dynaconf(
    settings_files=['settings.toml'],
)

# This prints the settings.toml value
print(settings.get('table.value'))

# This prints the env var value
print(settings.get('table_value'))

Executing under the following environment

 Execution
$ DYNACONF_TABLE_VALUE=456 python ./settings.py
123
456

Expected behavior
settings.get('table.value') should be overridden by the DYNACONF_TABLE_VALUE env var, or an option to allow this should be present.
Environment (please complete the following information):

OS: MacOS 14.3 (23D56)
Dynaconf Version dynaconf==3.2.4
Frameworks in use: None
Python version: 3.11.7

Additional context
I recognize that adding support for environment variable overrides of table values introduces the possibility of ambiguity. For example, given the following toml file:
[a_b]
c = 123

[a]
b_c = 456

The environment variable DYNACONF_A_B_C could be interpreted as overriding both of these values. However, the value of being able to use environment variable overrides in nested configuration structure outweighs this in my view. If there is concern over conflicts such as these, perhaps this functionality could be toggled via configuration?
Setting the environment variable containing a period does allow overriding of nested toml values. That said, adding periods to environment variable names is an insufficient solution in my view as the non-standard use of periods in environment variable names not supported by many ubiquitous tools (including bash & zsh).

Realizing now that using double underscore is the intended behavior for this 🤦 closing now


mdInput type="date" should be easier to interchange with dates

Bug, feature request, or proposal:
Proposal: mdInput should be easier to use with javascript date objects, and should not require formatting to set
What is the expected behavior?
If mdInput is a date type, then I would expect that setting its ngModel to a date would easily recognized and handled.
What is the current behavior?
If you pass in a date to an mdInput with type date, then the data is not displayed until the thing being passed in is EXACTLY the format the mdInput is in (by default, yyyy-MM-dd)
What are the steps to reproduce?
Code similar to this should be demonstrative enough
<md-input-container>   <input mdInput [(ngModel)]="yourDate" placeholder="Some Date" type="date"> </md-input-container>
while in your TS/JS
this.yourDate = new Date();
What is the use-case or motivation for changing an existing behavior?
The motivation for the change is that, instead of working directly with JS date objects, we have to work with date strings, and any changes have to formatted to the mdInput format and remade to a JS Date object to work with many other technologies. Like, currently, we bring in a date for a database, and to set it on the page I have to say
this.yourDate = databaseDate.toISOString().split("T")[0]
which just seems incredibly silly.
Is there anything else we should know?
Seeing as this is incredibly silly, there might be an already existing solution or easy fix. Could easily be missing something here.

I wouldn't consider this closed, but I at least found an easier way to handle this than what I was doing:
<md-input-container">      <input mdInput [ngModel]="myDate | date:'yyyy-MM-dd'"          (ngModelChange)="myDate=formatToDate($event); otherStuffToDo()"         placeholder="Some Date"         type="date"> </md-input-container>
and in the TS
private formatToDate(stringDate){         let dateParts = stringDate.split("-");         let date = new Date(dateParts[0], dateParts[1]-1, dateParts[2]);         return date; }
It still seems like I shouldn't have to do this, but for now, this is probably the best solution.

Could you maybe get away by using a directive to format your date?
I'm using Moment.js and created the following directive to format date times.
import {
    Directive,
    ElementRef,
    HostListener
} from '@angular/core';

@Directive({
    selector: '[dateTime]'
})
export class MomentDirective {
    constructor(private elemRef: ElementRef) {

    }

    @HostListener('ngModelChange', ['$event']) onInputChange(value: any) {
        this.elemRef.nativeElement.value = 'potato'
    }
}

Bug, feature request, or proposal: Feature request
What is the expected behavior?: In mat-datepicker, if user inputs the date manually, it should be auto formatted to 'MM/dd/yyyy'
What is the current behavior?: ngx-mask cannot be used with Angular Material.
I tried inserting '/' after date and month by calculating length.
But format is not getting inserted.
What are the steps to reproduce?
Providing a StackBlitz reproduction is the best way to share your issue.
StackBlitz starter: https://goo.gl/wwnhMV
What is the use-case or motivation for changing an existing behavior?: If user enters a date without using datepicker, it should be viewed in date format MM/dd/yyyy
Which versions of Angular, Material, OS, TypeScript, browsers are affected?: Angular 5 with Angular Material

Closing this since I think it's obsolete.


[shippingservice] add grpc conventions

Fixes #596
Changes

use OTEL semantic conventions where defined
name tracer in accordance with other services which sink grpc transactions
name span in accordance with OTEL grpc conventions
set SpanKind to SERVER for functions sinking grpc transactions
set RpcSystem to grpc
Set RpcGrpcStatusCode appropriately

@julianocosta89, docs updated as appropriate! thanks!


prefix and suffix lenses

Codecov Report

Merging #103 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #103   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines         836    842    +6
=====================================
+ Hits          836    842    +6

Impacted Files
Coverage Δ

dist/partial.lenses.cjs.js
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


spanner: Properly handle multi-row mutations with heterogeneous columns

Fixes #2411
This adds a commit with tests on top of the work done by @jscinoz in #2417.

Coverage increased (+6.0e-06%) to 99.988% when pulling d3f1d5d5d65ee7bd5a83316d95f15467fb8ef8bf on stephenplusplus:pr-2417 into c9037b69b29de3edb4b0b1a748380d688c6c5911 on GoogleCloudPlatform:master.

Coverage increased (+6.0e-06%) to 99.988% when pulling 3ae6621541bdefbcf4bc79be0e49653d960120f8 on stephenplusplus:pr-2417 into c9037b69b29de3edb4b0b1a748380d688c6c5911 on GoogleCloudPlatform:master.

What would happen if the two rows have different number of columns? I think you should error out in that case.

Coverage increased (+1.0e-05%) to 99.988% when pulling 810465f853be69ad5e82d806783dcfe3738a905a on stephenplusplus:pr-2417 into c9037b69b29de3edb4b0b1a748380d688c6c5911 on GoogleCloudPlatform:master.


Removed in-page TOC - rely on Docs provided "In this article"

Docs Build status updates of commit 9277163:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/performance-recommendations-for-unity.md
:warning:Warning
View
Details

mixed-reality-docs/performance-recommendations-for-unity.md

Line 0: [Warning] Text in the first line of Note/Section/Video is not valid. Will be rendererd to <blockquote>
Line 13: [Warning] Invalid file link:(~/performance-recommendations-for-mixed-reality.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Getting error on Import - Stripe

import Stripe
^
error: fatalError
fatalError

Task :shared:swiftklibCoreStripeSDKIosSimulatorArm64 FAILED

Hi Can someone please help me to resolve this issue ?

@IlyaGulya do you have any idea about this issue, i was trying integrate stripe sdk in kmm and native ios

@IlyaGulya do you have any idea about this issue?, i was trying integrate stripe sdk in kmm and native ios

Hi!
Unfortunately, this plugin does not support using external dependencies at the moment.
That's on the roadmap but it's quite an issue to think about 🙂

Closing in favor of https://github.com/ttypic/swift-klib-plugin/issues/37


rint for GPU backend

I want to write an activation in which the output is rounded, but cannot use be.rint() because it is not specified in cuda_templates.py._float_ops. Is there no rounding supporting in the GPU backend?

This should be fairly straightforward to add, since cuda has a roundf function which should work. I'm assuming that we just never hit this case and it was overlooked.


Unable to run compiler or stdlib specs with IPv6 disabled

At some point in the past while debugging something else, I ended up adding the ipv6.disable=1 kernel parameter. This seems to break the compiler and stdlib specs due to:
Unhandled exception: Failed to create socket: Address family not supported by protocol (Socket::Error)
  from src/crystal/system/unix/socket.cr:12:5 in 'create_handle'
  from src/socket.cr:68:10 in 'initialize'
  from src/socket/tcp_socket.cr:40:5 in 'initialize'
  from src/socket/tcp_server.cr:38:7 in 'initialize:reuse_port'
  from src/socket/tcp_server.cr:36:3 in 'new:reuse_port'
  from src/socket/tcp_server.cr:70:14 in 'supports_ipv6?'
  from spec/std/socket/spec_helper.cr:26:6 in 'each_ip_family'
  from spec/std/http/web_socket_spec.cr:360:3 in '->'
  from src/spec/context.cr:286:15 in 'describe'
  from src/spec/methods.cr:20:5 in 'describe'
  from spec/std/http/web_socket_spec.cr:47:1 in '__crystal_main'
  from src/crystal/main.cr:118:5 in 'main_user_code'
  from src/crystal/main.cr:104:7 in 'main'
  from src/crystal/main.cr:130:3 in 'main'
  from /usr/lib/libc.so.6 in '??'
  from /usr/lib/libc.so.6 in '__libc_start_main'
  from .build/std_spec in '_start'
  from ???
make: *** [Makefile:106: std_spec] Error 1

We are checking if IPv6 is enabled via SocketSpecHelper.supports_ipv6?, but we're only catching Socket::BindError whereas the error raised here is a Socket::Error. Will also need to address unused_local_port always using IPv6 as well.

Some networking specs do https://github.com/crystal-lang/crystal/blob/9df6760292f525d4a35c243f1d76e7ab534cec44/spec/std/openssl/ssl/server_spec.cr#L14 which ends up using "::" as the host. These specs ultimately fail when IPv6 is disabled. Is there any meaningful difference between "::" and "<IP_ADDRESS>" in this context? Was thinking we could update these usages to use the IPv4 variant to avoid needing extra IPv6 checks.

Yes :: binds to ipv6 and ipv4, while <IP_ADDRESS> only binds to ipv4.

We want the former behavior by default, not the latter.
I'm wondering in which context is ipv6 disabled? I mean, we're in 2024.

We want the former behavior by default, not the latter.

Yea that makes sense in the real code, but to be clear I was more so proposing just changing it in these specs. E.g.
it "don't sync_close" do
  TCPServer.open(0) do |tcp_server|
    context = OpenSSL::SSL::Context::Server.new
    ssl_server = OpenSSL::SSL::Server.new(tcp_server, context, sync_close: false)
    ssl_server.context.should eq context

    ssl_server.close

    tcp_server.closed?.should be_false
  end
end

Does it really matter if we bind an IPv6 vs IPv4 in this context?

It appears the behaviour of :: can vary, as previously mentioned in https://github.com/crystal-lang/crystal/pull/6711#issuecomment-421030196.
I suppose this might be the case in @Blacksmoke16's environment that :: does not include ipv4 as well and thus the bind fails with ipv6 disabled?
Anyway, I'm wondering if using an unspecified address is even good in the first place.
Shouldn't these servers bind to loopback instead?


Add ruby 2.5 support, drop 2.2.

Summary

Update ruby, rails, rack version in travis.
Add ruby 2.5 support, drop 2.2.

The new version of ruby is released.  Update travis settings.
Reference: https://www.ruby-lang.org/zh_tw/

👍

should https://github.com/ruby-grape/grape/blob/master/Appraisals file being updated too?

maybe it's a good time to drop rails 3.2 support and bump dependencies.


rtp compilation error since rustc 1.49.0 (possible earlier)

I'm using this library indirectly via another project and it seems that since at least since "rustc 1.49.0", possible earlier,
this library does not compile any more. I myself have not used Rust that much, so I don't know the exact cause. If I have the time I'll look into it later and make a pull request if I'm able to fix it, but in the meanwhile I wanted to notify you.
When building, I get the following error.
error[E0282]: type annotations needed
   --> /build/mumblewebproxy-vendor.tar.gz/rtp/src/rfc3711.rs:476:19
    |
475 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
476 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error[E0282]: type annotations needed
   --> /build/mumblewebproxy-vendor.tar.gz/rtp/src/rfc3711.rs:512:19
    |
511 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
512 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error: aborting due to 2 previous errors

Thank you for reporting this issue.
However, I cannot reproduce that in my environment (with rustc-v1.50.0).
The commends I executed were as follows:
$ uname -a
Linux LAPTOP-PP3DNNQN 4.19.104-microsoft-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 GNU/Linux

$ rustc --version
rustc 1.50.0 (cb75ad5db 2021-02-10)

$ git clone git://github.com/sile/rtp
$ cd rtp/

$ cargo test
...
running 3 tests
test tests::it_works ... ok
test rfc3711::test::rtp_decryption_works ... ok
test rfc3711::test::rtcp_decryption_works ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests rtp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Could you give me more information to reproduce the issue?

FYI: I re-executed the above commands with rustc-v1.49.0, but there were still no errors:
$ rustup default 1.49.0
$ rustc --version
rustc 1.49.0 (e1884a8e3 2020-12-29)

$ cargo test
...
running 3 tests
test tests::it_works ... ok
test rfc3711::test::rtp_decryption_works ... ok
test rfc3711::test::rtcp_decryption_works ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

I found that the error messages you wrote refer to the line rfc3711.rs:476 and rfc3711.rs:512 despite that the rfc3711.rs file on the master branch of this repo has only 387 lines. So, I guess, the "another project" uses a forked version of rtp and this problem is specific on the variant.

You're completely right, I made a mistake here, because it's actually one of the forks of this package, to be exactly the dtls-srtp branch of Johni0702's fork. I'll take this issue over there.
Sorry for the inconvenience.

No problem :)
Thank you for sharing the detail.


Automatic commit: Move datahub-trial-v2-pipelines-part02 from QA to P…

add additional pipeline information, where the created pipeline could be found

@fx5151git I see the link to the tutorial is still coded the old way. Can you update?

But for the commit 5 days ago, I already changed it. Is it not the right way?

@thecodester

@fx5151git: Links to other tutorials are now coded this way:
[Generate Sensor Data in SAP Data Hub, trial edition 2.4] (datahub-trial-v2-pipelines-part01)

Use the title, not the file name
DO NOT bold the link

@thecodester  in the second commit I think it is the right form, or?


Feature Suggestion and Testing

A lot of embeddings and loras are uploaded to catbox.moe and related sites from users on 4ch.
Maybe an edge case, I tend to store my TIs in Discord since its quite convenient.
Since this extension is already utilizing gdown, downloading from Google Drive also?
Maybe add this as a toggleable option since supporting every site will lead to unexpected things.

The thing is, sometimes gdown fails to download from google drive, idk why. Weird.

Something like this. Even though the link is public.
I'll try to add the other websites. You can list the most used website for these.
Catbox is banned in my country, i'll figure things out.

for discord is it this link? https://cdn.discordapp.com/attachments/*

The thing is, sometimes gdown fails to download from google drive, idk why. Weird.

Heavily guessing here, but maybe the file has a delay on being updated to the servers?

Catbox is banned in my country, i'll figure things out.

Even if catbox is banned in your country, pretty sure that Google's servers are in not in the countries that have strict internet censorship. IIRC, the servers are in US, EU, and SG. catbox links are wget-able and will most likely work with any CLI downloader.

for discord is it this link? https://cdn.discordapp.com/attachments/*

Yes it is!

I'll try to add the other websites. You can list the most used website for these.

I think having a special case for websites would be a bad idea and will lead to code bloat, I propose that having a toggle of downloading from anywhere would faster to implement (also easier?).
But regardless, these are the sites that provide direct links to files that I can list at the top of my head:

*.s-ul.eu/*
github.com/*/*/raw/*/* or raw.githubusercontent.com/*/*/*
cdn.discordapp.com/attachments/*/*/*
files.catbox.moe/*
gitgud.io/*/*/-/raw/*/*

pretty sure that Google's servers are in not in the countries that have strict internet censorship. IIRC, the servers are in US, EU, and SG. catbox links are wget-able and will most likely work with any CLI downloader.

wget etc. doesn't work on catbox even on colab, i tried. Maybe i'll try again with vpn.

pretty sure that Google's servers are in not in the countries that have strict internet censorship. IIRC, the servers are in US, EU, and SG. catbox links are wget-able and will most likely work with any CLI downloader.

wget etc. doesn't work on catbox even on colab, i tried. Maybe i'll try again with vpn.

Can confirm, catbox does not work. It's just stuck in an eternal halt.

Apologies, I must've jumbled up my memory 😅

@NUROISEA try this branch
!git clone -b ariasubprocess https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

i added aria2 downloader, discord attachment, changed os.system to subprocess, more accurate logging system, controlnet path, and github extension clone. I'll merge to main if it's stable enough.
Still uncertain about the other websites. Maybe you can give me model link examples for every website?😊
Imma sleep for now. It's midnight on my timezone🌃

Did a quick test. It seems like the downloaded files are not being placed to their respective folders.

This is my input:
#embed
https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
#hypernet
https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
https://github.com/fkunn1326/openpose-editor

UI Output:

Console output:
BatchLinks Downloads starting...

https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
Installing aria2 ...

Selecting previously unselected package libc-ares2:amd64.
(Reading database ... 128126 files and directories currently installed.)
Preparing to unpack .../libc-ares2_1.15.0-1ubuntu0.1_amd64.deb ...
Unpacking libc-ares2:amd64 (1.15.0-1ubuntu0.1) ...
Selecting previously unselected package libaria2-0:amd64.
Preparing to unpack .../libaria2-0_1.35.0-1build1_amd64.deb ...
Unpacking libaria2-0:amd64 (1.35.0-1build1) ...
Selecting previously unselected package aria2.
Preparing to unpack .../aria2_1.35.0-1build1_amd64.deb ...
Unpacking aria2 (1.35.0-1build1) ...
Setting up libc-ares2:amd64 (1.15.0-1ubuntu0.1) ...
Setting up libaria2-0:amd64 (1.35.0-1build1) ...
Setting up aria2 (1.35.0-1build1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
aria2 installed!

02/23 03:43:08 [NOTICE] Download complete: -o EMT.pt/EMT.pt

02/23 03:43:08 [INFO] The segment file -o EMT.pt/EMT.pt.aria2 exists.

Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
fee07e|OK  |   5.0MiB/s|-o EMT.pt/EMT.pt

Status Legend:
(OK):download completed.

https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
02/23 03:43:09 [NOTICE] Download complete: -o Moomers.pt/Moomers.pt

02/23 03:43:09 [INFO] The segment file -o Moomers.pt/Moomers.pt.aria2 exists.

Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
b38a9e|OK  |   6.0MiB/s|-o Moomers.pt/Moomers.pt

Status Legend:
(OK):download completed.

https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
02/23 03:43:11 [NOTICE] Download complete: -o MomopocoV3.pt/MomopocoV3.pt

02/23 03:43:11 [INFO] The segment file -o MomopocoV3.pt/MomopocoV3.pt.aria2 exists.

Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
be529c|OK  |    81MiB/s|-o MomopocoV3.pt/MomopocoV3.pt

Status Legend:
(OK):download completed.

https://github.com/fkunn1326/openpose-editor
Cloning into '/content/stable-diffusion-webui/extensions/openpose-editor'...
remote: Enumerating objects: 141, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 141 (delta 13), reused 20 (delta 12), pack-reused 116
Receiving objects: 100% (141/141), 919.64 KiB | 3.27 MiB/s, done.
Resolving deltas: 100% (51/51), done.

BatchLinks Downloads finished!

gdown test, same inputs, download fails
UI output:

Console output
BatchLinks Downloads starting...

https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
usage: gdown
       [-h]
       [-V]
       [-O OUTPUT]
       [-q]
       [--fuzzy]
       [--id]
       [--proxy PROXY]
       [--speed SPEED]
       [--no-cookies]
       [--no-check-certificate]
       [--continue]
       [--folder]
       [--remaining-ok]
       url_or_id
gdown: error: argument -O/--output: expected one argument

https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
usage: gdown
       [-h]
       [-V]
       [-O OUTPUT]
       [-q]
       [--fuzzy]
       [--id]
       [--proxy PROXY]
       [--speed SPEED]
       [--no-cookies]
       [--no-check-certificate]
       [--continue]
       [--folder]
       [--remaining-ok]
       url_or_id
gdown: error: argument -O/--output: expected one argument

https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
usage: gdown
       [-h]
       [-V]
       [-O OUTPUT]
       [-q]
       [--fuzzy]
       [--id]
       [--proxy PROXY]
       [--speed SPEED]
       [--no-cookies]
       [--no-check-certificate]
       [--continue]
       [--folder]
       [--remaining-ok]
       url_or_id
gdown: error: argument -O/--output: expected one argument

https://github.com/fkunn1326/openpose-editor
fatal: destination path '/content/stable-diffusion-webui/extensions/openpose-editor' already exists and is not an empty directory.

BatchLinks Downloads finished!

wget test, same inputs (only removed github link), download fails
UI output:

Console output
BatchLinks Downloads starting...

https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
wget: option requires an argument -- 'P'
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
wget: option requires an argument -- 'P'
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
wget: option requires an argument -- 'P'
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

BatchLinks Downloads finished!

curl test, same inputs (no github), downloads correctly
UI output:

Console output
BatchLinks Downloads starting...

https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 26727  100 26727    0     0   450k      0 --:--:-- --:--:-- --:--:--  457k

https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 31659  100 31659    0     0   533k      0 --:--:-- --:--:-- --:--:--  533k

https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 83.8M  100 83.8M    0     0   190M      0 --:--:-- --:--:-- --:--:--  189M

BatchLinks Downloads finished!

Sorry, i think the extension update breaks everything. You can git checkout to the previous commit (on the same branch). I'm currently not in my house, I'll check that later.

Try this one
!rm -rf /content/stable-diffusion-webui/extensions/batchlinks-webui
!git clone https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui
!cd /content/stable-diffusion-webui/extensions/batchlinks-webui
!git checkout ariasubprocess
!git checkout 0e0c37844eef9be0be91d5dddba758c94931005e

@NUROISEA whoops sorry, wrong command. Here's the one:
!rm -rf /content/stable-diffusion-webui/extensions/batchlinks-webui
!git clone -b ariasubprocess https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui
%cd /content/stable-diffusion-webui/extensions/batchlinks-webui
!git checkout 0e0c37844eef9be0be91d5dddba758c94931005e .

okay, i noticed the same problem also happens on that commit. I know the problem and will fix it soon

@NUROISEA sorry for the inconvenience🙏, i pushed a new commit.
!rm -rf /content/stable-diffusion-webui/extensions/batchlinks-webui
!git clone -b ariasubprocess https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

It fixes most of the bugs, all downloader working, extension texted, haven't tested discord attachment yet. Thank you by the way, for debugging my previous code, really appreciated😁✨
Currently i'm planning to update it once more before merging to main. Someone give me codes to directly download from civitai model page link, instead of from civitai direct link.😊

Hi @etherealxx, I tested your branch against the latest version of the webui and against my fork (previous versions of the webui) and I saw no problems with your extension!
Test case:
#model
https://huggingface.co/NoCrypt/SomethingV2/resolve/main/somethingv2_1.safetensors
#vae
https://huggingface.co/NUROISEA/av3-mirror/resolve/main/anything.vae.pt
#embed
https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
#hypernet
https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
#lora
https://huggingface.co/YoungMasterFromSect/Trauter_LoRAs/resolve/main/LoRA/Misc.%20Characters/Aponia/Aponia_Softpruned.safetensors
https://github.com/fkunn1326/openpose-editor

Tested with all 4 download methods gdown, wget, curl, aria2 with both versions of the web ui and it works as expected.
Test environment (a colab I quickly wrote for this purpose)

Output:

Test limitations:

did not try mega (I don't have any embeds or loras easily available)
did not try civitai

Thank you!😊✨
MEGA is working fine, so does Civitai.
However, a friend of mine implemented a new way to download Civitai stuff using the api. So instead of using the direct download link (example, https://civitai.com/api/download/models/5616), it uses the model page link, (example, https://civitai.com/models/4823/deliberate), and it will automatically download the best model, download the thumbnail, and put it as as a preview image on webui. Also, it automatically knows the type of the model (it will be located properly automatically without using hashtag thing). If that works perfectly, then sd-civitai-browser would be kinda useless😅
So i'll try to implement that on the next commit.
Also that person commented about the UI. I wanna hear from you what do you think about the UI honestly. I try to make it as easy-for-beginner as possible (as i was months ago).

So i'll try to implement that on the next commit.

Yo, let's go!

I wanna hear from you what do you think about the UI honestly. I try to make it as easy-for-beginner as possible

The UI is intuitive, at a glance you kinda know what you are dealing with already, so no problems on the UI side of things. :D

hello @NUROISEA 👋
After hours of staring at codes, finally i pushed this (almost) final commit. Here's the list of all new features
you can test it with this:
!git clone -b ariasubnewcivit https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

i tested most of it works (haven't tested Windows yet). If it's stable enough, i'll merge it with main. (I'll also ask some of my friend on discord to test it too i think)😊

Hi @etherealxx! here's my testing:
Inputs:
#model
https://huggingface.co/swl-models/mix-pro-v3/resolve/main/mix-pro-v3-non-ema-fp16.safetensors
#vae
https://huggingface.co/NUROISEA/av3-mirror/resolve/main/anything.vae.pt
#embed
https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
#hypernet
https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
#lora
https://huggingface.co/YoungMasterFromSect/Trauter_LoRAs/resolve/main/LoRA/Misc.%20Characters/Aponia/Aponia_Softpruned.safetensors
https://mega.nz/file/gAxTWBAI#uL7EZay-OND5G6ELJlGfUNG0s7Q4TynZKqFdvs0v0tc ##agent8-finetune
https://mega.nz/file/oU43FSTY#vwAfsAb7RKJ4xtsSP7uzrKpWhh1y8BdpIBFurwsVP2o ##agent8-dreambooth

https://github.com/fkunn1326/openpose-editor
https://civitai.com/models/7448/korean-doll-likeness

Results:
Tested on the latest version of the webui and a slightly older one

gdown
wget
curl
aria2

huggingface
✅
✅
✅
✅

civitai
✅
✅
✅
❌

discord
✅
✅
✅
✅

mega
✅
✅
✅
✅

github
✅
✅
✅
✅

Civitai seems to fail on both methods on aria2, direct /api/models/ and /models/, error seems to be the same to both instances:
Civitai error log:
https://civitai.com/models/7448/korean-doll-likeness
debug download_url(https://civitai.com/api/download/models/14014, /content/stable-diffusion-webui/models/Lora/koreanDollLikeness_v15.safetensors, aria2)
debug new_command_parts: ['aria2c', '--console-log-level=info', '-c', '-x', '16', '-s', '16', '-k', '1M', 'https://civitai.com/api/download/models/14014', '-d', '/content/stable-diffusion-webui/models/Lora', '-o', 'koreanDollLikeness_v15.safetensors']
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/gradio/routes.py", line 337, in run_predict
    output = await app.get_blocks().process_api(
  File "/usr/local/lib/python3.8/dist-packages/gradio/blocks.py", line 1015, in process_api
    result = await self.call_function(
  File "/usr/local/lib/python3.8/dist-packages/gradio/blocks.py", line 833, in call_function
    prediction = await anyio.to_thread.run_sync(
  File "/usr/local/lib/python3.8/dist-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/content/stable-diffusion-webui/extensions/batchlinks-webui/scripts/batchlinks-downloader.py", line 700, in run
    civitdown2(currentlink, currentfolder, choosedowner)
  File "/content/stable-diffusion-webui/extensions/batchlinks-webui/scripts/batchlinks-downloader.py", line 514, in civitdown2
    hfdown(data_url, data_save_path, downloader, True)
  File "/content/stable-diffusion-webui/extensions/batchlinks-webui/scripts/batchlinks-downloader.py", line 567, in hfdown
    runwithsubprocess(f"aria2c --console-log-level=info -c -x 16 -s 16 -k 1M {todownload_s} -d {folder_s} -o {filename}", folder_s)
  File "/content/stable-diffusion-webui/extensions/batchlinks-webui/scripts/batchlinks-downloader.py", line 244, in runwithsubprocess
    print("debug folderforsavestate: " + folder)
TypeError: can only concatenate str (not "PosixPath") to str

Another bug I saw is the output box seems to not display anything after finishing the task, successful or not. Granted, I am not using --gradio-queue in my tests.

Hi @etherealxx! here's my testing:

Thank you so much for the findings!🤗✨
that error log is actually comes from the debug text i made for, well, debugging purposes.
    print("debug folderforsavestate: " + folder)
TypeError: can only concatenate str (not "PosixPath") to str

should be like this
print("debug folderforsavestate: " + str(folder))

Also yeah, i haven't tested this on non queue environment and the old version, i might check that. More bug fixing to come🛠🪲🏃♂💨💨

hi @NUROISEA , it's been a while😅
I did more fixing and adding stuff. I'm hoping that this is the last update before i merge to main.😁 Here's all the new features. (and yes, github raw and catbox is supported)
!git clone -b ariasubnewcivit https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

I tested it on camenduru's v2.0. Also with gradio queue on, as queue off might breaks some things. (camen's colab is queue on by default anyway)
I also has this version that was built solely for camenduru's v1.6 colab. (won't work properly on others)
!git clone -b onedotsix https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

Another bug I saw is the output box seems to not display anything after finishing the task, successful or not.

this one seems to be an issue with timeout and websocket (i didn't quite understand that), but to mitigate that problem, this 'onedotsix' variant will cut the download session every 2 minutes, and there will be a resume button to resume the cutted download session.

Hi hello @etherealxx o/
I'm quite short in time so I only tested your extension on a 1 month old commit of the webui since I figured there's no major changes between this and the latest version of the webui anyway 😄
Alas the test went smooth, no problems whatsoever!
Tested with --gradio-queue
Input
#model
https://huggingface.co/swl-models/mix-pro-v3/resolve/main/mix-pro-v3-non-ema-fp16.safetensors
#vae
https://huggingface.co/NUROISEA/av3-mirror/resolve/main/anything.vae.pt
#embed
https://cdn.discordapp.com/attachments/1064919066420203551/1064919069519773757/EMT.pt
https://cdn.discordapp.com/attachments/1066570375653244928/1066570434746785882/Moomers.pt
#hypernet
https://cdn.discordapp.com/attachments/1070489470127841381/1070489471964954684/MomopocoV3.pt
#lora
https://huggingface.co/YoungMasterFromSect/Trauter_LoRAs/resolve/main/LoRA/Misc.%20Characters/Aponia/Aponia_Softpruned.safetensors
https://mega.nz/file/gAxTWBAI#uL7EZay-OND5G6ELJlGfUNG0s7Q4TynZKqFdvs0v0tc ##agent8-finetune
https://mega.nz/file/oU43FSTY#vwAfsAb7RKJ4xtsSP7uzrKpWhh1y8BdpIBFurwsVP2o ##agent8-dreambooth
https://files.catbox.moe/48tq2i.safetensors ##gawr gura atlantis
https://files.catbox.moe/uarze8.safetensors ##neurosama!
https://github.com/fkunn1326/openpose-editor
https://civitai.com/models/5373/makima-chainsaw-man-lora ##lora
https://civitai.com/models/4379/toru8p-waven-chibi-style ##hypernetwork
https://civitai.com/models/3036/charturner-character-turnaround-helper-for-15-and-21 ##ti

All links work on all download methods, even catbox!
Test limitation is I didn't test the raw github links since I cannot find TIs or anything that is hosted in github.

Since stuff works flawlessly, I'll just suggest things. These can be done on a later date, whenever you feel like it 😆

You can maybe change this so people know they can use catbox links

The UI gets very squished on mobile phone resolutions.

Catbox downloads files that have gibberish file names (the same as in the URL), maybe utilize the ## comments to it? An idea:

#lora
https://files.catbox.moe/uarze8.safetensors ##r neurosama

Notice the ##r, this would be downloaded as neurosama.safetensors instead of uarze8.safetensors. This is not an elegant approach, but I'm pretty sure that you can do something better.

Google drive support? This could be a higher priority since a lot of people use drive to store models since not everyone can use HuggingFace.

You did well on this 👏👏👏
I added your extension earlier on my colab collection, so kinda so it's being battle tested right now 😄

Alas the test went smooth, no problems whatsoever!

Thank you!

You can maybe change this so people know they can use catbox links

Will do! forgot about that😅

The UI gets very squished on mobile phone resolutions.

This one is kinda hard. If i remove the drop file here on the right, the UI would look really ugly on my ultrawide monitor😅. But yeah, it would help mobile user. I'll try to improve the UI after the v2.0.0

Catbox downloads files that have gibberish file names (the same as in the URL), maybe utilize the ## comments to it? An idea:

While i really like customization, it might get more confusing, as this hashtag syntaxing thing is, while designed to be really beginner friendly, i can see some people still getting confused to it. I would, figure out some stuff to allow easier way to renaming things.

Google drive support? This could be a higher priority since a lot of people use drive to store models since not everyone can use HuggingFace.

Let's say it's complicated right now (#43 #26 #146). Again, I'll add it if i figured things out.

You did well on this 👏👏👏

Lastly, thank you so much 🙏✨ Couldn't thank you enough.

Hello @NUROISEA , long time no see😊
For the past couple weeks i've been developing on the next update of this extension. Some of the feature are the one that you requested: renaming and google drive support.
In fact, the rename function already available since weeks ago i think😅
works something like this:
#lora
https://files.catbox.moe/uarze8.safetensors > neurosama.safetensors

for current version that i'm developing, it's aiming to support more and more website. Currently:

This update will also use different method for downloading civitai from direct links, speeding up the download speed by up to 40x (looks comical but the current method can sometimes goes really slow like 5Mbps). Also there's a lot going on in the backround, related to how civitai model page link is downloaded (takes a lot of my time to fix it 🙃)
Another feature i'm implementing is called 'sdless', where you can run the extension without even launching the sd-webui (more here). It makes my developing progress much quicker! (though, this is the toughest update since i'm still learning things 😅)
Next feature that someone suggested is custom hashtag with custom path. Works something like this
@new #temp /content/temp
#temp
<link>

Another qol feature is @extract to extract every 7z file on curent directory.
Lastly, the UI got updated a bit, and that's it.
if you want to test it:
!git clone -b sdless https://github.com/etherealxx/batchlinks-webui /content/stable-diffusion-webui/extensions/batchlinks-webui

I might spend another day or two to write some stuff on the readme page, and then release the update straight away.
I would like to reach you in discord (etherealxx#7060) if you have one, so we can talk or something👀. Or maybe just join camenduru's server since i'm there too.✨

Hi @etherealxx! Cool update!
I have tested the extension with the latest A1111 commit with the same text file as my previous comments and there are some bugs, unfortunately:

Progress bar seems to be stuck to -1.0% if the download fails, but if the next download runs, the progress bar would function normally (this is quite inconsistent to happen)

The progress bar doesn't have any indication? the bar colors, the text percentage seems to work as intended.

Is this intentional? The progress bar appears on the hashtags table:

Do note that my test is limited since I have limited time and do not have the proper links to the new sites but I would assume that they work, catbox in an exception since I am getting unlucky with the servers and I cannot download from that site. This is it for my bug reports. (sorry if this feels quite lazy I'm also doing something and I'm just testing on my downtime 😅)

I tried breaking your extension, by mixing up the hashtags, a simplified example would be:
#lora
<link>
#model
<link>
#lora
<link>
...

and it would just download it correctly to the appropriate places!
The rename feature is such a nifty QoL one, thank you for that. The custom path works as intended too!
I haven't tested @extract and I assume it only works with .7z?
I like what you have done to the UI, hiding stuff and stretching the UI seems pretty nifty (although stretched looks dank on wide resolutions 😂)
Overall, good job on this one! Seems pretty solid by the looks of it! 🎉
And yes I do have discord, I'll just DM you with this screenshot of this response in the editor. I think you can verify if you try to edit this.

Okay, time to address the problem.

Progress bar seems to be stuck to -1.0% if the download fails

i don't know how to replicate it, honestly. Can you give me the example/links where it happens?
all i know for 1% is, i put that as placeholder to trigger the progressbar to run (idk but at one point the progress bar wont show up without that placeholder). I think i'll make sure the progress bar goes to 100% whenever the download is complete.

The progress bar doesn't have any indication? the bar colors

It's supposed to be orange, gradio's color. But i think the auto1111's code messed it up. When i launch the UI standalone-ly, the progress bar works fine.

Is this intentional? The progress bar appears on the hashtags table:

so the thing is, the way gradio works is an UI change only could happen by a return value passed into the components. I want it so that after the download is finished, the table become automatically updated, so that when ppl use custom hashtag, it will shows after the download is finished right away. (i can't update the UI while the code is running, unless it use gradio every like the log text, which blinks every now and then).
In order to update the table right after the download is complete, i need to assign the table as the output for the button, just like the output box. But how the progress bar works in gradio is, it will make every output as a progress bar, hence the table also appears as progress bar. (sucks honestly, but i can't find a good workaround currently)

Do note that my test is limited since I have limited time and do not have the proper links to the new sites but I would assume that they work

I do test all of them, but you seem have a skill to somehow breaks my extension sometimes, and that's useful😆

sorry if this feels quite lazy I'm also doing something and I'm just testing on my downtime 😅

Don't worry! I'm not forcing you at all. I'm just asking for a little help in your spare time😋 don't feel burdened, consider it a little activity when there is nothing to do.

I haven't tested @extract and I assume it only works with .7z?

yeah i made it bcoz one of the link i downloaded from pixeldrain is a .7z file. Would be very handy coz the syntax for extracting a simple single item is pretty long. I'll add .zip and .rar support too i guess...

I like what you have done to the UI, hiding stuff and stretching the UI seems pretty nifty (although stretched looks dank on wide resolutions 😂)

The reason i haven't got rid that useless huge drop your txt here on the old version is because, just like you said, it looks jank on my ultrawide monitor. So i instead add it as an option. The strech UI thing works great on mobile. Unstretched is the default, as it's how the UI looks like before.
Again, thank you for spending your time on this passion project of mine, really really appreciated😊


Update instructions on how to use PGV with Buf

It was missing an exception to the go_package_prefix

 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.


patch: Custom password generation policy for user-credentials secrets

Custom password generation policy for user-credentials secrets
Fix service credentials secret (missing fields in response)

:tada: This PR is included in version 2.0.10 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


AzureStaticWebApp deployment task does not recognize artifact location

I am trying to deploy an Azure Static Web App using an Azure DevOps yaml pipeline. The provided example template builds the app and deploys the static web app immediately:

I'd like to separate these two steps in two stages:

Stage 1: Build and package the application and publish it to an artifact
Stage 2: Deploy the packaged application from the artifact to an azure static web app instance.

These are the deploy tasks I've implemented:

The approach works fine for an Azure Functions app. But the Azure Static Web App task is unable to find the location:

The artifact does contain the required files:

This is the full yaml  build, for reference:
# .NET Core Function App to Windows on Azure
# Build a .NET Core function app and deploy it to Azure as a Windows function App.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core

trigger:
- main

variables:
  # You NEED to configure these variables
  azureSubscription: '__REDACTED__'
  prefix: 'Ambacht.Common'
  functionAppName: 'amb-fun-common'

  # These are probably fine
  framework: 'net6.0'
  configuration: 'Release'

  # Agent VM image name
  vmImageName: 'ubuntu-latest'

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

    steps:
    - task: DotNetCoreCLI@2
      displayName: Build Solution
      inputs:
        command: 'build'
        projects: '$(prefix).sln'
        arguments: --configuration $(configuration)

    - task: ArchiveFiles@2
      displayName: 'Archive Functions App Files'
      inputs:
        rootFolderOrFile: 'src/$(prefix).Functions.App/bin/$(configuration)/$(framework)'
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/Functions.$(Build.BuildId).zip
        replaceExistingArchive: true

    - task: CopyFiles@2
      displayName: 'Copy Blazor App Files'
      inputs:
        sourceFolder: 'src/$(prefix).Blazor.App/bin/$(configuration)/$(framework)'
        contents: '**'
        targetFolder: '$(Build.ArtifactStagingDirectory)/Blazor.$(Build.BuildId)'

    - publish: $(Build.ArtifactStagingDirectory)
      artifact: drop

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()

  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: 'development'
    pool:
      vmImage: $(vmImageName)

    strategy:
      runOnce:
        deploy:

          steps:
          - task: AzureFunctionApp@1
            displayName: 'Deploy Functions App'
            inputs:
              azureSubscription: '$(azureSubscription)'
              appType: functionApp
              appName: $(functionAppName)
              package: '$(Pipeline.Workspace)/drop/Functions.$(Build.BuildId).zip'

          - task: AzureStaticWebApp@0
            displayName: 'Deploy Blazor App'
            inputs:
              app_location: '$(Pipeline.Workspace)/drop/Blazor.$(Build.BuildId)'
              skip_app_build: true
              output_location: 'wwwroot'
            env:
              azure_static_web_apps_api_token: $(deployment_token)

The AzureStaticWebApp task’s app location is relative to the current directory, which you have to set if it differs from the default. Try:
app_location: /
output_location: “”
skip_app_build: true
cwd: $(Pipeline.Workspace)/drop /Blazor.$(Build.BuildId)/wwwroot

See documentation for more details: https://docs.microsoft.com/en-us/azure/static-web-apps/build-configuration

I've just stumbled upon this issue after banging my head against the wall for hours. It doesn't help that there's a similar issue on stackoverflow that offers a different solution (That doesn't work for me): https://stackoverflow.com/questions/68786583/task-azurestaticwebapp0-could-not-detect-this-directory-but-its-presented/72021979
I'm not too familiar with the ins and outs of Azure DevOps these days, but there's definitely some confusion over this task using $(System.DefaultWorkingDirectory) over $(Pipeline.Workspace)  and the fact that app_location is a relative in all cases. This feels like a really easy to fall over "Gotcha" and the error messages are misleading at best.
I don't know what the correct solution is, but there's something obscure and easy to fall down on with this task., it definitely needs to be called out better in the documentation because you essentially get what feels like different behaviour if you're using this task as part of a job sequence versus using it to pull down an artifact, even though it's technically doing the same thing in both. Perhaps the error message about being unable to find the directory could be expanded to hint that this path is always relative?
Though my preference is to allow app_location to be a full path as well, but I am unsure if that will break too many existing things.

The comment by @anthonychu put me on the right track. Eventually, this snippet did the trick for me:

The path $(Pipeline.Workspace)/drop/Blazor.$(Build.BuildId) contains the folder generated by dotnet publish. This means that there is a folder wwwroot in there containing the application. To be frank, I'm not sure if the parameter app_location refers to that folder or to the target folder. But it works.

@anthonychu @AmbachtIT I am also using @AzureStaticWebApp@0 while skipping the  app build (already done in another pipeline). I want to give the task a  configure file to use  in order to specify some routing rules. However, because the config_file_location is relative to the working directory, specifying the correct directory to use (my staticwebapp.config.json is in a folder in my source files so in in a child folder of $(System.DefaultWorkingDirectory)) becomes messy.
I have to use magic strings  like this config_file_location: 's/src/myfolder' which does not feel right. Any idea how to do this a better way? I have the feeling that the fact that SWA CLI (which is I guess what is used behind the @AzureStaticWebApp@0 task) uses relative paths make thing more complicated that it would be with absolute paths.

@TechWatching is the mentioned azure pipeline script working ? I have gotten the same issue for hours now and have not been able to deploy it to the SWA. Even with the magic strings , Same issue is seen.

I asked the question on mastodon and here is the answer I got : https://elk.zone/hachyderm.io/@anthonychu/109741222640671169. with that I managed to get my pipeline work


Disable native html5 autocomplete in dataset save

Also patches   "spaces" characters to get parsed as _ "undescores".

Fixes #54


[Feature] Support for extraEnvFrom in the helm chart

Describe the solution you'd like
Currently, we support extraEnv for passing extra environment variables to the operator Deployment.
Instead of passing each env variable individually, be able to pass multiple variables by referencing a ConfigMap or a Secret:
extraEnvFrom:
   - configMapRef:
       name: mariadb-operator-env-extra

@gprossliner that would be awesome! 🙏🏻 🙏🏻 🙏🏻 Please go ahead and let me know if you need any help!

This has been addressed by @gprossliner via https://github.com/mariadb-operator/mariadb-operator/pull/766 ! Thanks for the contribution 🙏🏻 🦭


How to prepare list of files for dataloader, avoiding the duplicated work?

I do
self.image_paths = sorted(Path(self.hparams["image_path"]).rglob("*.jpg"))

in setup
and use self.image_paths to initialize the data loader in train_dataloader
I have 10m+ files and rglob takes some time.
My model is trained on 4 GPUs and as I understand I do rglob 4 times.
What is the best way to do it, so that it is done once and not 4 times?
__init__
setup ?
train_dataloader

somewhere else?

Would the prepare_data function work here?

If I use
def prepare_data():
   self.file_names = find_file_names()

self.file_names will not be accessible from the
def train_dataloader

Even if you initialize self.file_names = None in your init method?

Try something like this, maybe?
from pathlib import Path

import pytorch_lightning as pl

class FileDatamodule(pl.LightningDataModule):

    def __init__(self, file_reference_file='file_names.txt'):
        self.file_reference_file = Path(file_reference_file)

    def prepare_data(self):
        if not self.file_reference_file.exists():
            # do your rglob stuff + find the files
            # save your file to self.file_reference_file

    def setup(self, stage):
        self.file_names = self.file_reference_file.open().readlines()
        # do whatever you need w/ file names...


Search Box

Feature
We could use a searchbox.  Some features:
Allow specifying a time (for the callback).
Allow a fixed size, or an expandable search.
Allow providing "content" (up/down navigation buttons below).
Allow specifying "saved" searches through a dropdown button.
Examples
Simple:

Expandable:

Navigation:

For the initial PR we will focus on the first 2 examples in your request.  I will create a new issue for the 3rd part of this request to track separately.


Entity Not Found

When trying to move around the project, I had some issues with Entity Not Found Exception from Company Entity.
Probably I would suggest adding (fetch = FetchType.EAGER,mappedBy = "company",cascade = CascadeType.ALL) for the relationship.
I had to revert to the normal Integer id instead of uuid. Seems like the generated UUID was not being mapped correctly between the contact and the company table.

Did you fix the issue? Could you clarify what you mean by "When trying to move around the project"?

Hello,
I was trying to create a sample Vaadin project. So while running the
project, at first it was okay. But later on, the generated data when the
project was being started would not match i.e the relationship between the
Contacts and Company did not seem to work. Some contacts had references to
company_id that did not exist. I switched from UUID to normal integer id
and the project was okay for the next 10+ times I tried running it. But for
a normal database created without generated data, the project is okay. That
is why I closed the issue.
On Thu, Mar 24, 2022 at 9:40 AM Tarek Oraby @.***>
wrote:

Did you fix the issue? Could you clarify what you mean by "When trying to
move around the project"?
—
Reply to this email directly, view it on GitHub
https://github.com/vaadin/flow-crm-tutorial/issues/44#issuecomment-1077287737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEDF2AWGGWCTV5QWC7H5XBLVBQE5TANCNFSM5ROKRH5A
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


add the <<= operator

the <<= operator allows async unboxing in the library
"var a <<= f;"  expands to "return yield(f, (a)->
and the rest of the current block is put into the lambda body
inspired by C#'s  await/async
kudos to Joe Groff

Is this going to conflict with the proposed bitwise operators?

@agemogolk On IRC we talked about changing the syntax into something more in-line with the other variable binding forms, for instance bind x = async(); instead of var x <<= async();.

closing to make a new one (github is odd)

https://github.com/jckarter/clay/pull/183


paths vs PATHS

In 26e5368dab9af6ca62b50a6fa786cb438ad406f4 you removed the .upper() from the attr. As you defined paths, lower case,
https://github.com/rec/impall/blob/26e5368dab9af6ca62b50a6fa786cb438ad406f4/impall.py#L339
as the argparse argument, this isn't mapped to the PATHS attribute in the ImpAllTest class.
Therefore the paths argument is broken. You should reintroduce the .upper() or change the argparse argument to PATHS.
Currently only -P or --PATHS works.

Hello, again, and ARG, what an ineptness on my part, due simply to overload.
On it!

I should add that this is one of my older libraries, and I was also determined to have no dependencies, so I used argparse, which I now consider somewhat bad, and then did all these tricks.
Downright embarrassing, oh, well.

I fixed this and tested it as follows (see #7)
impall .
impall -p .
impall -P .
impall --PATH .
impall test
impall test/test_impall.py

Note that the last one does nothing, see #11.
This is released as 1.5.1.
I am hoping to have some time in the new year to be able to fix those two issues above, but please contact me if anything is blocking you immediately and I'll fast-track it.

Thanks!


What is the purpose of oauth?

I thought oauth could be used for function like "Login with FB" etc. Is this true?
By looking through the source code of facebook.js, it seems to be used for graphRequest which is for logged in user. But where is the code to login? Or I misunderstand the function of oauth?
I know oauth will get the access token. But to get the access token, we need to login first, am I right?

The purpose is to provide alternate methods of authentication. OAuth is the primary target, but it can as well be something else. Anonymous is a good example. You could also implement Digits through that method.
The authentication credentials have to be** acquired by the client** and sent to the server. parse-server then validates that it supports that authentication method by looking in the oauth configuration and can perform additional validation, as checking that the access token is valid.
This implementation is intended to be lightweight and not provide the complex flow of server-side oauth authentication that required URL redirects etc...
This is how you would setup parse-server for a custom authentication provider.
the provider has to implement: validateAuthData(authData) and return a Promise that resolves if the authData is valid.
On the client:
Acquire auth data for that provider and put it in a hash.
Use the linking/login features from the client SDK or the REST API to send to the server your hash:
{
authData: {
 myauth: {
   key: value,
   token: token,
  something: else,
  id: uniqueId // important, the ID in your auth system for late retrieval
 }
}
}

Upon reception, the server will lookup in it's configuration or the default providers for an oauth provider name myauth. Then will pass the content of authData.myauth to the validateAuthData function defined by your provider.
If the validation passes, the user can now login with this auth data

To get the access token, you do it client-side using a lib, like hello.js.
The only norm you have to respect is the object format, @flovilmart has just given you, that you pass to Parse.User.logInWith (for the js sdk).

@oallouch So all the authentication will still be done in client side? Then the token will be passed to parse-server? The oauth is only used to attach the token to parse user. Am I right? Thanks.


Can't always find refs in a wrapper

Version
1.0.0-beta.29
Reproduction link
https://github.com/benm-eras/vue-issue-1
Steps to reproduce
clone the minimal repro and run yarn test:unit
What is expected?
The example Foo component identifies 4 elements with the ref attribute: the root, a child  Bar component, a div in the child's default slot and another in a named slot. I would expect to be able to find them all with the wrapper.find({ref:"name"}); syntax.
What is actually happening?
It only finds the "child" component, even though wrapper.vm.$refs contains all 4.

the tests that highlight the issue can be found at /tests/unit/example.spec.js

So about 5 mins after opening this I realized that I was assuming that because the wrapper was being written to the console as Wrapper {} (from console.info(wrapper.find({ref:"name"}));) that it wasn't finding the ref. I was wrong and it has been finding the refs all along.
Please ignore me


Tsconfig - add skiplibcheck

This avoids our TS checks parsing all library files when running linting & compiling, only the direct usage of libraries will be checked.
This avoids us needing to consider nested dependencies off other libraries when developing with TypeScript.
https://www.typescriptlang.org/tsconfig#skipLibCheck

Currently our linting is throwing unhelpful warnings after the TypeScript upgrade, hence this PR to avoid both compiling against and checking against secondary inner dependencies.
See comment https://github.com/wagtail/wagtail/pull/11258#issuecomment-1852863008

@thibaudcolas - this issue actually is a bit more sinister on local development, as the tsc checks fail it will not run other subsequent linting checks locally. Would be good to get your eyes on this please.


Allow a line starts with dot for test case 1

issue
#387
What I did
Add test for first case and make code change to pass it
123
  .to_s

puts "ok"

@yhara
plz review this when you have time :


adds onQuery option which is called everytime before a fetch happens

Description
This PR adds an onQuery option to useQuery().
Devs can opt to add a callback to handle side-effects related to the query in a similar fashion as useMutation() onMutate.
Example:
const result = useQuery(
   queryKey,
  () => 'data',
  { onQuery: () => console.log('onQuery') }
)

Also:
Great job on react-query! Love using it :-)

How will this work for infinite queries please? When a refetch happens, will it be called once, or once for each page that is refetched?

Hi TkoDodo, it will be called for every page that is fetched

Hi TkoDodo, it will be called for every page that is fetched

cool, can you add a test for this maybe? Also, should we get access to the pageParams or the index or so ? it also needs documentation please :)

Yes, of course :-).

Added a test for useInfiniteQuery
onQuery is now called with a QueryFunctionContext.

updated tests accordingly

Updated documentation

Please let me know if you want anything changed!

I would also appreciate another test that shows that onQuery is called even when a retry happens, maybe we should even mention this in the docs? Because if an error happens, with default of retry: 3, the function would be called 4 times before we get to an error state (unless I misinterpreted the code 😅 )

I added the test and updated the docs.
Please let me know what you think :-)

Nice! Two question that come to mind:

Should the onFetch function be called once, or also on each retry? What is its purpose?

The functionality can also be achieved with useEffect, do we need a separate callback?

const { isFetching } = useQuery()

useEffect(() => {
  if (isFetching) {
    // Run code...
  }
}, [isFetching])

The functionality can also be achieved with useEffect, do we need a separate callback?

can't all of the callbacks theoretically be achieved with useEffect?
if we include retries and call it once per retry, I don't think that we can actually do it with useEffect :)

@boschni

We'd like onFetch to be called on every retry as well. For instance, we'd like to able to log query-duration for client-side analytics. As @TkDodo says, that's currently not possible using useEffect with isFetching.

For consistency/simplicity I think it's nice to be able to configure these callbacks in a similar way as useMutation.
I think it's easier to configure them 'from top', instead of relying on its result to hook into it.

E.g.
const useMyQuery = (enableLogging:boolean) => {
   return useQuery(
      key,
      () => { /* fetch */ },
      enableLogging
            ? configForLogging
            : undefined
)}

Instead of:
const useMyQuery = (enableLogging:boolean) => {
   const { isFetching, ...rest } = useQuery(
      key,
      () => { /* fetch */ }
   )

   // I don't like this as tightly coupled here.
   React.useEffect(() => {
      if (enableLogging) {
         if (isFetching) {
            startClock()
         } else {
            stopClock()
         }
      }

   }, [ isFetching, enableLogging ])

   return {
      isFetching,
      ...rest
   }
)}

I think you're right though. We could probably solve it using some well chosen useEffect(), or some other way.
I also think the onFetch is a nice addition for consistency :-).

I'm not sure if this would be the best approach for request logging because if you have multiple components using the same query then it would be registered multiple times. Usually I place functionality like this (authorization/logging) in an API client:
class SomeApi {
  fetchSomething() {
     this.request("/something")
  }
  request(url) {
    log(url)
  }
}

const api = new SomeApi()

function Component() {
  const result = useQuery(() => api.fetchSomething())
}

Just to make sure none of this was in vain, I would gladly accept a PR to improve the documentation on this point. It's much easier to educate people that they can write their own "onFetch" functionality by simply using their own function that's passed to useQuery. This pattern offers more control, is an API decision that inverts control and power back to the user instead of drawing it away into abstraction, and will arguably help any dev that implements the pattern become more skilled in utilizing the general pattern of inversion of control to achieve domain-specific results.