bug when using float:left; in style

hi,
i am trying to display result 2 in each row that would be ( width:50% and float:left )
here is an example of my issue in jsfiddle you will notice only half div is showing rest is blank.
anyone can help me with this issue?
regards,

anyone?
i am prepare to donate $20 for any help regarding this issue.
i really would like to use this project instead of others.
regards,

Ok, I’ll take a look at it tonight and get back to you.

thank you Mr Kamilkp

thank you mr kamilkp.
can you look at this issue? jsfiddle
screenshot of issue => http://bodyresultsblueprint.com/issue.png

changed js to newer version
changed css size

any advice?
regards,


[WFCORE-5699] "StandardCharsets" constants (controller)

Fixes https://issues.redhat.com/browse/WFCORE-5699

@boris-unckel thanks


Onboarding Request Fail - sb-boost-tenant-app-sample CloudFormation error [EFS CREATED_FAILED]

Issue
After I installed SaaS Boost and setup tier info and Application, I created a tenant for testing.
In Cloudformation console, I checked the stack status. sb-boost-tenant stack was successfully completed.
But sb-boost-tenant-....-app-sample-... was not completed and the error(efs  CREATED_FAILED) occurred and rollback the all stacks.
I tried and tested it on the other aws environment(another AWS account) but they were also failed.
Environment

AWS Region: ap-northeast-2
AWS SaaS Boost Version: v2.2.1
Workload OS (Linux or Windows): Linux
test date: 05/01 ~ now (Reference: AWS SaaS Boost Workshop)

See discussion in #513


about the performance of originial CLIP

hello, thanks for your great work! I would like to know if the author has tested the performance of loading the original CLIP model into the code of open_clip. I have noticed that this performance is inconsistent with using the original openai CLIP code, especially in terms of ARO Relation (ARO Relation 0.66, ARO Attribute 0.65).

Our code loads the original CLIP model, so I'd have guessed the performance to be similar. I have no clue on why loading the model with open-clip's API might change the performance.
If you can share your code (the end-to-end pipeline from loading to results), I can take a look and run it.

evaluate_scores

hello, the function to compute the final scores is  evaluate_scores , following the code you released.

Thanks! I will look and hopefully let you know if I find anything weird!

Thanks! I will look and hopefully let you know if I find anything weird!

Oh, thanks for your kind help sincerely!

Hello, @hiker-lw
The precisions of each model parameter are different.
The original OpenAI CLIP is fp16 by default, while it is fp32 in the case of open-clip models.
When the floating precisions are matched, it gives identical results to me.
For example, in VG Relation case,
# ViT-B-16 initialized from open-clip (precision: fp_16)
macro_acc: 0.5889015395145901, micro_acc: 0.5063708902535823

# ViT-B/16 initialized from the original OpenAI CLIP (precision: fp_16)
macro_acc: 0.5889015395145901, micro_acc: 0.5063708902535823

# ViT-B-16 initialized from open-clip (precision: **fp_32**)
macro_acc: 0.5969155559277846, micro_acc: 0.511216944479258

When initializing CLIP from open_clip library, you can pass precision="fp16" to open_clip.create_model_and_transforms.
In this case, you should manually cast the input image tensors to torch.float16, as I find that open_clip does not process this.
As note, I calculated the accuracy for VG-relation as discussed in this issue #9. To summarize as below,
# Code snippet of evaluate_scores method in VG_Relation Dataset class
for relation in np.unique(all_relations):
    relation_mask = (all_relations == relation)
    if relation_mask.sum() == 0:
        continue
    result_records.append(
        {
            "Relation": relation,
            "Accuracy": float(correct_mask[relation_mask].mean()),
            "Count": float(relation_mask.sum()),
            "Dataset": "Visual Genome Relation"
        }
    )

symmetric = ['adjusting', ...]

# macro average
df = pd.DataFrame(result_records)
df = df[df["Count"] > 9]  # why?
df = df[~df.Relation.isin(symmetric)]
accuracy = float(df.Accuracy.mean())
return {"macro_acc": accuracy, "micro_acc": np.mean(correct_mask)}, result_records

oh, thank you for your clarification!

cast the input image tensors to torch.float16

hello, thanks for you helpful reply, can you provide some modified code snippet of casting tensor to torch.float16? I found merely casting the image tensor to torch.float16 would release datatype error when executing self-attention computation.

Hello, @hiker-lw
The precisions of each model parameter are different. The original OpenAI CLIP is fp16 by default, while it is fp32 in the case of open-clip models. When the floating precisions are matched, it gives identical results to me.
For example, in VG Relation case,
# ViT-B-32 initialized from open-clip (precision: fp_16)
macro_acc: 0.5889015395145901, micro_acc: 0.5063708902535823

# ViT-B/32 initialized from the original OpenAI CLIP (precision: fp_16)
macro_acc: 0.5889015395145901, micro_acc: 0.5063708902535823

# ViT-B-32 initialized from open-clip (precision: **fp_32**)
macro_acc: 0.5969155559277846, micro_acc: 0.511216944479258

When initializing CLIP from open_clip library, you can pass precision="fp16" to open_clip.create_model_and_transforms. In this case, you should manually cast the input image tensors to torch.float16, as I find that open_clip does not process this.
As note, I calculated the accuracy for VG-relation as discussed in this issue #9. To summarize as below,
# Code snippet of evaluate_scores method in VG_Relation Dataset class
for relation in np.unique(all_relations):
    relation_mask = (all_relations == relation)
    if relation_mask.sum() == 0:
        continue
    result_records.append(
        {
            "Relation": relation,
            "Accuracy": float(correct_mask[relation_mask].mean()),
            "Count": float(relation_mask.sum()),
            "Dataset": "Visual Genome Relation"
        }
    )

symmetric = ['adjusting', ...]

# macro average
df = pd.DataFrame(result_records)
df = df[df["Count"] > 9]  # why?
df = df[~df.Relation.isin(symmetric)]
accuracy = float(df.Accuracy.mean())
return {"macro_acc": accuracy, "micro_acc": np.mean(correct_mask)}, result_records

But when I load the original the OpenAI CLIP ViT-B-32 weight into open_clip code using the default precision (torch.float32), for ARO-Relation accuracy, I get an accuracy of 0.66. Below is the code snippet which can be used to reproduce this result.
import torch
from torch.utils.data import DataLoader
from torch.utils.data import Dataset
import os
import json
import logging
import numpy as np
from tqdm import tqdm
import pandas as pd
from PIL import Image
from easydict import EasyDict as edict

import ipdb
import open_clip

def evaluate_aro_attribute(model_path, pretrained_path, device):
    model, _, image_preprocess = open_clip.create_model_and_transforms('ViT-B-32', pretrained=pretrained_path, device=device)
    model = model.eval()
    model = CLIPWrapper(model, device=device)

    # evaluate on ARO Attribute
    dataset_dir = "../datasets/ARO_Relation_dataset"
    vga_dataset = VG_Attribution(image_preprocess=image_preprocess, root_dir=dataset_dir)
    vga_loader = DataLoader(vga_dataset, batch_size=1024, shuffle=False)
    vga_scores = model.get_retrieval_scores_batched(vga_loader)
    vga_records = vga_dataset.evaluate_scores(vga_scores)
    df = pd.DataFrame(vga_records)
    print(df)
    df = df.round({'Accuracy': 4})
    print(f"VG-Attribution Macro Accuracy: {df.Accuracy.mean():.3f}")

def evaluate_aro_relation(model_path, pretrained_path, device):
    model, _, image_preprocess = open_clip.create_model_and_transforms('ViT-B-32', pretrained=pretrained_path, device=device)
    model = model.eval()
    model = CLIPWrapper(model, device=device)

    # evaluate on ARO Relation
    dataset_dir = "../datasets/ARO_Relation_dataset"
    vgr_dataset = VG_Relation(image_preprocess=image_preprocess, root_dir=dataset_dir)
    vgr_loader = DataLoader(vgr_dataset, batch_size=1024, shuffle=False)
    vgr_scores = model.get_retrieval_scores_batched(vgr_loader)
    vgr_records = vgr_dataset.evaluate_scores(vgr_scores)
    symmetric = ['leaning against','pulled by','pulling','adjusting', 'attached to', 'between', 'bigger than', 'biting', 'boarding', 'brushing', 'chewing', 'cleaning', 'climbing', 'close to', 'coming from', 'coming out of', 'contain', 'crossing', 'dragging', 'draped over', 'drinking', 'drinking from', 'driving', 'driving down', 'driving on', 'eating from', 'eating in', 'enclosing', 'exiting', 'facing', 'filled with', 'floating in', 'floating on', 'flying', 'flying above', 'flying in', 'flying over', 'flying through', 'full of', 'going down', 'going into', 'going through', 'grazing in', 'growing in', 'growing on', 'guiding', 'hanging from', 'hanging in', 'hanging off', 'hanging over', 'higher than', 'holding onto', 'hugging', 'in between', 'jumping off', 'jumping on', 'jumping over', 'kept in', 'larger than', 'leading', 'leaning over', 'leaving', 'licking', 'longer than', 'looking in', 'looking into', 'looking out', 'looking over', 'looking through', 'lying next to', 'lying on top of', 'making', 'mixed with', 'mounted on', 'moving', 'on the back of', 'on the edge of', 'on the front of', 'on the other side of', 'opening', 'painted on', 'parked at', 'parked beside', 'parked by', 'parked in', 'parked in front of', 'parked near', 'parked next to', 'perched on', 'petting', 'piled on', 'playing', 'playing in', 'playing on', 'playing with', 'pouring', 'reaching for', 'reading', 'reflected on', 'riding on', 'running in', 'running on', 'running through', 'seen through', 'sitting behind', 'sitting beside', 'sitting by', 'sitting in front of', 'sitting near', 'sitting next to', 'sitting under', 'skiing down', 'skiing on', 'sleeping in', 'sleeping on', 'smiling at', 'sniffing', 'splashing', 'sprinkled on', 'stacked on', 'standing against', 'standing around', 'standing behind', 'standing beside', 'standing in front of', 'standing near', 'standing next to', 'staring at', 'stuck in', 'surrounding', 'swimming in', 'swinging', 'talking to', 'topped with', 'touching', 'traveling down', 'traveling on', 'tying', 'typing on', 'underneath', 'wading in', 'waiting for', 'walking across', 'walking by', 'walking down', 'walking next to', 'walking through', 'working in', 'working on', 'worn on', 'wrapped around', 'wrapped in', 'by', 'of', 'near', 'next to', 'with', 'beside', 'on the side of', 'around']
    df = pd.DataFrame(vgr_records)
    df = df[~df.Relation.isin(symmetric)]
    df = df.round({'Accuracy': 4})
    print(f"VG-Relation Macro Accuracy: {df.Accuracy.mean():.3f}")

class CLIPWrapper:
    def __init__(self, model, device):
        self.model = model
        self.device = device

    @torch.no_grad()
    def get_retrieval_scores_batched(self, joint_loader):
        """Computes the scores for each image_option / caption_option pair in the joint loader.

        Args:
            joint_loader (DataLoader): batches have "image_options" and "caption_options" fields.
            "image_options" is a list of images, and "caption_options" is a list of captions.

        Returns:
            all_scores: A numpy array containing the scores of the shape NxKxL,
            where N is the number of test cases, K is the number of image options per the test case,
            and L is the number of caption options per the test case.
        """
        scores = []
        tqdm_loader = tqdm(joint_loader)
        tqdm_loader.set_description("Computing retrieval scores")
        for batch in tqdm_loader:
            image_options = []
            for i_option in batch["image_options"]:
                image_embeddings = self.model.encode_image(i_option.to(self.device)).cpu().numpy() # B x D
                image_embeddings = image_embeddings / np.linalg.norm(image_embeddings, axis=1, keepdims=True) # B x D
                image_options.append(np.expand_dims(image_embeddings, axis=1))

            caption_options = []
            for c_option in batch["caption_options"]:
                caption_tokenized = torch.cat([open_clip.tokenize(c) for c in c_option])
                caption_embeddings = self.model.encode_text(caption_tokenized.to(self.device)).cpu().numpy() # B x D
                caption_embeddings = caption_embeddings / np.linalg.norm(caption_embeddings, axis=1, keepdims=True) # B x D
                caption_options.append(np.expand_dims(caption_embeddings, axis=1))

            image_options = np.concatenate(image_options, axis=1) # B x K x D
            caption_options = np.concatenate(caption_options, axis=1) # B x L x D
            batch_scores = np.einsum("nkd,nld->nkl", image_options, caption_options) # B x K x L
            scores.append(batch_scores)

        all_scores = np.concatenate(scores, axis=0) # N x K x L
        return all_scores

class VG_Attribution(Dataset):
    def __init__(self, image_preprocess, text_perturb_fn=None, image_perturb_fn=None, root_dir="", download=False):
        '''
        image_preprocess: a function that takes in a PIL image and returns a tensor.
        text_perturb_fn: Not used for this dataset. Just for compatibility with other datasets.
        image_perturb_fn: Not used for this dataset. Just for compatibility with other datasets.
        root_dir: Directory for the VG-A dataset.
        '''
        self.root_dir = root_dir
        annotation_file = os.path.join(root_dir, "visual_genome_attribution.json")
        image_dir = os.path.join(root_dir, "images")

        with open(annotation_file, "r") as f:
            self.dataset = json.load(f)

        for item in self.dataset:
            item["image_path"] = os.path.join(image_dir, item["image_path"])

        # Set of attributes in each test case
        self.all_attributes = [f"{item['attributes'][0]}_{item['attributes'][1]}" for item in self.dataset]
        self.image_preprocess = image_preprocess

    def __len__(self):
        return len(self.dataset)

    def __getitem__(self, index):
        test_case = self.dataset[index]
        image = Image.open(test_case["image_path"]).convert('RGB')
        # Get the bounding box that contains the relation. This is to remove the irrelevant details in the scene.
        image = image.crop((test_case["bbox_x"], test_case["bbox_y"], test_case["bbox_x"] + test_case["bbox_w"], test_case["bbox_y"] + test_case["bbox_h"]))

        if self.image_preprocess is not None:
            image = self.image_preprocess(image)

        # Each test case has a correct and incorrect caption.
        true_caption = test_case["true_caption"]
        false_caption = test_case["false_caption"]
        item = edict({"image_options": [image], "caption_options": [false_caption, true_caption]})
        # item = edict({"image_options": [image], "caption_options": [f"a photo of {test_case['attributes'][1]} {test_case['obj1_name']}", f"a photo of {test_case['attributes'][0]} {test_case['obj2_name']}", false_caption, \
        #                                                                 f"a photo of {test_case['attributes'][0]} {test_case['obj1_name']}", f"a photo of {test_case['attributes'][1]} {test_case['obj2_name']}", true_caption]})
        return item

    def evaluate_scores(self, scores):
        """
        Scores: N x 1 x 2, i.e. first caption is the perturbed one, second is the positive one
        """
        if isinstance(scores, tuple):
            scores_i2t = scores[1]
            scores_t2i = scores[0]
        else:
            scores_t2i = scores
            scores_i2t = scores

        preds = np.argmax(np.squeeze(scores_i2t, axis=1), axis=-1)
        correct_mask = (preds == 1)
        result_records = []
        all_attributes = np.array(self.all_attributes)
        for attr in np.unique(all_attributes):
            attr_mask = (all_attributes == attr)
            if attr_mask.sum() < 25:
                continue
            result_records.append({
                "Attributes": attr,
                "Accuracy": correct_mask[attr_mask].mean(),
                "Count": attr_mask.sum(),
                "Dataset": "Visual Genome Attribution"
            })
        return result_records

class VG_Relation(Dataset):
    def __init__(self, image_preprocess, root_dir):
        '''
        image_preprocess: a function that takes in a PIL image and returns a tensor.
        root_dir: Directory for the VG-R dataset.
        '''
        self.root_dir = root_dir
        annotation_file = os.path.join(root_dir, "visual_genome_relation.json")
        image_dir = os.path.join(root_dir, "images")

        with open(annotation_file, "r") as f:
            self.dataset = json.load(f)

        self.all_relations = list()
        self.all_image_path =list()
        self.all_true_caption =list()
        self.all_false_caption =list()
        for item in self.dataset:
            item["image_path"] = os.path.join(image_dir, item["image_path"])
            self.all_relations.append(item["relation_name"])
            self.all_image_path.append(item["image_path"])
            self.all_true_caption.append(item["true_caption"])
            self.all_false_caption.append(item["false_caption"])

        self.image_preprocess = image_preprocess

    def __len__(self):
        return len(self.dataset)

    def __getitem__(self, index):
        test_case = self.dataset[index]
        image = Image.open(test_case["image_path"]).convert('RGB')
        # Get the bounding box that contains the relation. This is to remove the irrelevant details in the scene.
        image = image.crop((test_case["bbox_x"], test_case["bbox_y"], test_case["bbox_x"] + test_case["bbox_w"], test_case["bbox_y"] + test_case["bbox_h"]))

        if self.image_preprocess is not None:
            image = self.image_preprocess(image)

        # Each test case has a correct and incorrect caption.
        true_caption = test_case["true_caption"]
        false_caption = test_case["false_caption"]
        item = edict({"image_options": [image], "caption_options": [false_caption, true_caption]})
        return item

    def evaluate_scores(self, scores):
        """
        Scores: N x 1 x 2, i.e. first caption is the perturbed one, second is the positive one
        """
        if isinstance(scores, tuple):
            scores_i2t = scores[1]
            scores_t2i = scores[0]
        else:
            scores_t2i = scores
            scores_i2t = scores

        metrics = {"Accuracy": None}
        preds = np.argmax(np.squeeze(scores_i2t, axis=1), axis=-1)
        correct_mask = (preds == 1)
        metrics["Accuracy"] = np.mean(correct_mask)

        all_relations = np.array(self.all_relations)

        result_records = []
        # Log the accuracy of all relations
        for relation in np.unique(all_relations):
            relation_mask = (all_relations == relation)
            if relation_mask.sum() == 0:
                continue
            result_records.append({
                "Relation": relation,
                "Accuracy": correct_mask[relation_mask].mean(),
                "Count": relation_mask.sum(),
                "Dataset": "Visual Genome Relation"
            })
        return result_records

if __name__ == '__main__':
    model_path = "ViT-B/32"
    device = "cuda" if torch.cuda.is_available() else "cpu"
    pretrained_path = "openai"
    model, _, image_preprocess = open_clip.create_model_and_transforms('ViT-B-32', pretrained=pretrained_path, device=device)
    CLIP_part_state_dict = {"state_dict": model.state_dict()}
    torch.save(CLIP_part_state_dict, "./clip_loading_using_open_clip_api.pt")
    clip_pretrained_path = "./clip_loading_using_open_clip_api.pt"
    evaluate_aro_relation(model_path, clip_pretrained_path, device)
    evaluate_aro_attribute(model_path, clip_pretrained_path, device)

When open_clip model is initialized with fp_16, for example,
# ./model_zoo/init.py
MODELS = [
    # openai
    'openai:RN50',
    'openai:ViT-B-32',
   ...
]  # open_clip CLIP model names; {pretrained}:{arch_name}

def get_model(model_name, device, root_dir=CACHE_DIR, apply_fp16=False):
    if "openai-clip" in model_name:  # original open-ai CLIP
        root_dir = join_path(root_dir, "openai-clip")
        variant = model_name.split(":")[1]
        model, image_preprocess = clip.load(variant, device=device, download_root=root_dir)
        model = model.eval()
        clip_model = CLIPWrapper(model, device)
        return clip_model, image_preprocess

    elif model_name in MODELS:  # open_clip models
        tag, model_name = model_name.split(":")
        cache_dir = get_cache_dir(model_name, tag)
        logger.info(f"Loading {tag}:{model_name} model from {cache_dir}..")
        precision = "fp16" if apply_fp16 else "fp32"
        model, _, image_preprocess = open_clip.create_model_and_transforms(
            model_name=model_name,
            pretrained=tag,
            cache_dir=cache_dir,
            device=device,
            **precision=precision**
        )
        # tokenizer = open_clip.get_tokenizer(model_name)

        model = model.eval()
        return CLIPWrapper(model.eval(), device, precision=precision), image_preprocess

    elif "blip" in model_name:
        ...

I also modified the code in get_retrieval_scores_batched method in CLIPWrapper class.
class CLIPWrapper:

    def __init__(self, model, device, precision=None):
        self.model = model
        self.device = device
        self.precision = precision  # <-- here

    @torch.no_grad()
    def get_retrieval_scores_batched(self, joint_loader):
        scores = []
        tqdm_loader = tqdm(joint_loader)
        tqdm_loader.set_description("Computing retrieval scores")
        for batch in tqdm_loader:
            image_options = []
            for i_option in batch["image_options"]:
                input_image = i_option.to(self.device)
                if self.precision == "fp16":
                    **input_image = input_image.to(torch.float16)**
                image_embeddings = self.model.encode_image(input_image).cpu().numpy()  # B x D
                image_embeddings = image_embeddings / np.linalg.norm(
                    image_embeddings, axis=1, keepdims=True
                )  # B x D
                image_options.append(np.expand_dims(image_embeddings, axis=1))
        ...

When you check the open_clip code here, the variable cast_dtype matches the dtype of input tensors to the dtype of model parameters, but it only does this for the text inputs.
So I manually convert the image tensor dtype to torch.float16. This was all for me.
As an additional info, my local environment is run on a docker container cloned from nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04.
Python version is 3.8.10 with pytorch==2.0.1
Also, I think the codes related to the evaluation pipeline of ARO benchmarks (i.e., dataset class and eval code) remain in general compared to the official implementation.

When open_clip model is initialized with fp_16, for example,
# ./model_zoo/init.py
MODELS = [
    # openai
    'openai:RN50',
    'openai:ViT-B-32',
   ...
]  # open_clip CLIP model names; {pretrained}:{arch_name}

def get_model(model_name, device, root_dir=CACHE_DIR, apply_fp16=False):
    if "openai-clip" in model_name:  # original open-ai CLIP
        root_dir = join_path(root_dir, "openai-clip")
        variant = model_name.split(":")[1]
        model, image_preprocess = clip.load(variant, device=device, download_root=root_dir)
        model = model.eval()
        clip_model = CLIPWrapper(model, device)
        return clip_model, image_preprocess

    elif model_name in MODELS:  # open_clip models
        tag, model_name = model_name.split(":")
        cache_dir = get_cache_dir(model_name, tag)
        logger.info(f"Loading {tag}:{model_name} model from {cache_dir}..")
        precision = "fp16" if apply_fp16 else "fp32"
        model, _, image_preprocess = open_clip.create_model_and_transforms(
            model_name=model_name,
            pretrained=tag,
            cache_dir=cache_dir,
            device=device,
            **precision=precision**
        )
        # tokenizer = open_clip.get_tokenizer(model_name)

        model = model.eval()
        return CLIPWrapper(model.eval(), device, precision=precision), image_preprocess

    elif "blip" in model_name:
        ...

I also modified the code in get_retrieval_scores_batched method in CLIPWrapper class.
class CLIPWrapper:

    def __init__(self, model, device, precision=None):
        self.model = model
        self.device = device
        self.precision = precision  # <-- here

    @torch.no_grad()
    def get_retrieval_scores_batched(self, joint_loader):
        scores = []
        tqdm_loader = tqdm(joint_loader)
        tqdm_loader.set_description("Computing retrieval scores")
        for batch in tqdm_loader:
            image_options = []
            for i_option in batch["image_options"]:
                input_image = i_option.to(self.device)
                if self.precision == "fp16":
                    **input_image = input_image.to(torch.float16)**
                image_embeddings = self.model.encode_image(input_image).cpu().numpy()  # B x D
                image_embeddings = image_embeddings / np.linalg.norm(
                    image_embeddings, axis=1, keepdims=True
                )  # B x D
                image_options.append(np.expand_dims(image_embeddings, axis=1))
        ...

When you check the open_clip code here, the variable cast_dtype matches the dtype of input tensors to the dtype of model parameters, but it only does this for the text inputs. So I manually convert the image tensor dtype to torch.float16. This was all for me.
As an additional info, my local environment is run on a docker container cloned from nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04. Python version is 3.8.10 with pytorch==2.0.1 Also, I think the codes related to the evaluation pipeline of ARO benchmarks (i.e., dataset class and eval code) remain in general compared to the official implementation.

Thanks for swift reply! If directly using open_clip's api  to load ViT-B-32, the accuracy of ARO-Relation is indeed around 0.59 whether using fp16 or fp32 (so maybe it's not the precision problem?), but if you firstly save the model (using torch.save()) after loading openai model using open_clip's api, then you load the saved model using  open_clip's api, the accuracy is around 0.65. It's somehow pretty strange, therefore we are not sure which one is the actual performance of ViT-B-32 . You can reproduce this result using the code I posted in the previous reply. Thanks again very much!


[CORE-850] Ignore no-op updates during branch propagation.

Stopping and starting a pipeline could lead to new jobs in pipelines
downstream of that pipeline even if nothing actually changed. This is
one of the easier ways to get into an open meta commit state, and is
generally confusing behavior.
This change moves the check that a branch is consistent with its
provenance to the very beginning, ignoring unchanged branches entirely.
This means we can skip the check for subvenant branches (which
necessarily will have a new upstream commit).

Recording a slack conversation about this PR for posterity (the reason that this PR improves things was hard for me to understand initially):

Q I still don’t see how this changes the end behavior of propagateBranches. Could you provide an example?
A Sure, it's just an order of operations thing. In the specific case of a stopped pipeline (or in general, removing all provenance from a branch), it's still true that the pipeline output will not receive a commit. The difference is in downstream pipelines. Before, we computed the union of subvenance, then perform the [head commit = input commits] check for each, so downstream pipelines could still get a commit, even though nothing upstream of them changed. Now, if one of the propagation sources doesn't need a commit, we don't bother looking at its subvenance at all.
This wouldn't matter, except that the current alias commit logic leaves things in a sort of meta-stable state, where running propagation on the meta branch will cause bad things to happen unless we actually want a new commit.

Aside: the meta-stable state is one in which a meta branch, say A.meta has one commit ID, but its inputs as well as A all have a different commit ID (typically an alias commit), and if propagateCommits ever scans A.meta, a new commit will be created unifying A.meta and A.meta.inputs, but no job will run because, at the outset, A and A's inputs (which are the same as A.meta's inputs) matched. The new commit on A.meta will, therefore, never be closed. Subsequent jobs will have issues (won't run?)
Q: So downstream pipelines could still get a commit, even though nothing upstream of them changed? I think this is what I’m missing. Wouldn’t the redundant subvenance check always prevent the subvenant pipelines from receiving a commit in the case that the parent is a no-op? Or is it that there’s some weird interaction if a no-op’s subvenance overlaps with an op’s subvenance
A: You don't need an interaction like that, it's the normal state of, say, pipeline A which is an input to pipeline B. If we update B (or modify one of its other inputs), an alias commit is created on A's output branch, and A's provenance, but not the meta branch. Then the meta branch will satisfy the "not all the same ID" condition, even if nothing upstream actually changes.


Retain user input when JSON parsing fails

The fix for the app crashing when parsing invalid JSON revealed an issue whereby the JSON that was just parsed is removed from the form, but the form remains and empty.

Rather than clearing the form, we want to retain user input when JSON parsing fails.

Additional side effects that should be added:

the text area should give an indication that the input is wrong. we can achieve this with ComponentStatus
when the user attempts to correct the invalid input, the text area should no longer indicate that the input is wrong, and the notification should be dismissed

Dismissing the notification automatically when the user changes invalid input might not be necessary or desirable. The notification has details which might be useful for the user to reference while editing. An accidental edit would dismiss this potentially useful information.
As is, the notification will expire in 10 seconds. So, we'll go with that. The user can also manually dismiss the notification.


Invalid parameter for Hearth & Home update, understood that this needs to be changed to INT - but that's based off some assistance elsewhere. I'm not a dev so cannot confirm.

https://github.com/Ivaylo-Lafchiev/ValheimRecycle/blob/7940c118a1bbd4e2f1aef1eaac1f95094d1d27c8/GameClasses/InventoryGui.cs#L142

I'll see if this is an easy fix, if not I may have to mark this mod as no longer supported.

If you could, that would be amazing!
I'm looking to understand how to do this myself but that's more longterm. Short term, your fix would be very welcome and appreciated.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Ivaylo Lafchiev @.>
Sent: Monday, September 20, 2021 2:34:23 PM
To: Ivaylo-Lafchiev/ValheimRecycle @.>
Cc: snips86x @.>; Author @.>
Subject: Re: [Ivaylo-Lafchiev/ValheimRecycle] Invalid parameter for Hearth & Home update, understood that this needs to be changed to INT - but that's based off some assistance elsewhere. I'm not a dev so cannot confirm. (#6)
I'll see if this is an easy fix, if not I may have to mark this mod as no longer supported.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Ivaylo-Lafchiev/ValheimRecycle/issues/6#issuecomment-922933323, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANFNK3HWGGHHVA4XPN5HFBTUC4Z57ANCNFSM5EL5ON7A.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

If required, I can provide you details of where it's failing exactly but from the error I've been looking at, it starts at line 140

I have a working version, do you want it? Am I able to distribute giving you credit or would you want to keep that?
I know someone who might take the reins if you're not supporting it?

I have released a new update 2.0.0 that should address this.
Please do not distribute versions of the mod without my consent.
If anyone wants to contribute to the mod then they are welcome to raise an MR and I will try to help test/review, and give credit on Nexus mods as appropriate.

So are you going to continue supporting it?
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Ivaylo Lafchiev @.>
Sent: Monday, September 20, 2021 7:49:42 PM
To: Ivaylo-Lafchiev/ValheimRecycle @.>
Cc: snips86x @.>; Author @.>
Subject: Re: [Ivaylo-Lafchiev/ValheimRecycle] Invalid parameter for Hearth & Home update, understood that this needs to be changed to INT - but that's based off some assistance elsewhere. I'm not a dev so cannot confirm. (#6)
I have released a new update 2.0.0 that should address this.
Please do not distribute versions of the mod without my consent.
If anyone wants to contribute to the mod then they are welcome to raise an MR and I will try to help test/review, and give credit on Nexus mods as appropriate.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Ivaylo-Lafchiev/ValheimRecycle/issues/6#issuecomment-923187631, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANFNK3D3BUEJHCLLFPETZFTUC564NANCNFSM5EL5ON7A.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

For now I will continue to update it when it breaks as long as it does not require an extensive rewrite. I don't plan to add any new features.


Styling the default scroll bar

@param-code
The default scroll bar is not matching, I would like to enhance it
Could you please assign it to me

@param-code The default scroll bar is not matching, I would like to enhance it Could you please assign it to me

Sure.


feat(attest): add Bun support

Closing this for now. Feel free to re-open if you're able to get the remaining tests working with Bun.


Bump dnt to 0.41.2.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.19%. Comparing base (bf61baf) to head (06f81dd).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #143   +/-   ##
=======================================
  Coverage   91.19%   91.19%
=======================================
  Files           4        4
  Lines         602      602
  Branches       47       47
=======================================
  Hits          549      549
  Misses         53       53

Flag
Coverage Δ

unittests
91.19% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added Account Information Page

The uploadtoolform links were right, just odd naming convention I need to change.


Coma release

Can we make sure to have the screen blurry as when we are drunk once the emergency room we out of coma?

https://wiki.fivem.net/wiki/Screen_Effects

Nice feature, will add it soon.

Nice thank you :)


"npm install -g ionic" is not working with windows 10?

Problem resoled ! need to clean cache and reinstall all stuff


Red Wine Quality Prediction

💥 Proposal
I want to add the model for predicting the quality of the red wine using different algos like Linear Regression with multiple variables, Random forest, and many others.
Please assign it to me under GSSOC'23.

@Garvit414 Please provide the dataset

I have taken dataset from Kaggle: https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009

@theyashwanthsai pls assign it to me.

Hi, we already have an issue on the similar lines (#178). Hence, we cannot assign you this issue.

Hey @khusheekapoor, Got it but you had given a deadline of 21 days to complete this project to issue #178 and it has been completed. So, if possible assign it to me otherwise I will try to raise some new issue.


Problem with the HUE Plugin

Hi guys,
im desperately trying to install the certified Philips HUE Plugin on my Box. In the past i never had problems with it. Now I always get this Error:
20:26:08yarn add v1.22.1120:26:08info No lockfile found.
20:26:09[1/4] Resolving packages...20:26:11[2/4] Fetching packages...
20:26:12error An unexpected error occurred: "/usr/local/share/.cache/yarn/v6/npm-bonjour-hap-3.6.4-3770904941c6100d3887eca81488c5da250e9fb7-integrity/node_modules/bonjour-hap/.yarn-metadata.json: Unexpected end of JSON input".
20:26:12info If you think this is a bug, please open a bug report with the information provided in "/var/lib/hoobs/hoobs/yarn-error.log".
20:26:12info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
What can i do to fix it?
Appreciate your help
Thx, Peter

This is not an issue with Homebridge deCONZ.  Best contact Hoobs support, as suggested in the message.


multiple instances on the same namespace get different colors

If I create multiple instances with the same namespace, they will each acquire a different color.  This is very counter-intuitive to me; if I am creating multiple loggers on the same namespace then by definition I want them to be treated as a single unit.  If I wanted them to be separate, I would if nothing else use different namespaces with a common prefix.
Example:
var debug = require('debug');
debug.enable('foo');

// shouldn't these use the same color?
var logger1 = debug('foo');
var logger2 = debug('foo');

I'm currently working around this in my app by wrapping debug with some code that caches the result by namespace, but it really seems like this functionality should be internal to debug.
I'm happy to submit a PR for this, if I get feedback that others agree this should be changed.

why would you want multiple debuggers with the same name?  the entire purpose of the name is to be unique
in your example, you could do:
var logger1 = debug('foo')
var logger2 = logger1

logger1('hi')
logger2('hello')

...but that seems pretty pointless imo

@stephenmathieson, of course that's a simplified example.
Agreed, the purpose of the name is to be unique, so IF someone creates 2 loggers with the same name, that means the loggers should be the same -- either 2 instances with the same color, or perhaps even get the same instance should be returned.  Neither is true right now.
As a better example, if I have 2 different modules and I wish them to use the same logger, right now I either have to tolerate them getting different colors, or else create my own way of caching/passing the logger so they can share an instance.

if I have 2 different modules and I wish them to use the same logger

that would defeat the purpose of naming the loggers... how would you be able to tell them apart?

From my perspective, the question of "how would you be able to tell them apart?" is exactly backwards.  The point is that if make 2 calls to debug() with the same name, I shouldn't be able to tell the resulting loggers apart.  I should either get the same logger back each time, or I should get 2 logger instances that have the same color/behavior (even if technically logger1 !== logger2).  Currently, that's not what happens.
As to explaining why I might want to do this...  it seems only tangentially relevant, but here goes.
Let's say I have a service with 2 files of helpers used by that service (maybe 1 dedicated to webhook/event handling, and 1 dedicated to db interactions, while the main file creates an API for high-level interactions).  I want logging from all 3 files to have the same color, for visual grouping.  I also don't expect it to ever be useful to turn logging on or off in one of those files without having it for all 3.  In that setup, the logical thing to do is to use the same logger/name in all 3 files.
The reason I want to group some of the logging together rather than just using an additional namespace suffix, is that this is a very large project -- with over 500 files of code.  I don't need to have control over every single file individually.  I don't really want to have 500+ different logging names.  And most importantly, I can't have 500+ visually distinct colors.  I already have a logging decorator that prefixes each line of logging with the originating file name and line number.  So I want my logging names to correspond to logical code areas, not simply 1 per file.  Some files may use more than 1 logger.  Some loggers may get used from more than 1 file.

+1

Another +1.  It hadn't even occurred to me that:
const debugWarn = require('debug')('X:warn')

in two source files that comprise part of the X system would not resolve to the same debug instance, until I started seeing unexpected behavior and found this issue.

+1, for what it's worth where I see this is simply splitting my project into lots of small files, all using the same 1 or 2 different debugging namespaces. Rather than random, I think hashing on the name and using a deterministic strategy seems appropriate.

+1 on this feature.

This should be fixed.


:bug: fix atom.isValidDimensions under Mac (fixes #7555, fixes #8909)

Additionally I have also:

added logging when detected invalid dimensions
changed logic for determining width and height after recovery from invalid dimensions

Original implementation was not symmetric. And I believe Math.min was a mistake. Original intent probably was to use Math.max instead.
It didn't guard against case of generating invalid width if screen.getPrimaryDisplay().workAreaSize returned 0 or some negative value.
And it was clamping width for displays wider than 1024 which makes little sense.
New implementation makes sure width is at least 1024 and height is at least 512 after reset.
Fixes #7555
Fixes #8909

Out of date PR, addresses two bugs that have been closed by alternate means.


[enhancement]: DockerInstaller should include docker-buildx-plugin when installing v23 or above

Task name
DockerInstaller
Describe your feature request here
As of Docker engine v23 (and newer), Buildx is no longer included in the main Docker package.
From the v23 release notes - https://docs.docker.com/engine/release-notes/23.0/

From Docker Engine version 23.0.0, Buildx is distributed in a separate package: docker-buildx-plugin

It would be good for this task to install the separate package when v23 or greater is requested

Can we able to get a timeline for when this feature can be available?


cosmetic bug fixes

Reviewer: Mia
Asana: See below
CC:
Description:
Several small fixes based on feedback for the following tickets:
Update Major Tracker Network text to match Zeppelin:
https://app.asana.com/0/414235014887631/487161033888845
Apply correct text height/kerning to message in network leaderboard while gathering data:
https://app.asana.com/0/414235014887631/482056236481737
Increase the number of lines of error text and allow text to shrink to maximise space:
https://app.asana.com/0/414235014887631/487161033888836
Update privacy practices text:
https://app.asana.com/0/414235014887631/489057161850488
Use green for the b grade:
https://app.asana.com/0/414235014887631/488055746862776
Steps to test this PR:

Visit a site with trackers, open the network tracker detail, ensure correct message is displayed
Visit a site with major trackers, open the major tracker detail, ensure correct message is displayed
Reset network statistics, ensure gathering message text looks correct
Cause an error and ensure all text is visible (usually an SSL error will generate a longer message if possible, try searching for all menus butchers daughter and clicking through to almenus.com
Open privacy practices detail and ensure the text is correct
Visit sites with a B grade - ensure icon is green.

Nice work! The text looks a little crammed on the major tracker networks screen but the code looks good so feel free to fix it and merge when you're ready if no drastic changes are needed.

Good spot 🦅👀
I was applying the line height adjustment after updating the message for the major view.


Test rejectDuplicateHandlingMethods of ModelVerifierPluginTest is failing other tests in the suite

The test uses GradleProject class to build the project with duplicate handlers, which is supposed to fail on the model verification step.
The build fails as expected, and the test passes, but the process in which the Gradle build was executed remains open for some reason even after the test has been finished.
This leads to Gradle builds from other tests "seeing" classes of the failing project and thus failing too.
Prior to the JUnit 5 migration the bug did not occur because the bugged test was always run last in the suite.
Prior to the JUnit 5 migration the test had name ModelVerifierPluginShould.halt_build_on_duplicate_command_handling_methods().

Closed via https://github.com/SpineEventEngine/core-java/pull/751.


use vendored conversion-gen

format Makefile args
delete copied version of conversion-gen

Generates identical output.
check with find pkg/apis -name 'zz*conversion.go' -delete && rm -rf bin/ .generate_* && make .generate_files
@jpeeler as originator. @duglin as someone familiar with this process.

if @jpeeler says this generates the same stuff then I like using the vendored stuff.
LGTM

LGTM. Glad we removed so much generated code in our tree.


Add Goreleaser

In resource-constrained environments we sometimes cannot afford to install full-blown Go + build packages with it: good practice is to have pre-packaged binary releases for each platform.
You can include this in a GitHub action workflow, by leveraging something like the https://github.com/marketplace/actions/go-release-binaries action which automates the process.
For reference:

https://github.com/marketplace/actions/goreleaser-action
https://github.com/edoardottt/cariddi/blob/main/.goreleaser.yaml
https://github.com/edoardottt/cariddi/blob/main/.github/release.yml
https://github.com/edoardottt/cariddi/blob/main/.github/workflows/release-binary.yml
https://github.com/edoardottt/cariddi/blob/main/.github/workflows/release-test.yml

Done


Create Solution file. Fix ProjectUrl

Also what do you think if I will make formatting the code using Resharper?

This looks good, thanks~
I'm generally against using Resharper, especially when working with new language features. I find it has a habit of doing more damage than good.


When messages over 10m, it would caused a display issue

Please help to check this 🙋♀  Thanks.

@piperck Thank you for reporting this issue!
I'll look into this.


Update compose extension to have callback in set method of useState

Hello, the compose extension is such a cool extension but I think with callback it might have a cleaner usage for setting. It is now also works more like SolidJS's createSignal or React's useState.
This is a small change and it only enables you to do something like this;
const [count, setCount] = useState((state) => state.count)

// now you can do this, it will set the count to the returned value
setCount((c) => c + 1);

// you can still use it like
setCount(5);
setCount(count() + 1)

Hi @ragokan 😄 Thanks for your contribution. It looks good. I'll merge it in shortly 👍


Action no longer downloads the installer, it only downloads the webpage

Exactly what the title says, you can easily reproduce by running the commands manually on your machine:
Invoke-WebRequest https://netcologne.dl.sourceforge.net/project/nsis/NSIS%203/3.08/nsis-3.08-setup.exe -OutFile C:\WINDOWS\Temp\nsis-3.08-setup.exe
& C:\WINDOWS\Temp\nsis-3.08-setup.exe \S

and you will get:

The file should be 1.48MB, instead it has 114kB and contains the Sourceforge html code:

I encountered this issue today and last succesful run of my CI was three days ago, so SF must've changed something in those three days.

I just released a new version with the new URL: https://github.com/repolevedavaj/install-nsis/releases/tag/v1.0.2
Lets hope that the URL keeps stable for some time.

Wow, that was quick, kudos!


Slow Reaction times

I am having slow reactions times when running shell_sage. For instance:
$ time ssage "hello"
Hello! I'm ShellSage, your command-line teaching assistant. How can I help you with shell commands or system administration today? Feel free to ask any questions about
specific commands, scripting, or general Linux/Unix topics.

real    0m22.498s
user    0m1.176s
sys     0m1.647s

I tried using no-history mode to see if that would increase the speed. There was no difference.
$ time ssage "hello" --NH
Hello! I'm ShellSage, your command-line teaching assistant. How can I help you with shell commands or system administration today? Feel free to ask about specific commands,
file operations, or any other command-line related topics.

real    0m23.145s
user    0m1.176s
sys     0m2.114s

I am wondering if it could be possible to add a command-line option to show the different causes of latency for the command (i.e. how long it takes till a query is sent to claude, how long it takes to respond), to make it easier to debug such cases.

Adding a verbosity flag to get timestamps of steps

Closing this for now since we now have a verbosity flag thanks to @Isaac-Flath !


[Improve][SQL] Support can use column.a, column['a'], and column[0] to get the data

https://github.com/apache/seatunnel/issues/5245

Purpose of this pull request
When using zeta engine sql transform, you can use Column.a, column['a'], and column[0] to get the data

Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

I am a novice and just forgot to add a test. Now I have added it


Move default log location to /var/log

I wonder if we should be using syslog for logging, rather than logging directly. Or possibly the python-logstash bindings if we want to directly forward to ELK. Maybe WebOps have a requirement around this?

@AndrewGorton: this config change has been discussed with @djsd123 :)

if different requirements emerge in the future, we can have separate configs for separate environments

LGTM. Can merge once Andrew's happy.

Happy to be pragmatic and let it be merged.
All the other places I've worked on delegate to syslog for system-level logging because that means WebOps have full control of the logging mechanisms by Puppetising the syslog config.


Fix/app running parallel

Might get fixed temporarily with https://github.com/hpi-studyu/studyu/pull/545


Update issue template to reference CARGO_ env vars.

In #309, the build configuration was in an env var, not in a cargo.toml. Advise bug reporters about this possibility.

Maybe it would be good to also write a command for listing env vars.

By the time we cover all the supported architectures and adequately advise users on how to filter out sensitive env vars they shouldn't be putting on GitHub, I think we'd be better off doing #311 instead.
This is a quick-and-dirty fix meant to last only until we can get #311 done, and I don't think we want to invest too much effort into it since it's all going away when #311 is completed.


Implement maximize; refactor Windows natives (closes #82, closes #83, closes #75)

\cc @AlexanderMoskovkin @georgiy-abbasov @VasilyStrelyaev

If there are common library, maybe it's better to include all win projects and this library in one whole solution ?

If there are common library, maybe it's better to include all win projects and this library in one whole solution ?

I'm not sure we should do it. We have quite clear file structure now:
natives
--close
----win
----mac
--resize
----win
----mac
...

If split win natives to a solution it will be like:
--win
----all natives (resize, close and others)
--mac
----close
----resize
etc..

I don't like this, It does not look structured

If there are common library, maybe it's better to include all win projects and this library in one whole solution ?
AFAIR the solution file has machine-specific details, so it can be changed after building clean version from repository and it will cause troubles with git.

I don't like this, It does not look structured
I agree, but i can't build or debug find-window.csproj without manual building shared.csproj That's what led me to this thought (it's just my humble opinion).

\r-

FPR. The way we are taking screenshots is changed according to https://github.com/DevExpress/testcafe-browser-natives/issues/75. Tested with Chrome, Firefox, IE9, IE10, IE11 on Win7, Win8.1, Win10.

lgtm

Please, update the commit message (it should close #75 )

FPR. \cc @AlexanderMoskovkin @helen-dikareva

lgtm

ping @georgiy-abbasov

lgtm

totally lgtm, but there are few minor style issues (i explained in private)

FPR

lgtm

Fixed code style, @georgiy-abbasov check it, please.

awesome, lgtm


Add variables to welcome views

@joaomoreno FYI. This seemed like a useful addition to welcome views. Some caveats/limitations:

Any variables related to the workspace folder will be limited to the first workspace folder in the workspace.
A poorly written welcome view could use a variable that requires user interaction in order to be resolved.

On the whole though, it should bring great flexibility to extensions that use welcome views as they no longer need to be entirely static. The main use case we have for this right now is the built-in git extension, which needs to show the git repo root URI in a welcome view.


update translations from transifex

This is my first translation update. I think I did this right, but some :eyes: would be nice.

Swedish has been updated. Both the new not previously used strings are translated and also the ones that disappeared for some reason in Transifex.
Would assume that fixes the comment I made.
Latest commit was as of this writing 7min ago - And I just finished fixing the last Swedish bits.
Please check if there are any changes to have Swedish in this PR, or I could make my own PR for Swedish specifically.
ping @frederoni for some extra eyes

@davols - Thanks for the heads up.
I've pulled from Transifex again and then ran a script to compare the post Transifex version of the translations with the English translation. Where the non-english and english matched up, I reset the value to what is currently in master. I think this should mean that the leaking of English has been fixed up. I'm scrolling through the changes now to confirm.

It looks like some German translation was ripped out for its English counterpart? Care to elaborate what's going on here?

I'm not 100% sure why this has happened. @1ec5 mentioned that this is partial because we blindly pull files down from Transifex and that if we used the tx cli tool this would be less likely to happen.
Thanks for your eyes @davols and @daniel-j-h. If I can get one last review, I think we can merge this.

Regarding the English strings creeping in, this is unfortunately quite normal for translation systems. Whenever a base string (in English for this project) changes, all the translations of that string are “dirtied” in Transifex, so translators need to go in and update the translations. For minor changes like “Take a sharp left” → “Make a sharp left”, this should just be a matter of accepting the closest-matching suggestion. Meanwhile, any updates to this project will cause an English string to be substituted for the dirtied string, because outdated strings can be problematic (consider a change that adds or removes a placeholder token).
Replacing our ad-hoc tool with tx (#94) will help somewhat, as it would give us options for skipping a resource that’s inadequately translated according to Transifex. Choosing a different message format (#19) would help by giving us the ability to break up en.json into multiple resources, minimizing the disruption caused by changes to one resource.


on Issues pagehttps://dev.realdevsquad.com/issues?dev=true api call for issues and assignee are being before any input is provided

API calls for searching tasks and searching users are being made before input is provided

You will be able to reproduce this in local, with super user access

Description:
On Issues page https://dev.realdevsquad.com/issues?dev=true api call for issues and assignee are being before any input is provided.


gl_engine: enhance portability with safety

GlCanvas::gen() should return nullptr when GL is not available on the current system.
Alternatively, GlCanvas::target(int32_t id, uint32_t w, uint32_t h) should return NonSupported.

@SergeyLebedkin Please assign yourself when you start working on this. Thanks.


Can't connect bots with database !

hi, I wanna Create a translator bot and I have a problem while connecting my bot with mysql !
when I send any message the bot replays is "Oops. Something went wrong and we need to start over."
that my code in je file.
var builder = require('botbuilder');  var restify = require('restify');  var mysql = require('mysql'); var connector = new builder.ChatConnector(); var bot = new builder.UniversalBot(connector); bot.dialog('/', function(session){     var UserMessage = session.message.text;     var connection = mysql.createConnection({           host     : 'localhost',           user     : 'root',           password : '',           database : 'dictionary'       });       connection.connect();      connection.query("select Kurdish from en_ku WHERE english LIKE ('%{"+UserMessage+"}%')", function(err, rows, fields)        {           text = UserMessage;         if (err) throw err;           if (rows[0] != null){             text = rows[0];           }         else {             text = "Sorry don't have any result for: %s", text;         }     });      connection.end();       session.send("Your message in Kurdish:" + text); }); var server = restify.createServer(); server.listen(process.env.port || process.env.PORT || 3978, function(){     console.log('%s listening to %s', server.name, server.url); }); server.post('/api/messages', connector.listen());
whats wrong here? how to fix it?

@HalwestRasul That means that some of your code is failing. You could start by testing your database code in isolation to make sure it works and the connection to the database and queries are functioning properly.

@carlosscastro thanks for your replay,
first I updated the js code like this
var builder = require('botbuilder'); var restify = require('restify'); var mysql = require('mysql'); var utf8 = require('utf8'); var connector = new builder.ChatConnector(); var bot = new builder.UniversalBot(connector); var connection = mysql.createConnection({       host     : 'localhost',       user     : 'root',       password : '',       database : 'dictionary'   });   bot.dialog('/', function(session){     var UserMessage = session.message.text;     var text = UserMessage;     connection.connect();      connection.query("SELECT kurdiAS 'kurdish' FROMen_kuWHEREenglish LIKE ? LIMIT 1",      values = [UserMessage] ,     function(err, rows, fields)        {           if (err) throw err;           if (rows[0] != null){             text = rows[0].kurdish;               session.send("چۆنیت:" + text);         }         else {             text = "هیچ ئەنجامێک نەبوو بۆ : "+ text;             session.send(text);         }     });      connection.end();   }); var server = restify.createServer(); server.listen(process.env.port || process.env.PORT || 3978, function(){     console.log('%s listening to %s', server.name, server.url); }); server.post('/api/messages', connector.listen());
now while the users send a message and the word message not included in the database the bot replay a custom message like this code   text = "هیچ ئەنجامێک نەبوو بۆ : "+ text;,
but if the message-word included in the database the bot emulator was stop working and send this logs
the emulator log have an error when you connect the endpoint URL with the emulator
[22:49:57] -> POST connect ECONNREFUSED <IP_ADDRESS>:3978
the terminal log :
WARN: ChatConnector: receive - emulator running without security enabled. ChatConnector: message received. / - waterfall() step 1 of 1 events.js:161       throw er; // Unhandled 'error' event       ^
Error: Cannot enqueue Handshake after invoking quit.     at Protocol._validateEnqueue (D:\Chatbot\node_modules\mysql\lib\protocol\Protocol.js:202:16)     at Protocol._enqueue (D:\Chatbot\node_modules\mysql\lib\protocol\Protocol.js:135:13)     at Protocol.handshake (D:\Chatbot\node_modules\mysql\lib\protocol\Protocol.js:52:41)     at Connection.connect (D:\Chatbot\node_modules\mysql\lib\Connection.js:130:18)     at Array.<anonymous> (D:\Chatbot\hello.js:16:16)     at SimpleDialog.waterfallAction [as fn] (D:\node_modules\botbuilder\lib\dialogs\SimpleDialog.js:67:25)     at SimpleDialog.replyReceived (D:\node_modules\botbuilder\lib\dialogs\SimpleDialog.js:21:14)     at Session.routeToActiveDialog (D:\node_modules\botbuilder\lib\Session.js:497:24)     at UniversalBot.Library.selectActiveDialogRoute (D:\node_modules\botbuilder\lib\bots\Library.js:138:17)     at UniversalBot.Library.defaultSelectRoute (D:\node_modules\botbuilder\lib\bots\Library.js:270:22)
what I should do?

Your code that talks to mysql is not working unfortunately. This is not related to bot framework.
I'd advice to just figure out the mysql code outside of the bot, in a separate js file until you get it to work, and then integrate it with the bot framework. Also read the detailed documentation from the mysql library for node: https://github.com/mysqljs/mysql
Unfortunately we can't provide mysql support. If down the road you find issues with bot framework, don't hesitate to ask!

I written code to connect bot Builder to Mongo db. It will store session data in mongo
https://github.com/aakashkag/BotBuilder-MongoDB


Login Username Screen

Login In Bugs... there are lots:

[ ] "Username unavailable" message does not update as I change my username.
[x] If you "ninja" past "log in with facebook screen" after previously logging this screen actually changes you username for the last logged in user

Animate user photo to change alpha when keyboard opened

When touching outside of keyboard, keyboard should close

change text label so that the error messages are not cut off

Add padding to placeholder in uitextfield

[ Animate user photo to change alpha when keyboard opened]

[ ] Animate user photo to change alpha when keyboard opened
[ ] When touching outside of keyboard, keyboard should close
[ ] change text label so that the error messages are not cut off
[ ] Add padding to placeholder in uitextfield


Add license header to build-failures.md

Description

scanCode fails due to missing license header in build-failures.md.

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[x] Documentation

Types of changes

[x] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

Merging #3632 into master will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3632      +/-   ##
==========================================
+ Coverage   74.41%   74.46%   +0.05%
==========================================
  Files         126      126
  Lines        5952     5952
  Branches      391      391
==========================================
+ Hits         4429     4432       +3
+ Misses       1523     1520       -3

Impacted Files
Coverage Δ

...isk/core/controller/actions/PrimitiveActions.scala
87.78% <0%> (+0.76%)
:arrow_up:

...n/scala/whisk/core/database/CouchDbRestStore.scala
70.98% <0%> (+1.23%)
: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 8867adc...1fe06bb. Read the comment docs.


Subminor version bump (2.4.0 -> 2.4.1)

Codecov Report

Merging #102 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #102   +/-   ##
=======================================
  Coverage   84.88%   84.88%
=======================================
  Files          44       44
  Lines        5807     5807
=======================================
  Hits         4929     4929
  Misses        878      878

Impacted Files
Coverage Δ

endpoints/__init__.py
100% <100%> (ø)
: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 6b087c8...fa651c0. Read the comment docs.


Overhaul Photobooth logging

Prerequisites checklist

[x] I have read the contributing guidelines.

What is the purpose of this pull request? (put an "x" next to an item)

[ ] Documentation update
[ ] Bug fix
[ ] New feature
[x] Other, please explain: overhaul logging
Fix https://github.com/PhotoboothProject/photobooth/issues/11

What changes did you make? (Give an overview)

remove $config['dev']['enabled']
remove $config['dev']['advanced_log']
remove $config['dev']['error_messages']

Introduces $config['dev']['loglevel']:

0 = minimal logging (like $config['dev']['enabled'] = false before)
1 = advanced logging (like $config['dev']['enabled'] = true before)
2 = expert logging
(like $config['dev']['enabled'], $config['dev']['advanced_log']
and $config['dev']['error_messages'] = true before)

Is there anything you'd like reviewers to focus on?

I think I would like constants more than just magic numbers. Additionally with the repeating checks for the values it might make sense to use helper methods instead.

I have to admit that I completely missed how many different files were affected when I had a quick glance on this this morning. I revise my thoughts and consider this completely fine. I think adding constants or code to config.php would be worse. And if we'd add those in some other place we'd not be able to reuse them so that'd make no sense.


Poorly Handled Partial Block Hitbox Click Handling

Fix issue where trying to use items/attack/click entities through blocks without a full hitbox doesn't work

Duplicate of #95, and is fixed


Improve error messages

Right now if a request fails, we basically say, "Something went wrong." We should use the details that Jubilant sends back: either the Jubilant problem message or the problem code.

I'm leaning toward displaying the Jubilant problem message returned by the request. I know that might get more complicated or not work once we add localization, but I think it'd be a good strategy for MVP so that Super Adventure doesn't have to translate the Jubilant problem code to a Super Adventure message that is different from the Jubilant message. @clint-tseng, what do you think?


Add 'systematic_name', queries fallback on 'common_name'

Hyia!
I recently added the 'systematic_name' property on the wiki so that the API should be able to provide the preferred IUPAC name once appropriate tagging is done, which I would gladly be responsible for.
besides that I did some minor fixes and made queries fall back to common_names if no page exists, so that with slighly more processing broad searches can cover alot more ground.
Let me know what you think!
Lots of love,
Xea

This is a breaking change and very likely breaks our api consumers, which isn't exactly good. What's the problem with chemical class et al.?

@19h I think the formating of the diff made you missunderstand my changes
there is no problem with "chemical class", I have not touched "chemical class", I removed a duplicate function that I found, and added a new property for systematic IUPAC names, that should be a breaking change
otherwise I added a fallback to the query function to cover more ground, I hope that doesn't disrupt anything, if so I would just revert that commit

This looks a bit more than just formatting right?

@19h please look at the full file, I overrode a duplicate function for formating "common_name", if you look just a bit above the snippet you just send me you will see that the "chemical_class" function is still there

just rewrite in rust


demos: restore version query after login

Partial revert of b25055c2ff22fb111f8d394a257aa07a3d205d4b

Thanks, @pkeroulas. I also noticed it yesterday and fixed it locally but totally forgot to push it.


Typo

https://github.com/zhDmitry/redux-form-antd/blob/b48fcaa4cc0db8b72b97808c8bf83bb47c0549cf/src/index.js#L37
There is a typo, it should be options.length and not lenght :)

@aulamber I will fix this problem.

can someone close the issue?


Corpus Citation

Add a method to the corpus reader to give the preferred citation to a corpus, to encourage users to cite the corpora they use.

Resolved in https://github.com/nltk/nltk/commit/7cefb5a4fb34ce786e817b0ef4f48321a6be5eb8 by @fcbond


Select2 lost focus with JQUERY 3.6.0

Select2 version 4.1.0-rc.0 loses the automatic focus in the search with Jquery 3.6.0, when I return to jquery version 3.5.1 it works.
Example:
https://jsfiddle.net/dorathoto/1q5L4cab/1/

https://github.com/select2/select2/issues/5993

Closing as a duplicate.


Specifying not_analyzed for additional fields

The default type for string additional fields is analyzed. Is there a way to register the type for the additional fields?
For instance, we register additional fields to track the host:
   def customFields = [
           "host": InetAddress.getLocalHost().getHostName()
   ]
   def reporter = ElasticsearchReporter.forRegistry(registry)
           .hosts(hosts)
           .additionalFields(customFields)
           .build()

Our host names have a naming convention which separates the number of the instance:

api-01
api-02
etc..

This causes a split in the analyzed fields (api, 01, 02) when trying to visualize the data in kibana.

I've created my own template via curl but it would be nice to specify the type along with the mapping or supply a custom template to be used in ElasticsearchReporter.checkForIndexTemplate
curl -XPUT localhost:9200/_template/metrics_template -d '
{
  "order": 0,
  "template": "metrics*",
  "settings": {},
  "mappings": {
    "_default_": {
      "properties": {
        "name": {
          "index": "not_analyzed",
          "type": "string"
        },
        "host": {
          "index": "not_analyzed",
          "type": "string"
        }
      },
      "_all": {"enabled": false}
    }
  },
  "aliases": {}
}
'


pip-package for generator plugin

I'm currently working on integrating nanopb as a package into RIOT.
While writing the corresponding README on how to get started with nanopb, I realized that getting the generator installed requires quite a lot more manual work.
Isn't the generator basically a python application? It could be made installable via "pip".
If there's interest, I can try PR'ing something.

Hmm, that's actually a great idea. I've never thought about it before, but it makes perfect sense.
I don't have much time to work on it in the near future, so if you can make a PR that would be great!


SCM Sync: Persist some view state?

Testing #194016
I find myself constantly expanding the Incoming / Outgoing nodes, for the view to have any value to me. We should consider having these expanded by default. Or, we should consider persisting some view state, like we do in the File Explorer.

Closing this issue out as view state is now persisted.


Dubbo example support Java

The New Feature
https://github.com/mosn/examples/tree/master/codes/dubbo-with-zk-discover
Your scenes
Describe your use scenes (why need this feature).
Your advice
Describe the advice or solution of this new feature.
Environment

MOSN Version

https://github.com/mosn/mosn/tree/master/examples/codes/dubbo


files with category doc are not in the generated *.cbuild.yml

Describe the bug
this might not be a bug, could be a wanted behavior ...
I have a cproject file:

containing a README.md file with doc as category
or referring to component with doc file

in the generated *.cbuild.yml, only source and header files are resolved.
To Reproduce

add a README.md to *.cproject.yml file
then convert to *.cbuild.yml
check the generate *.cbuild.yml

Expected behavior

the README.md should be in the generated *.cbuild.yml

Environment (please complete the following information):

cmsis-toolbox
Version: 2.1.0
OS: windows

Indeed this is the intended behaviour. Documentation files are not relevant for the build which is the scope of *.cbuild.yml files.

@brondani, do you think that is interesting to align both behaviors of user files and component files ?
IMHO:

if we consider that the *.cbuild.yml is a build artifact only, then no need for doc files
if we consider that the *.cbuild.yml is a lock file and it contains the resolved project state, then docs should be part of it (incl. component docs)

We have moved on from using *.cbuild.yml as a lock-file.
In https://github.com/Open-CMSIS-Pack/devtools/issues/1122 -> introducing <csolution-name>.cbuild-pack.yml instead.

@tarek-bochkati Yes for consistency we should definitely align the behavior.
For completeness I would vote to print all files, leaving to consumers to filter the categories to their use cases, but this could inflate the *.cbuild.yml files with irrelevant data.

Hi @jkrech @brondani
for my information, have you come to a conclusion and a proposed way forward on this topic ?

@LMESTM I believe we agree all files must be listed in the *.cbuild.yml alongside their categories. I am scheduling this GH issue to be addressed for the next release.
Hint for the implementer: make use of RteTarget::GetFilteredFiles.


Add multiple GPUs support

Try to add multiple GPUs support to accelerate training step.
Also eliminate some magic numbers so that we can easily change the size of input images.
Work well on my own machine. Further testing on other devices is needed.

@yujincheng08, thanks for your contribution. I will have a quick test soon.


move widget over and make wider in panel

Hi Caleb, Thank you soo much for making this publicly available. We always write client documentation by hand but I'm looking into modernizing that system.
I like my dashboard super simple, but the content-viewer widget isn't filling the available space. I'm going to add a lot of content to this widget, so I'd like it to move right and fill in the remaining space. (screenshot)

How could I go about doing this? Thank you!!

This would be nice, but I know of no documented way to do this. The layout is all handled automatically by Kirby (though you can control the widget sorting).

If anyone knows of a way to control this, I would welcome the know-how.


asherman.io unsync page typo, or not

Howdy,
This page has some amusing bits http://asherman.io/projects/unsync.html
but possibly this wasn't an intended joke
makes its own in a new thread whose soul purpose
Did you mean
makes its own in a new thread whose sole purpose
it kind of reads ok with 'soul', but I think Unfuture is more likely to have a soul, since it embodies the spirit of two Futures

Definitely unintended, but glad it got a laugh.
Thanks for pointing it out!