Install catkin-pkg

Explicitly install the catkin packages for the python3 interpreter.

When installing python3 from source as the default system interpreter, the catkin-pkg module could not be found by ament_cmake, which is invoked during colcon build. This naturally caused all downstream ROS2 workspace builds to fail.
Now colcon build succeeds (tested locally to build modulo image with most recent ghcr.io/aica-technology/ros2-control-libraries:galactic)

very well, and so we find our way down to the next issue. Indeed I only tested the modulo stage. What is the error output you got from the subsequent ros2 control build attempt?

ROS2 Galactic expects Python 3.8, and it turns out that it is harder to upgrade than I expected. With 3.9.X, the backend builds (all components and state engine). However, it still fails at runtime. Specifically, it cannot resolve the rosidl_typesupport_c runtime library.
With what I've tried so far, colcon build will still make a mess and install some things to /path/to/workspace/install/package_name/lib/python3.8/site-packages and /path/to/workspace/install/other_package_name/lib/python3.9/site-packages on the PYTHONPATH.
This is probably fixable but needs to be put on hold until it is more stable. Until then we must revert the original #28 or risk our downstream targets continuing to fail.


Update js-yaml usage: no safeLoad in v4; use load

Using the previous sample code resulted in:
`TemplateDataParseError` was thrown
> Function yaml.safeLoad is removed in js-yaml 4. Use yaml.load instead, which is now safe by default.

`Error` was thrown:
    Error: Function yaml.safeLoad is removed in js-yaml 4. Use yaml.load instead, which is now safe by default.
        at Object.safeLoad (/Users/edbrannin/dev/misc/mercy/node_modules/js-yaml/index.js:10:11)
        at /Users/edbrannin/dev/misc/mercy/.eleventy.js:4:60
        at TemplateData._parseDataFile (/Users/edbrannin/dev/misc/mercy/node_modules/@11ty/eleventy/src/TemplateData.js:351:16)
        at async TemplateData.getAllGlobalData (/Users/edbrannin/dev/misc/mercy/node_modules/@11ty/eleventy/src/TemplateData.js:228:18)
        at async TemplateData.getData (/Users/edbrannin/dev/misc/mercy/node_modules/@11ty/eleventy/src/TemplateData.js:255:24)
error Command failed with exit code 1.

Thank you!


[SPARK-21338][SQL][FOLLOW-UP] Implement isCascadingTruncateTable() method in AggregatedDialect

What changes were proposed in this pull request?
The implemented isCascadingTruncateTable in AggregatedDialect is wrong. When no dialect claims cascading, once there is an unknown cascading truncate in the dialects, we should return unknown cascading, instead of false.
How was this patch tested?
Added test.

cc @gatorsmile @huaxingao

Test build #81965 has started for PR 19286 at commit 803b196.

Test build #81973 has started for PR 19286 at commit d4fadbb.

Test build #81973 has finished for PR 19286 at commit d4fadbb.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #81965 has finished for PR 19286 at commit 803b196.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81973/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81965/
Test FAILed.

retest this please.

Test build #81976 has started for PR 19286 at commit d4fadbb.

Test build #81976 has finished for PR 19286 at commit d4fadbb.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81976/
Test FAILed.

retest this please.

Test build #81985 has started for PR 19286 at commit d4fadbb.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81985/
Test PASSed.

@gatorsmile Does the added test look good for you? Thanks.

ping @gatorsmile

@viirya Hey simon, thanks for catching this. Will it be little easier to follow if we wrote like this ?
override def isCascadingTruncateTable(): Option[Boolean] = {
   def compute(left: Option[Boolean], right: Option[Boolean]): Option[Boolean] = {
     (left, right) match {
       case (_, Some(true)) => Some(true)
       case (Some(true), _) => Some(true)
       case (Some(false), Some(false)) => Some(false)
       case (_, _) => None
     }
   }
   // If any dialect claims cascading truncate, this dialect is also cascading truncate.
   // Otherwise, if any dialect has unknown cascading truncate, this dialect is also unknown.
   dialects.map(_.isCascadingTruncateTable()).reduce(compute(_, _))

@dilipbiswal Thanks for the suggestion. However, it looks more complicated, IMO.

Test build #82123 has started for PR 19286 at commit 7e5a57c.

@viirya No problem. The newer version you have looks clean as well.

Test build #82123 has finished for PR 19286 at commit 7e5a57c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82123/
Test PASSed.

LGTM

Thanks! Merged to master


Create dedicated Neptune hook for metadata logging

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls.
The documentation has been modified accordingly, like docstring or example tutorials.

Also, looking at the failures, it seems that we shouldn't be importing neptune at file level. wandb does it within the logger class.


Finish migration from pre-css to post-css

The website currently uses a mix of Sass and TailwindCSS. Also, TailwindCSS is currently loaded from CDN instead of suing post-processor to optimize size. We should avoid mixing the CSS paradigms and simplify CSS generation. For that, we need to:

[x] Move remaining CSS to a single stylesheet.
[x] Keep styling via CSS to a minimum (e.g., some cards are styled with CSS classes where there are perfectly good TailwindCSS alternatives)
[ ] Add TailwindCSS post-processing (and stop loading it via CDN)

List related commits:

8d02d08bbd19a07e31b06f1fdb70d44503c0c90c
b155aad8f0c6de8ebe0ce9c287e809b71bc15f25
1d8618d363b537679b2719383045efde465f59b0
23bc23ba0a14dfc312c1c9639303259f1dd98a4c
c1b62e2f4a14d2687dc16bcca6f48b4b4d46b1ba
5c1ab756f0ebf9b0010b7c2c0fa07f79457ca675
4e079d87ea0203b389e436fbd35a162132fa1569
66c3ebaf0860ab5ae19e12c5370cc0f7158c9054
612cb5019a11b76a6c9701cc5b255b8aa821caa6
a5542102a4f8b14c2d8595a5cdfae0e7a9c233d3
2909aa224257d8d0cac2b78a3c2f169cba27b601
f486ec65e0a9f082a2cada941dae475f996e8585
aa92c64f4fe2ec4e23cfec9f1818ede5397d6bf9
af51b9ca968fdfe92de50cebd03fc1d2fb99f2b1
4c8c4ce9502a6f7f4b07c208276db51ec45cea65
1a49473765f598e1d758eaa36f7db6f281b9eb12
e3e0ec86b91be31cb87930cc7df127c20c8dfcc0
ad5c467a1613b5a865f119e9e5fafb27c809bba3
539ed30e86615b345378fb02b1ffa2b9350b0656
24a764fd0d49fb4301f2ebd3ba6686289b0d4011
3d2a40e913e0a56e0b25d06618126cb39c741516
64cf7f4c00356bf79f0912f024f381221b5bc30c
33710ce5ea614f32d73dae15ebf477e8fc497dd2
6bc353afb5a64b57e15b9c4be9349827dc35f089


Toggle lights

Hi Stephan, First of all thanks for all your nice work. I've managed to get my hand on a PCB made according to your design and it is working like charm.
I've noticed the presence of a toggle light option in the Pic16 code and was wondering if it is already possible to use this feature through MQTT... could not verify this to be true whilst looking through the esp8266 code.
Thanks in advance !

Hi snoekieboe,
as i analyzed the bus i found out that one bit toggles the light, so i implemented it in the pic16 software to document it. But i didn't find a meaningful usecase for this feature so i didn't add it to the esp software.
If you need it you can easily activate it by adding the following lines after line 241 to esp8266.ino
if (message == "TOOGLE_LIGHT")
{
  door.trigger_action(hoermann_action_toggle_light);
}

And publish a message with payload TOOGLE_LIGHT to your SET_TOPIC.

Thnx Stephan! I will add the code  and see if it works. Keep you posted!

I've added the feature but do not recommed to use it due to a missing feedback.

It's working; sending the payload(on/off) "LIGHT" turn on and off the light, but in HA, I don't know how to do correctly a switch like "Venting". I think It's because the value is always LIGHT.

You must configure your switch to work in optimistic mode (don't define a state_topic) and that's exactly the thing why i don't recommend using toogle light.

The complete solution would be:

Verify which bit of the broadcast status message is the light relais
Add an interface function to hoermann.cpp
Convert the cover position topic to a json message to be able to add more than one value
Adjust the configuration.yaml or additionally add MQTT Discovery

But i will not do this, at least in short term. Feel free to make a pull request.


Fix #22 - commands not focusing/activating

Ensure popovers created by commands are always active and focused, even if they are empty.  (Also creates missing files when following the link at the cursor, just like the built-in follow-link command.)

This is actually already in 0.3.5 but I'll take a look and see how our approaches differ. Thanks for the contribution!

It looks like this is also fixing #8  (the part where you can't open an existing file in the new popover).

(0.3.5 didn't fix any of my issues, btw, this PR is on top of 0.3.5)

Oops, yeah, a lot of this logic is in 0.3.6 which is not released yet. We were working on the same thing at the same time :)

I just pushed the outstanding commits. I'll do the work to resolve the conflicts and take on anything you did better :)

Clearly I should have procrastinated more.  :wink:    I've also already merged your conflicts, and tested the result to make sure it still works.

Nice, thank you again! The fix to #8 works great.

As it happens, it's also a fix for #4 (the "create without needing to click" part, that is).  :wink:


Made GenericShow generic so that is it not forced to be GenericShow[String]

I was trying to understand the examples when I noticed that the GenericShow is actually not generic at all but forced to be GenericShow[String]. So I made a minor modification to it so that the generic part of the code is in GenericShow and the implementation for GenericShow[String] is in Show.
I verified this by making ShowWeakHash, based on the hash.scala -example, which is of type GenericShow[Int].
I also changed the stringifying of the annotations in order to separate the case when the annotation is on the type versus when the annotation is on the parameter. So, the annotation tests were changed a bit also.

Is this PR still relevant?

This PR is really outdated. Please reopen if you manage to update it.


Is there any example which could be run in the cloud environment

I tried running a sample code within colab and gitpod.
Both faced the following error with poppler.
PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH?

I tried all the following, is there any guidance around this issue
pip install pdf2image
conda install -c conda-forge poppler

apt-get install poppler-utilsa
pip install pdf2image

all were tested with the persian-pdf-converter==2.3.1

What operating system did you test on? @realamirhe

I tried to run code but got that error.
   raise PDFInfoNotInstalledError( pdf2image.exceptions.PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH?
I use Debian 12 and Python 3.11.2

What operating system did you test on? @realamirhe

I'm sorry for the long delay, I might miss the notifications.
OS: Ubuntu 22.04.4 LTS x86_64
Python [version]: 3.12.4
persian-pdf-converter [version]: 2.3.1


Conflicting information at MN

I have installed a masternode in the testnet. Everything looks good on the graphical interface.

The information in the console, however, shows a different result.
I have not found a block yet.
210307 Robin Logs.zip

Hi @RobinTorque, in your config I cannot see the masternode configs existing. After you created the masternode in the app, have you modified the defi.conf somehow?

Hi @thedoublejay , no, I have not changed anything. My error message refers less to the fact that the MN does not work. I wanted to point out that the MN does not work, but the user interface tells the user that everything is fine. This is a problem from my point of view, because the user must be able to rely on the information in the user interface.
Bella has the access data to my Windows test computer.

@RobinTorque  Yes, we have added a fix for this. Will be included in 1.3.1. I think we're missing a feature to enable/disable masternode in case it is created but not on config. Thanks for raising this issue.

I think this problem is solved with the new version and the issue can be closed.
Thanks a lot @izzycsy


[Bug]: Run Error

Version
window 10
node: 20.10.0

"@rsdoctor/rspack-plugin": "^0.1.0",
"@rspack/cli": "^0.5.2",
"@rspack/core": "^0.5.2",

Warehouse for reproducing problems
复现问题的仓库
https://gitee.com/luoriwusheng/vue-element-admin

### Details

![image](https://github.com/web-infra-dev/rsdoctor/assets/152823466/5ff3faff-a749-4f41-94e0-58039c8d430c)

Before being introduced, the project was running normally
没有加入这个插件之前，项目正常运行

The service can get up, but there is an error on the console
服务能起来，但是控制台有报错

![image](https://github.com/web-infra-dev/rsdoctor/assets/152823466/f9f49c18-82d5-4efd-b95d-a649fb4b1278)

### Reproduce link

https://gitee.com/luoriwusheng/vue-element-admin

### Reproduce Steps

1. clone  repo
2. npm i
3. npm run doctor

Please pay attention to this issue #20 , and I will support it with high priority.

Please pay attention to this issue #20 , and I will support it with high priority.请注意这个问题#20，我将优先支持它。

ok  ok , thanks!
If a new version is released, you can go to my repository to try it out. All rspack related packages in the repository are currently the latest.
[zh-cn] 如果发布了新版本 ,可以去我的仓库尝试一下，仓库中所有rspack相关的包目前均为最新。

yes ， After verification in the warehouse, the issue has been fixed


Love this project!

This is not an issue at all, I'm just here to say that I love your project! I am using this library for building a dashboard website for my new discord bot, and this is exactly what I was looking for! I have recommended this library to my fellow discord bot developers. Keep on going!

Thank you for your kind words! That said because this is not an issue I'm going to close this.


Detect keyframes

Detect if packets contain keyframes or not, and expose that via API. There is an ambiguous case that I've given an explicit ambiguous marker for: non simple blocks when there is no reference block.
I wasn't sure about the return type of nestegg_packet_keyframe_status. I've set it up to be in line with the convention set by nestegg_track_type -- return -1 for error, otherwise return different types. However, I also considered the convention used by the other nestegg_packet* functions. I opted for the former as the information returned will not be greater in width than an int.

Thanks, looks good.  Will merge once the comments have been addressed.

Merged as https://github.com/kinetiknz/nestegg/commit/924e8192f2d6cbfb10675cbd3f935a996b415342, thanks!


enhancement: Add 4-bit quantization / inference support

https://mobile.twitter.com/Tim_Dettmers/status/1605209177919750147
"Our analysis is extensive, spanning 5 models (BLOOM, BLOOM, Pythia, GPT-2, OPT), from 3 to 8-bit precision, and from 19M to 66B scale. We find the same result again and again: bit-level scaling improves from 16-bit to 4-bit precision but reverses at 3-bit precision."

According to the case for 4-bit precision paper there are essentially only upsides to 4-bit quantization. Performance per bit goes up, speed (in some cases) goes up, and performance per parameter stays around the same, just as with 8-bit.
There are already bleeding edge 4-bit quantization efforts such as GPTQ for LLaMA

GPTQ is currently the SOTA one shot quantization method for LLMs. GPTQ supports amazingly low 3-bit and 4-bit weight quantization. And it can be applied to LLaMa. I've actually confirmed that this works well in LLaMa 7b. I haven't tested the memory usage(n-bit cuda kernel), but I think it should work.
Model(LLaMa-7B)	Bits	group-size	Wikitext2	PTB	C4
FP16	16	-	5.67	8.79	7.05
RTN	4	-	6.28	9.68	7.70
GPTQ	4	64	6.16 9.66 7.52
RTN	3	-	25.66	61.25	28.19
GPTQ	3	64	12.24 16.77 9.55
code: https://github.com/qwopqwop200/GPTQ-for-LLaMa
From: https://github.com/oobabooga/text-generation-webui/issues/177

Unfortunately these efforts are only academic PoC and are not useful for inference.

Bitsandbytes is already used by many projects for its 8-bit implementation. By adding 4-bit these and other projects could benefit the same as they do now, except doubly so. Smaller models, more model accessibility, and better performance.

Mark, the first author of the paper you cited is the author of bitsandbytes repository

Mark, the first author of the paper you cited is the author of bitsandbytes repository

I'm aware. It's been 3 months since publication with no mention of int4 in this repo and no open issue.

@TimDettmers If I'm not mistaken, you indicated in another thread that int4 support was in the works -- is that correct?

How complicated is to add 4 bit quantization? It sounds like just a change in couple of parameters?
Does 4bit also improve speed. From Nvidia post, it seems that on Turing it should. Not sure if on M1.

In theory, performance would linearly increase as precision is decreased, but I don't know what makes bitsandbytes much slower exactly. On my configuration (RTX3090), for the same language model and prompt I get about 0.33x inference performance with INT8 and bitsandbytes compared to FP16 witih the Huggingface/Transformers implementation.

For comparison, [llama.cpp](https://github.com/ggerganov/llama.cpp running inference) in 4bit mode is about 3x faster than in 16bit mode for the same model.
This is closer to what I would expect.

Super excited for bnb int4. Any news on when it'll be out?

Just so you guys know they have added the 4bit-inference but only for batch size 1.
https://github.com/TimDettmers/bitsandbytes/releases/tag/0.40.0
However, like some on this thread, I still face similar issues regarding the slower inference. It seems FP16 is still faster. But I'm using NLI models.

@TimDettmers thanks for the great int4 :) would be awesome if int4 variants got added to https://github.com/TimDettmers/bitsandbytes/blob/main/benchmarking/switchback/speed_benchmark.py ?

I try to reproduce the 3.4x speedup on A100, as described in the

@TimDettmers Thanks for the very easy-to-use 4bits inference. Very Friendly!
I try to reproduce the 3.4x speedup on A100 using a LLaMA 7B model, as described in the release docs as below.

However, like some on this thread, I also face similar issues regarding the slower inference. It seems FP16 is faster.
Experiments on LAMBADA validation dataset is below.

The speed of LLM.int8 is 15% of FP16.
The speed of LLM.FP4 is 56% of FP16.
The speed of LLM.NF4 is 56% of FP16.

Maybe I didn't use 4 bits in the right way. The codes is below. Wish for your reply. Many thanks!
import torch
from datasets import load_dataset
from transformers.models.llama import LlamaForCausalLM, LlamaTokenizer

import torch
from torch.utils.data import DataLoader
from tqdm import tqdm

from transformers import BitsAndBytesConfig

class Evaluator:
    def __init__(self, dataset, tokenizer, device, pad_token: str = None):
        self.dataset = dataset
        self.device = device
        if pad_token is None:
            tokenizer.pad_token = tokenizer.eos_token
        else:
            tokenizer.pad_token = pad_token  # e.g. "[PAD]" for llama
        tokenizer.padding_side = "left"

        # tokenize the dataset
        def tokenize_function(examples):
            prompts = tokenizer(
                examples["text"], return_tensors="pt", padding=True
            )
            return {
                "input_ids": prompts["input_ids"][:, :-1],  # np
                "attention_mask": prompts["attention_mask"][:, :-1],
                "labels": prompts["input_ids"][:, -1],
            }

        self.dataset = self.dataset.map(tokenize_function, batched=True)
        self.dataset.set_format(
            type="torch", columns=["input_ids", "attention_mask", "labels"]
        )

    @torch.no_grad()
    def evaluate(self, model, batch_size: int = 1):
        model.eval()
        total, hit = 0, 0
        dataloader = DataLoader(self.dataset, batch_size)
        tbar = tqdm(dataloader, desc="acc")
        for batch in tbar:
            input_ids = batch["input_ids"].to(self.device)
            attention_mask = batch["attention_mask"].to(self.device)
            label = batch["labels"]  # torch.Tensor
            outputs = model(input_ids=input_ids, attention_mask=attention_mask)
            last_token_logits = outputs.logits[:, -1, :]  # [8, 116, 50432]
            pred = last_token_logits.argmax(dim=-1).cpu()
            hit += (pred == label).sum().item()
            total += label.size(0)
            acc = hit / total
            tbar.set_description(f"acc: {acc:.3f}")
        return acc

model_path = "decapoda-research/llama-7b-hf"

tokenizer = LlamaTokenizer.from_pretrained(model_path)
val_dataset = load_dataset("lambada", split="validation[:1000]")
val_evaluator = Evaluator(val_dataset, tokenizer, "cuda", pad_token="[PAD]")

# FP16
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", torch_dtype=torch.float16
)

# INT8
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", load_in_8bit=True
)

# FP4
fp4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="fp4",
    bnb_4bit_use_double_quant=False,  # save an additional 0.4 bits per parameter.
    bnb_4bit_compute_dtype=torch.float16,
    llm_int8_skip_modules=["lm_head"],
)
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", quantization_config=fp4_config
)

acc = val_evaluator.evaluate(model, batch_size=1)
print(f"quantized model accuracy: {acc}")

@Shuai-Xie I would like to ask if llm_int8_skip_modules=["lm_head"], still works for 4bit?

Will there also be support for int4, in addition to fp4 and nf4?

@TimDettmers Thanks for the very easy-to-use 4bits inference. Very Friendly!
I try to reproduce the 3.4x speedup on A100 using a LLaMA 7B model, as described in the release docs as below.

However, like some on this thread, I also face similar issues regarding the slower inference. It seems FP16 is faster.
Experiments on LAMBADA validation dataset is below.

The speed of LLM.int8 is 15% of FP16.
The speed of LLM.FP4 is 56% of FP16.
The speed of LLM.NF4 is 56% of FP16.

Maybe I didn't use 4 bits in the right way. The codes is below. Wish for your reply. Many thanks!
import torch
from datasets import load_dataset
from transformers.models.llama import LlamaForCausalLM, LlamaTokenizer

import torch
from torch.utils.data import DataLoader
from tqdm import tqdm

from transformers import BitsAndBytesConfig

class Evaluator:
    def __init__(self, dataset, tokenizer, device, pad_token: str = None):
        self.dataset = dataset
        self.device = device
        if pad_token is None:
            tokenizer.pad_token = tokenizer.eos_token
        else:
            tokenizer.pad_token = pad_token  # e.g. "[PAD]" for llama
        tokenizer.padding_side = "left"

        # tokenize the dataset
        def tokenize_function(examples):
            prompts = tokenizer(
                examples["text"], return_tensors="pt", padding=True
            )
            return {
                "input_ids": prompts["input_ids"][:, :-1],  # np
                "attention_mask": prompts["attention_mask"][:, :-1],
                "labels": prompts["input_ids"][:, -1],
            }

        self.dataset = self.dataset.map(tokenize_function, batched=True)
        self.dataset.set_format(
            type="torch", columns=["input_ids", "attention_mask", "labels"]
        )

    @torch.no_grad()
    def evaluate(self, model, batch_size: int = 1):
        model.eval()
        total, hit = 0, 0
        dataloader = DataLoader(self.dataset, batch_size)
        tbar = tqdm(dataloader, desc="acc")
        for batch in tbar:
            input_ids = batch["input_ids"].to(self.device)
            attention_mask = batch["attention_mask"].to(self.device)
            label = batch["labels"]  # torch.Tensor
            outputs = model(input_ids=input_ids, attention_mask=attention_mask)
            last_token_logits = outputs.logits[:, -1, :]  # [8, 116, 50432]
            pred = last_token_logits.argmax(dim=-1).cpu()
            hit += (pred == label).sum().item()
            total += label.size(0)
            acc = hit / total
            tbar.set_description(f"acc: {acc:.3f}")
        return acc

model_path = "decapoda-research/llama-7b-hf"

tokenizer = LlamaTokenizer.from_pretrained(model_path)
val_dataset = load_dataset("lambada", split="validation[:1000]")
val_evaluator = Evaluator(val_dataset, tokenizer, "cuda", pad_token="[PAD]")

# FP16
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", torch_dtype=torch.float16
)

# INT8
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", load_in_8bit=True
)

# FP4
fp4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="fp4",
    bnb_4bit_use_double_quant=False,  # save an additional 0.4 bits per parameter.
    bnb_4bit_compute_dtype=torch.float16,
    llm_int8_skip_modules=["lm_head"],
)
model = LlamaForCausalLM.from_pretrained(
    model_path, device_map="auto", quantization_config=fp4_config
)

acc = val_evaluator.evaluate(model, batch_size=1)
print(f"quantized model accuracy: {acc}")

hi,
have you found the issue?why is the int8 model slower than float16 so much?can you share your fixed solutions？

In theory, performance would linearly increase as precision is decreased, but I don't know what makes bitsandbytes much slower exactly. On my configuration (RTX3090), for the same language model and prompt I get about 0.33x inference performance with INT8 and bitsandbytes relatively to the FP16 Huggingface implementation.

hi,i encounter the same issue,have you found the reason why is the int8 model so slowely? and do you any solutions ?

any update?


Extend test timeout for allocation*.js and array_slice.js which can run longer on busy or low-resource test VMs.

We've observed them run for around 120 seconds; increasing the timeout to 300 seconds (5 minutes) should more than account for this.
Fixes #1406
Fixes #1417

FYI @ianwjhalliday

@dotnet-bot test Windows x86_test please

@dilijev

We've observed them run for around 120 seconds; increasing the timeout to 300 seconds (5 minutes) should more than account for this.

I'm confused with this and your previous comments on #1413
If we are going up to 300.. Why don't we mark them as slow running test instead?

@obastemur primarily because there is a lack of consensus on moving them to slow-running tests. We need to fix what's broken. If we move them to slow, we can do that later.

LGTM

Thanks @obastemur. I'm merging this in and hopefully this will unblock all of our PRs and other affected build configurations.


Unable to disable scroll animation on Tabs component

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
Tabs component animates beautifully when selecting a tab that is overflowing out of view context or when clicking the scroll buttons. But there does not seem to be a way to override this for visual regression testing in CI (browsershot/Happo/etc), resulting in spurious diffs when rendering snapshots.
Expected Behaviour 🤔
Should be able to override animation to allow consistent visual regression testing (or, if already possible, to document this)
Steps to Reproduce 🕹
Please see this basic repro: https://codesandbox.io/s/react-mui-forked-465c6?file=/index.js
Steps:

Load code sandbox above
See that on page load/refresh tabs animate to selected tab (this breaks visual regression tests as animations are dependent on variable conditions)

Context 🔦
I'm trying to perform visual regression testing using Happo/Storybook in a React App
Your Environment 🌎

`npx @material-ui/envinfo`
  Google Chrome Version 88.0.4324.192 (Official Build) (x86_64)

  System:
    OS: macOS Mojave 10.14.6
  Binaries:
    Node: 12.20.0 - /usr/local/opt/node@12/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.8 - /usr/local/opt/node@12/bin/npm
  Browsers:
    Chrome: 89.0.4389.82
    Edge: Not Found
    Firefox: 83.0
    Safari: 14.0.3
  npmPackages:
    @material-ui/core: 4.10.0 => 4.10.0
    @material-ui/icons: 4.9.1 => 4.9.1
    @material-ui/lab: 4.0.0-alpha.55 => 4.0.0-alpha.55
    @material-ui/pickers: 3.2.10 => 3.2.10
    @material-ui/styles: 4.10.0 => 4.10.0
    @material-ui/system:  4.9.14
    @material-ui/types:  5.1.0
    @material-ui/utils:  4.10.2
    @types/react: 17.0.1 => 17.0.1
    react: 17.0.1 => 17.0.1
    react-dom: 16.13.1 => 16.13.1
    typescript: 3.9.6 => 3.9.6

@chriswall-aa Thanks for the reproduction. It seems that the codesandbox shows that there shouldn't be any animation in the first place since it's the first render. Would you confirm that it solves the issue?

Hi Olivier,
Apologies I didn't see the notification for this!
I'm sorry, I don't understand your comment... The codesandbox loads and it animates on the first render to bring the last tab into view. I am trying to turn off the animation entirely, since animations run inconsistently between loads and my visual regression tool snapshots the tabs component at different positions each time:

I don't understand your comment

I was raising that it doesn't seem to make sense to have an animation for the initial render. I think we should remove it no matter visual regression or not. For now, you can simply hide the whole tab during the screenshot.

(It's worth noting that some users might want to disable this animation on subsequent interaction, too)

@chriswall-aa We can wait for them to open an issue ;)

This diff should solve the issue:
diff --git a/packages/material-ui/src/Tabs/Tabs.js b/packages/material-ui/src/Tabs/Tabs.js
index b4e302e826..4e8424c581 100644
--- a/packages/material-ui/src/Tabs/Tabs.js
+++ b/packages/material-ui/src/Tabs/Tabs.js
@@ -80,6 +80,8 @@ export const styles = (theme) => ({
   indicator: {},
 });

+const defaultIndicatorStyle = {};
+
 const Tabs = React.forwardRef(function Tabs(props, ref) {
   const {
     'aria-label': ariaLabel,
@@ -126,7 +128,7 @@ const Tabs = React.forwardRef(function Tabs(props, ref) {
   }

   const [mounted, setMounted] = React.useState(false);
-  const [indicatorStyle, setIndicatorStyle] = React.useState({});
+  const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);
   const [displayScroll, setDisplayScroll] = React.useState({
     start: false,
     end: false,
@@ -222,8 +224,12 @@ const Tabs = React.forwardRef(function Tabs(props, ref) {
     }
   });

-  const scroll = (scrollValue) => {
-    animate(scrollStart, tabsRef.current, scrollValue);
+  const scroll = (scrollValue, { animation = true } = {}) => {
+    if (animation) {
+      animate(scrollStart, tabsRef.current, scrollValue);
+    } else {
+      tabsRef.current[scrollStart] = scrollValue;
+    }
   };

   const moveTabsScroll = (delta) => {
@@ -315,7 +321,7 @@ const Tabs = React.forwardRef(function Tabs(props, ref) {
     return conditionalElements;
   };

-  const scrollSelectedIntoView = useEventCallback(() => {
+  const scrollSelectedIntoView = useEventCallback((animation) => {
     const { tabsMeta, tabMeta } = getTabsMeta();

     if (!tabMeta || !tabsMeta) {
@@ -325,11 +331,11 @@ const Tabs = React.forwardRef(function Tabs(props, ref) {
     if (tabMeta[start] < tabsMeta[start]) {
       // left side of button is out of view
       const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);
-      scroll(nextScrollStart);
+      scroll(nextScrollStart, { animation });
     } else if (tabMeta[end] > tabsMeta[end]) {
       // right side of button is out of view
       const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);
-      scroll(nextScrollStart);
+      scroll(nextScrollStart, { animation });
     }
   });

@@ -393,7 +399,8 @@ const Tabs = React.forwardRef(function Tabs(props, ref) {
   });

   React.useEffect(() => {
-    scrollSelectedIntoView();
+    // Don't animate on the first render.
+    scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);
   }, [scrollSelectedIntoView, indicatorStyle]);

   React.useImperativeHandle(

I have seen this crappy behavior on the past. It's now, that I have made the connection. Say, you have a Next.js app, and you switch to a different tab. You will remount the whole page. Having the tab animation twice (first when you click, and second when it remounts) doesn't feel clean. Feel free to work on it :)

@oliviertassinari i'm going to work on this


Permanently cache scrollbar size

Every time position() is called and the window has a scrollbar, getScrollBarSize() gets called. In the Firefox 48, this function takes on the order of 100ms (!) to complete, making apps with even a single Tether unusable. As far as I can tell, there's no way to compute scrollbar size efficiently in Firefox.
As suggested at https://github.com/HubSpot/tether/issues/148#issuecomment-180840027, this PR permanently caches the scrollbar size once computed. I'm unaware of any circumstances under which the scrollbar size in a browser would change, so this shouldn't cause any changes in behavior. (The scroll bar size could change to 0, e.g. from changing the "Show scroll bars" setting on a Mac, but getScrollBarSize isn't called while the scrollbar size is 0 anyway.)
/cc @adamschwartz @baptistebriel

Note that when I say "on the order of 100ms," I'm talking about running it on certain pages. I haven't identified what makes those pages special. On most pages it only takes 1-2ms, though that's still quite a significant performance penalty, since it runs separately for each Tether on every scroll event.

🎉 :shipit:


Enable versions in titles of release PRs

Currently the release PRs for this repo have the title chore: release main (e.g. https://github.com/googleapis/google-cloud-java/pull/9427). It would be great if we could have the version number as well as if it is a snapshot version in the title so it's easier to tell what version is getting released instead of having to click into the files. F
or example, java-bigquery has release PRs that look like this: chore(main): release 2.26.1  (https://github.com/googleapis/java-bigquery/pull/2703) and chore(main): release 2.26.2-SNAPSHOT https://github.com/googleapis/java-bigquery/pull/2704.

@alicejli Do you see any difference in yaml files that has release-please in their names between this repository and java-bigquery?

I suspect https://github.com/googleapis/google-cloud-java/blob/main/.github/release-please.yml#L3 is what is causing the discrepancy.
I see in the release-please documentation (https://github.com/googleapis/release-please/blob/main/docs/customizing.md#pull-request-title):
The default pull request title uses this pattern: chore${scope}: release${component} ${version} so a common release pull request title would be chore(main): release foo-bar v1.2.3.

Pattern | Description
-- | --
${scope} | This pattern is used for specifying the conventional commit scope (e.g. chore(scope): some message). We expect that the target branch name is used for the scope value
${component} | The name of the component being released
${version} | The version of the component being released
${branch?} | The target branch of the pull request. If you have multiple release branches, this helps identify which release branch we are working on

So it seems the issue is that release-please cannot find the ${scope}, ${component}, ${version} within the PR, or by using the .release-please-manifest.json file, we should update pullRequestTitlePattern to the pattern we want.
I will test out the latter next week and respond back with findings.

Chance to try: https://github.com/googleapis/google-cloud-java/pull/9516#issuecomment-1583897518

It worked in the latest Release Please PR. Thank you.


Terramine incompatibility

Mod Name
Terramine
Mod Homepage
https://modrinth.com/mod/terramine/versions#all-versions
Describe the bug
mod fails to launch
Steps to reproduce

download terramine
it crashes

...
Logs
[21:06:34] [main/INFO]: ModLauncher running: args [--username, sk_3l, --version, 1.20.1, --gameDir, C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge, --assetsDir, C:\Users\Olive\AppData\Roaming\ATLauncher\assets, --assetIndex, 5, --uuid, 3827f898e13142c6ae742c87405dd563, --accessToken, ????????, --userType, msa, --versionType, release, --launchTarget, forgeclient, --fml.forgeVersion, 47.1.3, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412, --width=1280, --height=720] [21:06:34] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.3 by Microsoft; OS Windows 10 arch amd64 version 10.0 [21:06:34] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [21:06:34] [main/INFO]: Trying GL version 4.6 [21:06:34] [main/INFO]: Requested GL version 4.6 got version 4.6 [21:06:34] [main/INFO]: Mixin Transmogrifier is definitely up to no good... [21:06:35] [pool-2-thread-1/INFO]: GL info: NVIDIA GeForce RTX 3070/PCIe/SSE2 GL version 4.6.0 NVIDIA 536.40, NVIDIA Corporation [21:06:35] [main/INFO]: Redefining 5 mixin classes [21:06:35] [main/INFO]: crimes against java were committed [21:06:35] [main/INFO]: Original mixin transformation service successfully crobbed by mixin-transmogrifier! [21:06:35] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Olive/AppData/Roaming/ATLauncher/instances/Minecraft1201withForge/mods/Connector-1.0.0-beta.17+1.20.1-full.jar%23164%23167!/ Service=ModLauncher Env=CLIENT [21:06:35] [main/INFO]: Found mod file Connector-1.0.0-beta.17+1.20.1-mod.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorEarlyLocator@bdc8014 [21:06:35] [main/INFO]: Found mod file aether-1.20.1-1.0.0-beta.1.3-neoforge.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:35] [main/INFO]: Found mod file architectury-9.1.12-forge.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:35] [main/INFO]: Found mod file cloth-config-11.1.106-forge.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:35] [main/INFO]: Found mod file ConnectorExtras-1.1.1+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:35] [main/INFO]: Found mod file fabric-api-0.89.0+1.9.22+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:35] [main/INFO]: Found mod file TerraBlender-forge-1.20.1-<IP_ADDRESS>.jar of type MOD with provider {mods folder locator at C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge\mods} [21:06:36] [main/WARN]: Mod file C:\Users\Olive\AppData\Roaming\ATLauncher\libraries\net\minecraftforge\fmlcore\1.20.1-47.1.3\fmlcore-1.20.1-47.1.3.jar is missing mods.toml file [21:06:36] [main/WARN]: Mod file C:\Users\Olive\AppData\Roaming\ATLauncher\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.1.3\javafmllanguage-1.20.1-47.1.3.jar is missing mods.toml file [21:06:36] [main/WARN]: Mod file C:\Users\Olive\AppData\Roaming\ATLauncher\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.1.3\lowcodelanguage-1.20.1-47.1.3.jar is missing mods.toml file [21:06:36] [main/WARN]: Mod file C:\Users\Olive\AppData\Roaming\ATLauncher\libraries\net\minecraftforge\mclanguage\1.20.1-47.1.3\mclanguage-1.20.1-47.1.3.jar is missing mods.toml file [21:06:36] [main/INFO]: Found mod file fmlcore-1.20.1-47.1.3.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found mod file javafmllanguage-1.20.1-47.1.3.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found mod file lowcodelanguage-1.20.1-47.1.3.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found mod file mclanguage-1.20.1-47.1.3.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found mod file client-1.20.1-20230612.114412-srg.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found mod file forge-1.20.1-47.1.3-universal.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@15cea7b0 [21:06:36] [main/INFO]: Found 51 dependencies adding them to mods collection [21:06:36] [main/INFO]: Found mod file fabric-transfer-api-v1-3.3.1+01e4cb6c77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-dimensions-v1-2.1.53+8005d10d77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-renderer-api-v1-3.2.0+6f53282b77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-model-loading-api-v1-1.0.2+731e429d77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-item-api-v1-2.1.27+4a4df44977.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-rendering-fluids-v1-3.0.27+4ac5e37a77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-screen-handler-api-v1-1.3.29+561530ec77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-resource-loader-v0-0.11.9+65ee760177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-models-v0-0.4.1+7c3892a477.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-rendering-v1-3.0.7+1c0ea72177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-renderer-indigo-1.5.0+6f53282b77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-convention-tags-v1-1.5.4+fa3d1c0177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-mining-level-api-v1-2.1.49+561530ec77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-command-api-v2-2.2.12+561530ec77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-block-view-api-v2-1.0.0+0767707077.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file Connector-1.0.0-beta.17+1.20.1-fabricloader.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file mixinextras-forge-0.2.0-beta.9.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file rei-bridge-1.1.1+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-screen-api-v1-2.0.7+e7e7fde177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file energy-bridge-1.1.1+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-particles-v1-1.1.1+7802dd6f77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-content-registries-v0-4.0.9+afab492177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-transitive-access-wideners-v1-4.3.0+1880499877.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-game-rule-api-v1-1.0.38+afab492177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-api-base-0.4.30+ef105b4977.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-api-lookup-api-v1-1.6.35+561530ec77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-blockrenderlayer-v1-1.1.40+8005d10d77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-block-api-v1-1.0.10+0e6cb7f777.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file reach-entity-attributes-2.4.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-resource-conditions-api-v1-2.3.5+afab492177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file curios-forge-5.3.3+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-item-group-api-v1-4.0.10+f6e291bf77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-biome-api-v1-13.0.10+1fd6f40777.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-entity-events-v1-1.5.22+b909fbe377.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-registry-sync-v0-2.3.2+1c0ea72177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file cumulus_menus-1.20.1-1.0.0-beta.1-neoforge.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-recipe-api-v1-1.0.20+514a076577.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-object-builder-api-v1-11.1.1+1c0ea72177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-loot-api-v2-1.1.39+2e4442f377.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-rendering-data-attachment-v1-0.3.36+a6081afc77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file nitrogen_internals-1.20.1-0.1.3-neoforge.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-networking-api-v1-1.3.10+8ba517a077.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file MixinExtras-0.2.0-beta.9.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-sound-api-v1-1.0.12+4f23bd8477.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-message-api-v1-5.1.7+ff2512b877.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file emi-bridge-1.1.1+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-lifecycle-events-v1-2.2.21+afab492177.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-data-generation-api-v1-12.3.0+fbedf1fa77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-events-interaction-v0-0.6.1+25d9948677.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-key-binding-api-v1-1.0.36+561530ec77.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Found mod file fabric-client-tags-api-v1-1.1.1+5d6761b877.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@1daf3b44 [21:06:36] [main/INFO]: Dependency resolution found 12 candidates to load [21:06:39] [ForkJoinPool-12-worker-8/WARN]: @Inject(@At("INVOKE")) Shift.BY=3 on dev.su5ed.sinytra.adapter.patch.transformer.DynamicLVTPatch$ClassMixinContext@4368f90b::onAddEffect exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$MixinExtras-0.1.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$LibGui-8.0.0+1.20$Jankson-Fabric-5.0.1+j1.2.2$jankson-1.2.2_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$cardinal-components-base-5.2.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$cardinal-components-entity-5.2.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$cardinal-components-level-5.2.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$cardinal-components-world-5.2.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$expandability-fabric-9.0.0_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$LibGui-8.0.0+1.20$Jankson-Fabric-5.0.1+j1.2.2_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$LibGui-8.0.0+1.20_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$LibGui-8.0.0+1.20$libninepatch-1.2.0_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1$step-height-entity-attribute-v1.2.0_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:40] [main/INFO]: Found mod file terramine-1.7.1+1.20.1_mapped_srg_1.20.1.jar of type MOD with provider dev.su5ed.sinytra.connector.locator.ConnectorLocator@7cfb4736 [21:06:41] [main/INFO]: Compatibility level set to JAVA_17 [21:06:42] [main/WARN]: Reference map 'nitrogen_internals.refmap.json' for nitrogen_internals.mixins.json could not be read. If this is a development environment you can ignore this message [21:06:42] [main/WARN]: Error loading class: me/shedaniel/rei/RoughlyEnoughItemsCore (java.lang.ClassNotFoundException: me.shedaniel.rei.RoughlyEnoughItemsCore) [21:06:42] [main/WARN]: @Mixin target me.shedaniel.rei.RoughlyEnoughItemsCore was not found mixins.reibridge.json:RoughlyEnoughItemsCoreMixin from mod (unknown) [21:06:42] [main/WARN]: Error loading class: me/shedaniel/rei/RoughlyEnoughItemsCoreClient (java.lang.ClassNotFoundException: me.shedaniel.rei.RoughlyEnoughItemsCoreClient) [21:06:42] [main/WARN]: @Mixin target me.shedaniel.rei.RoughlyEnoughItemsCoreClient was not found mixins.reibridge.json:client.RoughlyEnoughItemsCoreClientMixin from mod (unknown) [21:06:43] [main/WARN]: Error loading class: dev/emi/emi/platform/forge/EmiAgnosForge (java.lang.ClassNotFoundException: dev.emi.emi.platform.forge.EmiAgnosForge) [21:06:43] [main/WARN]: @Mixin target dev.emi.emi.platform.forge.EmiAgnosForge was not found mixins.emibridge.json:EmiAgnosForgeMixin from mod (unknown) [21:06:43] [main/INFO]: Launching target 'forgeclient' with arguments [--version, 1.20.1, --gameDir, C:\Users\Olive\AppData\Roaming\ATLauncher\instances\Minecraft1201withForge, --assetsDir, C:\Users\Olive\AppData\Roaming\ATLauncher\assets, --uuid, 3827f898e13142c6ae742c87405dd563, --username, sk_3l, --assetIndex, 5, --accessToken, ????????, --userType, msa, --versionType, release, --width=1280, --height=720]
Additional context
No response

Please don't paste logs here, upload them to a paste site as explained in the issue template

I too would like to see this working eventually, if there's something I need to change on my end then just create an issue on my mods github repo

I had to open my game with output log as the debug.log and latest.log wouldnt show this error:
https://gist.github.com/Xplodin/7318c0d6f7cc56aa3629fa89ca0f908e
looks like swimsneakspeed is erroring out with the flippers with connector for livingentitymixin


📋 [TASK] - Auto-Generate POPO

Parent Feature
NA
Task Description
As an AaC developer, I want to auto-generate the POPO for AaC, so that I can convert the legacy systems.
Acceptance Criteria

[ ] AaC creates a POPO data object from a YAML definition.
[ ] Create unit tests exercising the POPO creation.
[ ] Update definition creation documentation to explain new POPO generation.

Unresolved questions
No response

Per team agreement in this comment thread on #714 , this item is eligible for closure.


fallback-Fliter使用疑问请大佬指导下

我redir-tun模式下，github代理不能访问，www.google.com可以访问，www.googl.com.hk不能访问，在fallback-Fliter添加了"+.github.com"和"+.google.com.hk"之后，访问google和github都正常了，所以对fallback-Fliter有了以下的疑问。
1、在fallback-Filter中选择true时geoip判断国外域名使用fallback解析最快的，国内选择nameserver解析最快的是这个意思吗？
2、在fallback-Filter设置true并添加"+.google.com.hk"代表google.com.hk强制使用fallback吗？
3、如果在fallback-Filter中添加"+.*"是不是强制远程解析？

If IP addresses resolved with servers in nameservers are in the specified
subnets below, they are considered invalid and results from fallback
servers are used instead.

IP address resolved with servers in nameserver is used when
fallback-filter.geoip is true and when GEOIP of the IP address is CN.

If fallback-filter.geoip is false, results from nameserver nameservers
are always used if not match fallback-filter.ipcidr.

This is a countermeasure against DNS pollution attacks.

If IP addresses resolved with servers in nameservers are in the specified
subnets below, they are considered invalid and results from fallback
servers are used instead.

IP address resolved with servers in nameserver is used when
fallback-filter.geoip is true and when GEOIP of the IP address is CN.

If fallback-filter.geoip is false, results from nameserver nameservers
are always used if not match fallback-filter.ipcidr.

This is a countermeasure against DNS pollution attacks.

The "fallback filter" description above confuses me, too. It was written in a somewhat obscured manner and IMHO lacked a pragmatic approach to cover all the scenarios. This issue has proven that I am not the only one.
My understanding of what the fallback filter does (based on the description above):

With all DNS requests, DNS servers defined in Nameservers will be used first. However, if the response falls in fallback-filter.ipcidr then it's considered "polluted", we will then continue the DNS resolution with DNS servers defined in  Fallback.
If fallback-filter.geoip is set to true, then DNS servers defined in Nameservers will be used if the GEOIP of the resolved IP address is CN (and obviously does not fall into the fallback-filter.ipcidr)
If fallback-filter.geoip is set to true, then DNS servers defined in Fallback will be used if the GEOIP of the resolved IP address is not CN (and obviously does not fall into the fallback-filter.ipcidr)
If fallback-filter.geoip is set to false, then DNS servers defined in Nameservers will be used as long as the resolved IP is not "polluted".

Correct me if I am wrong for the above?
Also there is no explanation about fallback-filter.domain, guess domains defined here will be forced with DNS servers defined in Fallback?


Add filter of Policy Fragment

Added filter of Policy Fragment

@microsoft-github-policy-service agree

Some variables are not followed proper name convention. Will fix and resubmit

@mmmbai thank you for submitting the PR. Can you please answer couple questions below:
Question 1:
Can you please share here how would one specify in the configuration.extractor.yaml file below that they would like to filter a policy fragment. Is it "policyFragments" ?
apiNames:

apiName1
apiName2

loggerNames:

loggerName1
loggerName2

namedValueNames:

namedValueName1
namedValueName2

productNames:

productName2
productName2

backendNames:

backend1
backend2

tagNames:

tag1
tag2

Question 2:
Does you code behave the same way as our other filters? For instance:
An empty policyFragments section in configuration (policyFragments: []) means no fragments will be extracted?
A missing policyFragments section in configuration means all policy fragments will be extracted?
A policyFragments section with values means only policy fragments with those names will be extracted?

Some variables are not followed proper name convention. Will fix and resubmit

Sounds good. Please also answer the questions I posted above after you resubmit your PR so I can update the docs accordingly.


Added support to allow getImageArray to return Numpy Arrays

@tocttou
I've made the required changes. I'll update the docs now!


Suggestions from drug design developers

Hi, very interesting model. But here are a few suggestions from us drug design developers:

If you want to compare your model with traditional docking methods, e.g. Glide, Smina, Vina, etc, you should focus on pockets instead of using global docking to lower the their performance, as they are fully focus on the pocket, not on the full protein;
End-to-end whole protein docking is not necessary. You can do a dedicated pocket prediction model and then fully invest in pocket pose prediction. If the pockets are all wrongly predicted, there is absolutely no need to calculate RMSD and centroid distance;
From the point of view of the force field, the prediction of the torsion angle is not arbitrary. I didn't see the assignment in your paper about the plausible assessment of molecular conformation, even if your initial conformation was generated by rdkit, bond length and angles are guaranteed, but plausibility assessment of torsion angle is still required. If you consider the vdw interaction between the atoms forming the torsion angle, it may be better for your model to predict the native-like pose;
Actually, this suggestion (https://github.com/gcorso/DiffDock/issues/4) is correct, pose prediction serves HTS, you do not need to develop the corresponding scoring function, but you should further combine the traditional scoring function to report your advantage of high conformational enrichment within 2A on virtual screening task.
The above are some of my suggestions, I hope to be forgiven if I say something wrong. We hope that we drug developers will keep communicating with your computer science researchers.

Hi @HBioquant,
Thank you for the suggestions, I'll try to answer to all your points:

Indeed, for GNINA and SMINA we also test them in combination of another method to find the pocket such as P2Rank. This improves their performance on blind (global) docking but not by that much (around 29% top-1 RMSD < 2A). Please find the results and more discussion in the paper. Also from my understanding, QuickVina-W was developed for blind docking.
There are two points here. (1) One might argue that the prediction of the pose when knowing the pocket is a more useful task. This is likely the case for many drug developers, but, from my understanding, blind docking is also important for many critical applications such as reverse screening and understanding biological mechanisms behind side effects etc. This being said we are currently working on a version of DiffDock where one can specify the pocket. Stay tuned :). (2) I do not agree that, for blind docking, predicting the pocket and calculating the pose separately is the best approach. Predicting which is the correct pocket without knowing how the ligand could fit in the pocket, or even the ligand identity, feels to me suboptimal and this has also been shown in previous works such as TANKBind [Lu et al. 2022]. Indeed computing RMSD and centroid distance does not make much sense when the pocket is wrong, but anyways these will never appear in the RMSD below 2A (and 5A) predictions that we report.
Indeed the prediction of the torsion angles is definitely not random. The way that we predict the conformation is analogous to the approach that we took in our previous work Torsional Diffusion for Molecular Conformer Generation [Jing et al. 2022]. There you can find significantly more analysis on the quality of the conformers generated by the method (both in terms of geometry and energy), we will try to add similar analyses to this paper as well even though we expect them to be similar. Do you have another type of comparison you had in mind to evaluate the fidelity of the conformer predicted?
Well, we totally recognize that we have not solved virtual screening and it was not the task we were tackling in this paper. We are currently building on top of this work to get closer and closer to the virtual screening task and setting. From my perspective, one should not expect a single paper to go all the way, otherwise, it would have to significantly rely on existing frameworks and not really bring an entirely new approach to the field. However, in my view, accurate docking is a necessary (but not sufficient) condition for virtual screening and that is why we (as many before in the past) decided to focus on it in this paper. Stay tuned for future work!

Thanks again for your comments,
Gabriele

Thanks for your reply, Gabriele. I'll also point-to-point express my views:
1 & 2. Yeap, QuickVina-W is a better choice to benchmark. My confusion is mainly on the performance of p2rank. As our internal test of p2rank, the acc is dissatisfactory under the top1 score and nearest predicted pocket with the native pocket. Have you tested the performance of p2rank. You can use a more SOTA pocket prediction tool, unnecessarily the same as TankBind implementation；
3. I think mmff94 energy is a good indicator to evaluate the generated conformer. My main concern is that Torsional Diffusion learned from DRUGS with lots of molecular comformers, while DiffDock learned from PDBBind and conditioned on the CA pocket, the torsion angle may be affected by this difference and the model didn't learn exact torsion angle distribution;
4’. As your examples showed on the Figure 10 and https://github.com/gcorso/DiffDock/tree/main/visualizations, the showed problem is not a real problem, because if we really know our protein such as the symmetric complexes, we just delete the homologous monomers and keep only one pocket, which is formed in one single monomer or monomer-monomer interface. So it is not a real problem for regression-based methods. But I agree with generative model for the pose prediction. A really nice work!
Thanks again for your work and your reply,
David

Thanks David for the reply!
1&2 In TANKBind the reported performance of P2Rank top1 is 73%. What do you suggest as a more accurate pocket prediction tool? Notice that I believe the cause of the difference of these results with the one typically reported by the docking methods (often in the 80s %) is the fact that they sometimes assume not only knowledge of the binding pocket location but also of a very restrictive bounding box, which even good pocket prediction methods cannot provide.
3. Thanks for the comment, we'll try to make this evaluation!
Thanks,
Gabriele

Hi, very interesting discussion. Author of P2Rank here.
P2Rank prediction success rate of around 73% for top1 pocket is consistent with my experience (the exact number depends on the specific identification criterion used). This might seem rather low (leaving 27% of binding sites on the table), but I believe it is quite close to Bayes optimal rate that can be achieved in a benchmark on noisy datasets. The reason is the fact that, more often than not, proteins have more than one binding site, but not all of them are present in many/most of the datasets currently used in the field (which usually consist of proteins+ligands taken straight from the PDB). Even the hypothetical perfect binding site prediction method (one that predicts all true binding sites and nothing else) would at times predict true binding site not contained in the dataset and assign it the highest score. In such cases, the method would be penalized for that correct prediction by top1 metric. My guess is that the Bayes optimal top1 prediction success rate for structures(proteins+ligands) taken straignt from PDB is not higher than 80%.
Cosequently, I wouldn't use just top1 prediction of P2Rank (or any other prediction method, for that matter) for anything, especially not docking. Instead, I think it makes more sense to consider at least top3 or top5 pockets (or to use a reasonably permissive pocket score threshold) in combination with larger bounding boxes (~8A or more).
@HBioquant, could you elaborate on what kind of dataset was top1 accuracy of P2Rank unsatisfactory? I would be interested in looking into it. (Here or privately if you prefer.... I wasn't able to find your contact.)
@gcorso, very interesting work. Has your understanding of the role/limitations of ligand binding site prediction in docking changed since?


[BUG] Compute mistakenness cannot handle None-valued predictions

Proposal Summary
fob.compute_mistakenness() raises an error if it encounters a sample with None-valued predictions.
Motivation

What is the use case for this feature?

My steps are:

I load my yolov5 dataset
and then load model predictions as a new field prediction
and run dataset.evaluate_detections and fob.compute_mistakenness
but it fails because some samples from the original dataset have None at prediction field
ValueError: Sample '61e663228baaa140f1ab0a67' field 'prediction' is None
since there're not corresponding detections file

Why is this use case valuable to support for FiftyOne users in general?

If we skip these examples we won't know that there're false negatives in detections.
Then this leads to erroneous metric assessment and is somewhat hidden.

Why is this use case valuable to support for your project(s) or
organization?

no extra steps required when comparing ground truth and predictions like manually correcting the prediction field.

Why is it currently difficult to achieve this use case? (please be as
specific as possible about why related FiftyOne features and components are
insufficient)

Not difficult at all. Create a view with prediction is None and assign empty detections.
What areas of FiftyOne does this feature affect?

[ ] App: FiftyOne application
[x] Core: Core fiftyone Python library
[ ] Server: FiftyOne server

Details
yolo.py
def add_yolo_labels(sample_collection, label_field, labels_path, classes=None,
                        include_missing=False # new param):
...

view = sample_collection.select(matched_ids, ordered=True)
labels = [load_yolo_annotations(p, classes) for p in matched_paths]
view.set_values(label_field, labels)

# if True then set empty
if include_missing:
    missing_view = sample_collection.exclude(matched_ids, ordered=True)
    missing_labels = [fo.Detections(detections=[]) ] * len(missing_view)
    missing_view.set_values(label_field, missing_labels)

Willingness to contribute
The FiftyOne Community encourages new feature contributions. Would you or
another member of your organization be willing to contribute an implementation
of this feature?

[x] Yes. I can contribute this feature independently.
[ ] Yes. I would be willing to contribute this feature with guidance from
the FiftyOne community.
[ ] No. I cannot contribute this feature at this time.

Hey @Rusteam thanks for the suggestion.
First, we should definitely update compute_mistakenness() to treat None as empty (I believe evaluate_detections() already does this), to capture false negatives as you mention. If you include such a sample in your method call, you are definitely intending to treat None <-> Detections().
In general, I'm hesitant to add empty Detections() in add_yolo_labels() because in some use cases it is meaningful to distinguish:

Detections(): the sample was included in annotation/prediction, but no labels were detected
None: the sample was not processed, so it may or may not contain objects. These samples should generally be omitted from any analysis via dataset.exists(field)

The recommended way to cause add_yolo_labels() to insert Detections() instead of None is to have empty-but-existing TXT files in your labels directory.
As a workaround, you can insert empty Detections() in your dataset like so:
missing_preds = dataset.exists("predictions", False)
missing_preds.set_values("predictions", [fo.Detections()] * len(missing_preds))

Update: oh I see now that in your proposal the default include_missing=False maintains the current behavior.
I'm onboard with having your idea as an optional behavior at sample add-time. A PR is welcome! 🤗 Could you also add the same thing to fiftyone.utils.add_coco_labels()?

Update: oh I see now that in your proposal the default include_missing=False maintains the current behavior.
I'm onboard with having your idea as an optional behavior in add_yolo_labels(). A PR is welcome! 🤗 Could you also add the same thing to fiftyone.utils.add_coco_labels()?

Yeah I can do that.
Also let me figure out how to handle None's in compute_mistakeness

Awesome! FYI compute_mistakeness() is from a separate fiftyone-brain package, so we'll need to handle that separately.

the same thing to fiftyone.utils.add_coco_labels()?

seems like it is a default behavior for coco

compute_mistakeness() has been updated to gracefully handle None values, and this behavior will be available in fiftyone-brain>0.7.3.

thanks a lot


Add ability to know how many total pages will be printed

Current code will not know how many pages it has to print.    Having this ability would allow us to put "page 1 of 10" or "page x of y" on pages.
(Would require a pre-rendering system)

Notes: Page 355 would eliminate a pre-rendering system.

This feature has now been added to the engine.  To use it; anywhere you would normally use
Rpt.pageNumber({options}), you can now do: Rpt.pageNumber({text: "Page {0} of {1}", moreOptions...}); {0} will still be the current page number and the {1} will now be the total number of pages in the report.


Sample Sessions Controller for logging in via Rails View.

@ACPK - I vaguely remember working through this issue with you, but I forget the details. Do you remember how it was resolved?

@lynndylanhurley  - I needed to namespace as API.

Ahh ok. I'm closing this one out.
Also, I just fixed a bunch of namespace / scope issues in version 0.1.31.beta8. Not sure if you were having trouble before, but everything should work as expected now.


New crates.io release

Please publish a new version on crates.io containing the no_std functionality. It would be great if I could depend on this crate without referencing the git repository directly.

Oops sorry! Done!


docs: Fix documentation for encryption algo

Docs mention aes256-cdc, which is a typo of aes256-cbc. This PR corrects it but changes it to aes256-gcm instead, which is a more-likely value for this use case.

Thanks @fabioz ! :pray:

The algorithm used was actually gcm as you noted, but I did a subsequent fix because even it the code there were bad references (https://github.com/robocorp/robocorp/commit/369e64a4861bbe19343b20339c6baa8ce3aae08c).
Thanks for spotting it.


how can i use kitti odometry data？

hi，appreciate your great work，
but when i use kitti data，which have no distortion in http://www.cvlibs.net/datasets/kitti/eval_odometry.php，
that is mean there is no use to Update keypoints when run CT_ICP_GN（） function，
and i aslo think we do not need to use pose and velocity constraint in the paper，
what should i do to modify the code？
thanks a lot

I have a similar question. Since you mentioned the following for Kitti-corrected dataset:
"The frames are motion-compensated (no relative-timestamps) and the Continuous-Time aspect of CT-ICP will not work on this dataset."
How to set the config file or modify the code to achieve the results you reported in your paper for Kitti-corrected dataset? I have a kitti-corrected dataset at hand. I tried to set the dataset_options.dataset to Kitti, the result is worse than the one reported in the paper. But when I set to Kitti-raw, the result is close to the one reported in the paper. That's quite confusing.
Another question, one of the dataset I downloaded from Kitti website the synced lidar data is stored in .bin format while the raw lidar data is stored in .txt format. How to transform the .txt format to .ply?
Thanks!

Please correct me if I'm wrong.
Update keypoints part in CT_ICP_GN() function is transforming the points to the map coordinate and is necessary for the next iteration.
I also doubt the improvement of adding pose and velocity constraint. I tried to comment Line 891 to Line 909 in ct_icp.cpp, the result didn't make a big difference.

I have a similar question. Since you mentioned the following for Kitti-corrected dataset: "The frames are motion-compensated (no relative-timestamps) and the Continuous-Time aspect of CT-ICP will not work on this dataset." How to set the config file or modify the code to achieve the results you reported in your paper for Kitti-corrected dataset? I have a kitti-corrected dataset at hand. I tried to set the dataset_options.dataset to Kitti, the result is worse than the one reported in the paper. But when I set to Kitti-raw, the result is close to the one reported in the paper. That's quite confusing.
Another question, one of the dataset I downloaded from Kitti website the synced lidar data is stored in .bin format while the raw lidar data is stored in .txt format. How to transform the .txt format to .ply? Thanks!

Hi,
To run CT-ICP on the KITTI corrected dataset,
Which are motion corrected, you should specify the following options, in the YAML config file
odometry_options:
motion_compensation: NONE
This will result in using the standard point to plane error (which optimizes on one pose as parameter),
Instead of the two in our Continuous ICP.
I will check, but normally you should have the same / close results as in our paper.
For the PLY files you can directly download the KITTI ply files we propose in the download link.

hi，appreciate your great work， but when i use kitti data，which have no distortion in http://www.cvlibs.net/datasets/kitti/eval_odometry.php， that is mean there is no use to Update keypoints when run CT_ICP_GN（） function， and i aslo think we do not need to use pose and velocity constraint in the paper， what should i do to modify the code？
thanks a lot

Please correct me if I'm wrong.
Update keypoints part in CT_ICP_GN() function is transforming the points to the map coordinate and is necessary for the next iteration.
I also doubt the improvement of adding pose and velocity constraint. I tried to comment Line 891 to Line 909 in ct_icp.cpp, the result doesn't make a big difference.

hi，appreciate your great work， but when i use kitti data，which have no distortion in http://www.cvlibs.net/datasets/kitti/eval_odometry.php， that is mean there is no use to Update keypoints when run CT_ICP_GN（） function， and i aslo think we do not need to use pose and velocity constraint in the paper， what should i do to modify the code？
thanks a lot

Please correct me if I'm wrong. Update keypoints part in CT_ICP_GN() function is transforming the points to the map coordinate and is necessary for the next iteration. I also doubt the improvement of adding pose and velocity constraint. I tried to comment Line 891 to Line 909 in ct_icp.cpp, the result doesn't make a big difference.

Well, we found that most of the time, these constraints are not needed (when there is enough geometric constraints in the environment),
But sometimes, introducing two poses as parameters introduces too many degrees of freedom, which lead to failed / inconsistent poses.
Think of it as an elastic cord which you hold by the two ends. If your constraints are only at the center of the cord, then there is a lot of positions in which you can place your two hands. If however your constraints are well spread between the beginning, and (where your hands are) and the middle, then you have a much better defined objective.
In our case the constraints are defined by the geometric features of the environment, so when you are in the first case (geometric constraints in the temporal middle of the frame), then these constraints are helpful to prevent misalignments.
Hope this answer your question. If not, I will try to answer the best I can.
We are working hard to improve CT-ICP (notably introducing the ROS wrapping, which should be pushed in later this week)
So thanks for your comments, this will help us improve the interface further.

thanks for all your relpy，for run kitti correct，i try to modify the ct_icp_gn() function,
i delet all alpha_timestamp in
                // double cbx =
                //         (1 - alpha_timestamp) * (frame_idx_previous_origin_begin[1] * closest_pt_normal[2] -
                //                                  frame_idx_previous_origin_begin[2] * closest_pt_normal[1]);
                // double cby =
                //         (1 - alpha_timestamp) * (frame_idx_previous_origin_begin[2] * closest_pt_normal[0] -
                //                                  frame_idx_previous_origin_begin[0] * closest_pt_normal[2]);
                // double cbz =
                //         (1 - alpha_timestamp) * (frame_idx_previous_origin_begin[0] * closest_pt_normal[1] -
                //                                  frame_idx_previous_origin_begin[1] * closest_pt_normal[0]);

                // double nbx = (1 - alpha_timestamp) * closest_pt_normal[0];
                // double nby = (1 - alpha_timestamp) * closest_pt_normal[1];
                // double nbz = (1 - alpha_timestamp) * closest_pt_normal[2];

                // double cex = (alpha_timestamp) * (frame_idx_previous_origin_end[1] * closest_pt_normal[2] -
                //                                   frame_idx_previous_origin_end[2] * closest_pt_normal[1]);
                // double cey = (alpha_timestamp) * (frame_idx_previous_origin_end[2] * closest_pt_normal[0] -
                //                                   frame_idx_previous_origin_end[0] * closest_pt_normal[2]);
                // double cez = (alpha_timestamp) * (frame_idx_previous_origin_end[0] * closest_pt_normal[1] -
                //                                   frame_idx_previous_origin_end[1] * closest_pt_normal[0]);

                // double nex = (alpha_timestamp) * closest_pt_normal[0];
                // double ney = (alpha_timestamp) * closest_pt_normal[1];
                // double nez = (alpha_timestamp) * closest_pt_normal[2];

and delet the elastic constraint，
and make begin r/t same to end r/t，

hi，appreciate your great work， but when i use kitti data，which have no distortion in http://www.cvlibs.net/datasets/kitti/eval_odometry.php， that is mean there is no use to Update keypoints when run CT_ICP_GN（） function， and i aslo think we do not need to use pose and velocity constraint in the paper， what should i do to modify the code？
thanks a lot

Please correct me if I'm wrong. Update keypoints part in CT_ICP_GN() function is transforming the points to the map coordinate and is necessary for the next iteration. I also doubt the improvement of adding pose and velocity constraint. I tried to comment Line 891 to Line 909 in ct_icp.cpp, the result doesn't make a big difference.

Well, we found that most of the time, these constraints are not needed (when there is enough geometric constraints in the environment), But sometimes, introducing two poses as parameters introduces too many degrees of freedom, which lead to failed / inconsistent poses. Think of it as an elastic cord which you hold by the two ends. If your constraints are only at the center of the cord, then there is a lot of positions in which you can place your two hands. If however your constraints are well spread between the beginning, and (where your hands are) and the middle, then you have a much better defined objective.
In our case the constraints are defined by the geometric features of the environment, so when you are in the first case (geometric constraints in the temporal middle of the frame), then these constraints are helpful to prevent misalignments.
Hope this answer your question. If not, I will try to answer the best I can.
We are working hard to improve CT-ICP (notably introducing the ROS wrapping, which should be pushed in later this week) So thanks for your comments, this will help us improve the interface further.

thanks a lot,
can i understand that the elastic constraint is for more accurate lidar points distortion？
i think your great work can perform de-distortion when optimite pose，
after add the well de-distorted cloud to the map, it well perform good because you build more accurate point clound map.

hi，appreciate your great work， but when i use kitti data，which have no distortion in http://www.cvlibs.net/datasets/kitti/eval_odometry.php， that is mean there is no use to Update keypoints when run CT_ICP_GN（） function， and i aslo think we do not need to use pose and velocity constraint in the paper， what should i do to modify the code？
thanks a lot

Please correct me if I'm wrong. Update keypoints part in CT_ICP_GN() function is transforming the points to the map coordinate and is necessary for the next iteration. I also doubt the improvement of adding pose and velocity constraint. I tried to comment Line 891 to Line 909 in ct_icp.cpp, the result doesn't make a big difference.

Well, we found that most of the time, these constraints are not needed (when there is enough geometric constraints in the environment), But sometimes, introducing two poses as parameters introduces too many degrees of freedom, which lead to failed / inconsistent poses. Think of it as an elastic cord which you hold by the two ends. If your constraints are only at the center of the cord, then there is a lot of positions in which you can place your two hands. If however your constraints are well spread between the beginning, and (where your hands are) and the middle, then you have a much better defined objective.
In our case the constraints are defined by the geometric features of the environment, so when you are in the first case (geometric constraints in the temporal middle of the frame), then these constraints are helpful to prevent misalignments.
Hope this answer your question. If not, I will try to answer the best I can.
We are working hard to improve CT-ICP (notably introducing the ROS wrapping, which should be pushed in later this week) So thanks for your comments, this will help us improve the interface further.

Thank you very much for your detailed explanation. Looking forward to the ROS wrapping.


Line Diff causes an exception

Running the example usage from here on the javascript version:
  const text1="this\n is\n a\n test\n";
  const text2="this\n wasn't\n a\n test\n";
  // Example code "as is":
  var dmp = new diff_match_patch();
  var a = dmp.diff_linesToChars_(text1, text2);
  var lineText1 = a[0];
  var lineText2 = a[1];
  var lineArray = a[2];
  var diffs = dmp.diff_main(lineText1, lineText2, false);
  dmp.diff_charsToLines_(diffs, lineArray);

Causes this exception:

Uncaught Error: Null input. (diff_main)
at diff_match_patch.diff_main (:2:190)
at :6:19

Good catch, the wiki is out of date.  Use these three lines instead:
var lineText1 = a.chars1;
var lineText2 = a.chars2;
var lineArray = a.lineArray;

Fixing the wiki page now.  Thanks!

Thank you for the swift response, if you're editing the docs - you might want to use more explicit variable name than a.
For example:
function diff_lineMode(text1, text2) {
  var dmp = new diff_match_patch();
  var lineMode = dmp.diff_linesToChars_(text1, text2);
  var diffs = dmp.diff_main(lineMode.chars1, lineMode.chars2, false);
  dmp.diff_charsToLines_(diffs, lineMode.lineArray);
  return diffs;
}

Also, why is diff_linesToWords a part of the docs and not a part of the library itself ?
Thank you so much !

Your suggestion is optimal for JavaScript and Java where an object is returned, but in other languages such as Python the return value is an array.  So I think the code on the wiki is a good compromise, that makes it relatively easy for people to translate the example into the language they are using.
The reason diff_linesToWords is not part of the library is that nobody can agree on the definition of a word.  I developed the word count for Google Docs, and learned that it's a fairly arbitrary number.  Open Office, MS Word, and Google Docs all report significantly different word counts for the same non-trivial document.  For example, is "coca-cola.com" one or two or three words?  And then there's the nightmare of what to do about CJK languages.  If I were to add a word-splitting algorithm to diff-match-patch, I'd end up dealing with conflicting bug reports for the rest of my life.  :)

Got your note a regarding the word-splitting, didn't think about that.
However, regarding the return type of diff_linesToChars_, I am not a master in lua or dart, but regarding python, its super simple.
Just wrap the return value with a namedtuple, that will allow to access the object as an array and with its attributes.
See example:
from collections import namedtuple
LineModeObj = namedtuple("LineModeObj", ("chars1","chars2","lineArray"))

And all you need to do is replace this line with
return LineModeObj (chars1, chars2, lineArray)

If you grant me collaborator rights, I can open a pull request myself

Unfortunately Python is just one example.  C#, C++/QT, and ObjectiveC all use arrays/lists/tuples as return values, and some of the ports not maintained in this repo (such as Go) also use arrays.

Does anyone have an example in JavaScript for the diff_linesToWords that can be viewed?


Create DB if not exists

Looks good, care to make a fork of upstream OVH repository. Make a PR to them and then make a PR to here from your fork


[Bugs] AMF TestPDUSessionReleaseRequest fails due to missing PDUsessionResourceSetupRequest

Describe the bug
AMF TestPDUSessionReleaseRequest sometimes fails due to missing PDUsessionResourceSetupRequest.  This is due to missing proper locking.
To Reproduce
Run TestPDUSessionReleaseRequest multiple times.
Expected behavior
TestPDUSessionReleaseRequest must success all the time.
Environment (please complete the following information):

free5GC Version: 3.0.4
OS: Ubuntu 18.04
Kernel version: 5.0.0-23-generic
go version: 1.14.4 linux/amd64

Pull Request
Pull Request for the fix. - PR is updated for main branch

Thanks for the PR!


Add information about dbt-singlestore adapter

Description & motivation

To-do before merge

[ ] Make sure dbt-singlestore repo is public
[ ] Ensure dbt-singlestore package is pushed to PyPi

Pre-release docs
Is this change related to an unreleased version of dbt?

[ ] Yes: please

update the base branch to next
add Changelog components: <Changelog>[New/Changed] in v0.x.0</Changelog>
add links to the "New and changed documentation" section of the latest Migration Guide

[x] No: please ensure the base branch is current
[ ] Unsure: we'll let you know!

Checklist
If you added new pages (delete if not applicable):

[x] The page has been added to website/sidebars.js
[x] The new page has a unique filename

For reference for other reviewers on this PR, we are holding off on merging in this PR until the adapter is ready in PyPi.


mixin with on clause does not resolve grand-ancestor methods

What I was doing
class A {
  String bar() => 'baz';
}

class B extends A {
}

mixin UnhappyMixin on B {
  String baz() => bar();
//                ^
//                "The method 'bar' isn't defined for the class 'UnhappyMixin'."
}

Versions

Flutter SDK 0.4.3-pre.1162
Visual Studio Code 1.27.1
Dart Code 2.18.0

@stereotype441 @JekCharlsonYu @leafpetersen

This is another instance of https://github.com/dart-lang/sdk/issues/34564.
This works now.

Nice! I had a suspicion but wasn't sure.


Talk about query { nodes(ids: [...]) { ... } }

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://github.com/github/docs/blob/main/content/graphql/guides/migrating-graphql-global-node-ids.md#migrating-to-the-new-global-ids
What part(s) of the article would you like to see updated?
There's a suggestion to use:
$ curl \
  -H "Authorization: token $GITHUB_TOKEN" \
  -H "X-Github-Next-Global-ID: 1" \
  https://api.github.com/graphql \
  -d '{ "query": "{ node(id: \"MDQ6VXNlcjM0MDczMDM=\") { id } }" }'

But, it'd be really helpful to suggest something fancier like the this graphql:
curl -v \
-H "Authorization: bearer $GITHUB_TOKEN" \
-H "X-Github-Next-Global-ID: 1" \
https://api.github.com/graphql \
-d \
'{"query":"query {\nnodes(ids: [\"MDEwOlJlcG9zaXRvcnkxODk2MjE2MDc=\", \"MDEyOk9yZ2FuaXphdGlvbjk5MTk=\", \"MDc6TGljZW5zZTA=\", \"MDM6QXBwMTUzNjg=\", \"MDQ6VXNlcjU4MzIzMQ==\",  ]) {\n\tid\n\t__typename\n}\n}"}'

Or even fancier
query {
nodes(ids: ["MDEwOlJlcG9zaXRvcnkxODk2MjE2MDc=", "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", "MDc6TGljZW5zZTA=", "MDM6QXBwMTUzNjg=", "MDQ6VXNlcjU4MzIzMQ==",  ]) {
	id
	__typename
	... on Repository {
	 nameWithOwner
	}
	... on Organization {
		name
	}
	... on User {
		name
	}
	... on License {
		name
	}
	... on App {
		name
	}
	... on Commit {
		repository {
			nameWithOwner
		}
	}
}
}

Additional information
No response

@jsoref
Thanks so much for opening an issue! I'll triage this for the team to review :eyes:

 ::=
|  "-"
|  "+"
|  "-"  "+"
 ::=  "."  "."
 ::=
 ::=
 ::=
 ::=
 ::=
|  "."
 ::=
 ::=
|  "."
 ::=
|
 ::=
|
 ::=
|
|
|
 ::= "0"
|
|
 ::=
|
 ::=
|
 ::=
| "-"
 ::=
|
 ::= "0"
|
 ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
 ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J"
| "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T"
| "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d"
| "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n"
| "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x"
| "y" | "z"

Start pojav lancher
Create a world
100% loaded
Instantly crashes

We want to keep these examples readable so that a user can understand the query at a glance and then extrapolate to fit their use case. If you still think that these more complex examples should be added, can you say why you would find these cases helpful?

I don't think that the multi-node query feature previously existed
On average, the people most likely to want to use this feature are going to want to query for multiple nodes -- certainly all the instances I've seen on github.community involved people who wanted multiple nodes and had to think about how to hack through w/ graphql to make that work.

Having to twist graphql in knots in order to do something for which there's a better function is really just cruel.


Talkback still reads inline error after correction

If a form field is invalid and then edited to correct error, talkback reads out error message again as if field is still invalid.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.