How to prepare the A2D2 dataset for training?

A2D2 is an autonomous driving dataset recently provided by Audi. It is in a slightly different format from Cityscapes in the sense that there are no explicit train, val, and test splits within the dataset. It is rather present in a format of multiple timestamped folders with various images and their corresponding masks.
Is there a way to prepare the dataset so that the network can be trained on it using the train.py script? Since this question is more about the dataset than about the code (the code also needs to be modified though), any pointers as to how to prepare it, or how can I modify the scripts, etc. are much appreciated. Thanks!

Something like what was done in cityscapes, here https://github.com/NVIDIA/semantic-segmentation/blob/main/datasets/cityscapes.py#L133-L135, would have to be done. I would suggest to split the train/val with certain cities going to either train or val but not both, which is what is done for Cityscapes.

Thanks for the tip. I structured the A2D2 dataset in Cityscapes format and modified the relevant methods as suggested. Upon testing the Loader class for A2D2, I got the error ValueError: too many values to unpack (expected 2) from this statement.
Upon debugging, I found out that the reason is because the masks used for Cityscapes are grayscale whereas the only masks available for A2D2 are RGB images, therefore the reason for the error since there are 3 dimensions in A2D2 masks.
My question is, is there a reason to use the labelIds-masks and not the color (RGB) ones, as they are also available for Cityscapes. And if you can kindly point me in a direction to proceed with the RGB masks. How can I use the RGB masks  for the training procedure? Thanks!

I wrote a small script to convert the RGB masks to their grayscale versions successfully. I will continue with the rest of the pipeline and update this issue as I proceed.

@ajtao After converting all the masks into grayscale, I successfully managed to build the centroid file for the dataset but right after it, I got the error:
Traceback (most recent call last):
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/rbohare/semantic-segmentation/datasets/a2d2.py", line 213, in <module>
    a2d2 = Loader(mode = "train")
  File "/home/rbohare/semantic-segmentation/datasets/a2d2.py", line 105, in __init__
    self.build_epoch()
  File "/home/rbohare/semantic-segmentation/datasets/base_loader.py", line 71, in build_epoch
    self.train)
  File "/home/rbohare/semantic-segmentation/datasets/uniform.py", line 315, in build_epoch
    msg = "cls {} len {}".format(class_id, len(centroids[class_id]))
KeyError: 19

It makes sense since A2D2 has 50 classes whereas for Cityscapes, the code is using 19. Any ideas how/where to modify the code to get it working?

The number of classes needs to be specified in dataset_class.num_classes, such as: https://github.com/NVIDIA/semantic-segmentation/blob/main/datasets/cityscapes.py#L106, and that value is then passed into the uniform() routine: https://github.com/NVIDIA/semantic-segmentation/blob/main/datasets/cityscapes.py#L138-L142

Thanks for the response. I specified the num_classes variable to be 50. The strange thing is that the first time centroid file is built, it runs normally but every time after that, it throws the same error: KeyError: 19. So every time I want to make a small change in the configuration file, I have to rebuild the centroid file from scratch. Any ideas why it might be so?

If you've set num_classes by defining it within the class file (like https://github.com/NVIDIA/semantic-segmentation/blob/main/datasets/cityscapes.py#L106) then you should be fine.
If you've set num_classes dynamically by overriding it after instantiating the object, then that's wrong because we capture the num_classes value very early here: https://github.com/NVIDIA/semantic-segmentation/blob/main/datasets/init.py#L60-L61.

Thanks for the comment. :)
I did set num_classes to be 50 within the A2D2 class file, and nowhere else. However, I still get the same KeyError: 19 upon starting the training after the centroid file is loaded:
Copying codebase to logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02 ...
Running job train_a2d2_ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02
cd logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02/code; PYTHONPATH=logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02/code exec python -m torch.distributed.launch --nproc_per_node=1 ~/semantic-segmentation/train.py --dataset a2d2 --cv 0 --syncbn --apex --fp16 --crop_size 1208,1920 --bs_trn 1 --poly_exp 2 --lr 5e-3 --max_epoch 175 --supervised_mscale_loss_wt 0.05 --snapshot ASSETS_PATH/seg_weights/ocrnet.HRNet_industrious-chicken.pth --arch ocrnet.HRNet_Mscale --result_dir logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02
None
Global Rank: 0 Local Rank: 0
Torch version: 1.6, 1.6.0
dataset = a2d2
ignore_label = 255
num_classes = 50
cv split val 0 ['val/20181108_084007', 'val/20181108_103155', 'val/20181108_091945']
mode val found 6503 images
cn num_classes 50
cv split train 0 ['train/20180807_145028', 'train/20180810_142822', 'train/20180925_101535', 'train/20180925_112730', 'train/20180925_124435', 'train/20180925_135056', 'train/20181008_095521', 'train/20181016_082154', 'train/20181016_095036', 'train/20181016_125231', 'train/20181107_132300', 'train/20181107_132730', 'train/20181107_133258', 'train/20181107_133445']
mode train found 24710 images
cn num_classes 50
Loading centroid file /home/rbohare/assets_for_nvidiasemseg/uniform_centroids/a2d2_cv0_tile1024.json
Found 49 centroids
Class Uniform Percentage: 0.5
Class Uniform items per Epoch: 24710
cls 0 len 21492
cls 1 len 17554
cls 2 len 13564
cls 3 len 299
cls 4 len 8014
cls 5 len 2247
cls 6 len 1131
cls 7 len 4
cls 8 len 10537
cls 9 len 2980
cls 10 len 767
cls 11 len 11688
cls 12 len 1974
cls 13 len 257
cls 14 len 2384
cls 15 len 350
cls 16 len 192
cls 17 len 8760
cls 18 len 11
/bin/sh: 1: cd: can't cd to logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02/code
Traceback (most recent call last):
  File "/home/rbohare/semantic-segmentation/train.py", line 601, in <module>
    main()
  File "/home/rbohare/semantic-segmentation/train.py", line 340, in main
    datasets.setup_loaders(args)
  File "/home/rbohare/semantic-segmentation/datasets/__init__.py", line 182, in setup_loaders
    label_transform=target_train_transform)
  File "/home/rbohare/semantic-segmentation/datasets/a2d2.py", line 105, in __init__
    self.build_epoch()
  File "/home/rbohare/semantic-segmentation/datasets/base_loader.py", line 71, in build_epoch
    self.train)
  File "/home/rbohare/semantic-segmentation/datasets/uniform.py", line 317, in build_epoch
    msg = "cls {} len {}".format(class_id, len(centroids[class_id]))
KeyError: 19
Traceback (most recent call last):
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/site-packages/torch/distributed/launch.py", line 261, in <module>
    main()
  File "/home/rbohare/anaconda3/envs/nvidia-sdc/lib/python3.7/site-packages/torch/distributed/launch.py", line 257, in main
    cmd=cmd)
subprocess.CalledProcessError: Command '['/home/rbohare/anaconda3/envs/nvidia-sdc/bin/python', '-u', '/home/rbohare/semantic-segmentation/train.py', '--local_rank=0', '--dataset', 'a2d2', '--cv', '0', '--syncbn', '--apex', '--fp16', '--crop_size', '1208,1920', '--bs_trn', '1', '--poly_exp', '2', '--lr', '5e-3', '--max_epoch', '175', '--supervised_mscale_loss_wt', '0.05', '--snapshot', 'ASSETS_PATH/seg_weights/ocrnet.HRNet_industrious-chicken.pth', '--arch', 'ocrnet.HRNet_Mscale', '--result_dir', 'logs/train_a2d2/ocrnet.HRNet_Mscale_futuristic-otter_2020.11.27_14.02']' returned non-zero exit status 1.

But there is no such error when I delete the existing centroid file and run the training again. Then the file is created anew and the code stops at a CUDA error (but that's due to insufficient memory on my computer). I am wondering why the code stops reading the file at class 19.

I'm out of ideas. I suggest running a debugger to figure this out.

Thanks for the suggestion. Yes, I'll try it out. :)

Any updates ?

@nikhilbyte Not regarding the centroid file but I wrote the data loader for A2D2 and waiting for the server to try out the training.

Hi @bohare , can you please let me know how did you convert RGB masks to gray scale masks.
Thank you.

KeyError:19  happens as the length of cls 19 is 0, you can remove it from the dataset. This allows you to build the centroid file and begin training.

Hey @bohare did you convert from rgb to gray scale by matching the colors? or did you follow any other method to achieve this?

@SupriyaB1 @vikasnr I converted the RGB masks to grayscale by creating a mapping between the colors and the classes, parsing through every pixel in all images in the dataset, mapping the RGB tuple value of that pixel to a class label, and saving the new labeled images as png files to be later used in training. It does not matter what class label (ID) you assign to every class as long as it is unique. This answer on SO should get you started.

Thank you @bohare
Finding materials on a2d2 has been a bit challenging. Cityscapes and BDD have github repos that are useful. Fair amount of benchmarking have been done on these. For instance I didn't find classes labels anywhere for a2d2 but only buried inside 160GB odd file.

@bohare
I seem to have hit roadblock, I downloaded "Dataset - Semantic Segmentation". There is a "class_list.json" file which has hex to class mapping like so
{
    "#ff0000": "Car 1",
    "#c80000": "Car 2",
    "#960000": "Car 3",
    "#800000": "Car 4",
     ...

I converted them to rgb
{
    (255, 0, 0): 'Car 1',
    (200, 0, 0): 'Car 2',
    (150, 0, 0): 'Car 3',
    (128, 0, 0): 'Car
    ...

However there seems to be inconsistency in the labels.

Am I looking at a different class label list? Do let me know if I'm looking a wrong dataset.
Dataset I downloaded
class_list.txt

It was silly of me, cv2 reads in BGR but class mapping is in RGB. Apologies for spamming the thread.

I wrote a small script to convert the RGB masks to their grayscale versions successfully. I will continue with the rest of the pipeline and update this issue as I proceed.

Hi Bohare,
I have been stuck at this point while applying segmentation on my custom images. I tried to use grayscale converter of opencv but it is giving error while updating the validation loss. Can you please share your code on how to convert our RGB images to grayscale images keeping in line with the Cityscapes classes?
Thanking you,
Omar


Displaying MSBuild output

A few times I've run into issues where the MSBuild task doesn't work and // OveralResult = Failure is printed. I'll post a separate issue for the exact problem, but I wondered if having a cut-down version of the MSBuild output is valuable? This would help diagnose why the build is failing, otherwise it's not obvious.
With a bit of playing around I've been able to get something like this working, note that all the text between // Build: and // OveralResult = Failure is coming from MSBuild.

What do you think? I can get it to display build errors and/or warnings if needed.
For comparison, this is a successful compile with only the warning(s) shown (but these could be hidden if desired, so that only errors are printed):

I think, we should print only build errors by default. Also we can print warnings in a special detail mode (see https://github.com/PerfDotNet/BenchmarkDotNet/issues/23#issuecomment-128143734).


DNS store discovery with AWS ELB

Thanos querier support store discovery with DNS, which make it easier to dynamically add/remove stores without deploy.
The only issue is when the store running behind an ELB (the simple way to expose a service between clusters). ELB dns resolves to 3 IP addresses, so when using DNS discovery, each store appears 3 times - instead of once, which is very confusing.
It’s not purely a bug - but maybe if we can do only level of DNS resolving - so the discovery will stop at the ELB dns address, and not break it down to IPs. This is the behavior when adding the addresses manually...

Thanos querier support store discovery with DNS, which make it easier to dynamically add/remove stores without deploy.
The only issue is when the store running behind an ELB (the simple way to expose a service between clusters). ELB dns resolves to 3 IP addresses, so when using DNS discovery, each store appears 3 times - instead of once, which is very confusing.
It’s not purely a bug - but maybe if we can do only level of DNS resolving - so the discovery will stop at the ELB dns address, and not break it down to IPs. This is the behavior when adding the addresses manually...

I haven't used that before and maybe someone else hasn't as well so could you please explain this with example A records and so on? That would be clearer for other people who will read this in the future.

Sure. ELB create A record pointing to 3 IPs behind it. So if I’m using DNS discovery I have:
SRV record -> A record (ELB per cluster) -> 3 IP addresses.
So when using discovery, I actually see 3 stores instead of one. When suppling the store DNS manually (no discovery - just the A record), I get one store per cluster - although it is resolved to multiple IPs.

What exactly --store flag entry do you provide to querier? (:

Let's say the SRV record is thanos.mycorporate.com, I used the following flag:
--store=dnssrv+thanos.mycorportate.com

you should be able to use the ELB entry straight up without dnssrv and the classic lb will forward the query request to the underlying store.
--store=elbdns:10901

that's what we're doing right now, but this means that each time we're adding a new cluster we also need to add a new store and re-deploy thanos. This is why we wanted to use DNS discovery in the first place...


Lazy loading added and conflicts resolved

🛠 Fixes Issue
Closes #245
👨💻 Changes made

Implemented Lazy loading for all the pages and images in this project so that whenever the website loads initially then only the required resources are visible to the user.

@Avinash905 Please fix the conflict.
*(do pull before push)

@Avinash905 Please fix the conflict.
*(do pull before push)

Done

@Avinash905 Please fix the conflict.
*(do pull before push)

Done

@Avinash905 Fix it!

@Avinash905 Fix it?

Done

@Avinash905  Please pull the recent changes and fix the merge conflict.

@Avinash905 Please pull the recent changes and fix the merge conflict.

Resolved

You need to check the newer version because there have been many changes made. However, your code does not appear to be up to date. Please close this issue and create a new one.


Add children to CookieConsentProviderProps

fixes #6

Thanks for contributing! Sorry for the extra long delay, I had no time to work on open-source in the past couple of months :(


Fix typo in the docs (basics)

Summary
Fix a typo in the docs (basics).
How did you test this change?
Did not test.

Thanks so much for finding and fixing! But just one small thing I suggest. These files are generated from a single piece of markdown, so you should change it there instead:
./site/guides/01_the_basics/4_reading_from_stores.md
The HTML is generated by the build scripts. You can run them too if you want, or I can. Thanks again!

That makes sense! I looked for a markdown file but didn't immediately find it. I fixed it in the markdown file now.
I tried to build it with npm install && gulp compileDocs but this throws the following error (any idea?)
(py38) arnaudhillen@MacBook-Pro-van-Arnaud site % gulp compileDocs    [11:17:51] Working directory changed to ~/contribute/tinybase [11:17:51] Using gulpfile ~/contribute/tinybase/gulpfile.mjs [11:17:51] Starting 'compileDocs'... [11:17:52] 'compileDocs' errored after 804 ms [11:17:52] Error: ENOENT: no such file or directory, scandir './lib'     at readdirSync (node:fs:1513:3)     at forEachDirAndFile (file:///Users/arnaudhillen/contribute/tinybase/node_modules/tinydocs/lib/tinydocs.js:26:63)     at file:///Users/arnaudhillen/contribute/tinybase/tmp/build.js:125:3     at file:///Users/arnaudhillen/contribute/tinybase/tmp/build.js:144:3     at ModuleJob.run (node:internal/modules/esm/module_job:217:25)     at async ModuleLoader.import (node:internal/modules/esm/loader:316:24)     at async compileDocsAndAssets (file:///Users/arnaudhillen/contribute/tinybase/build/common.mjs:523:19)     at async compileDocs (file:///Users/arnaudhillen/contribute/tinybase/gulpfile.mjs:144:40)

So awesome. Thank you!


Refacto: add a Git handler base class to inherit from and avoid duplicate code

add a class GitHandlerBase and make LocalGitHandler and RemoteGitHandler inherit from to mutualize code
fix profiles sync which was stucked during fetch

Codecov Report

Merging #333 (8edc289) into main (621a81f) will decrease coverage by 2.71%.
The diff coverage is 72.11%.

@@            Coverage Diff             @@
##             main     #333      +/-   ##
==========================================
- Coverage   64.84%   62.14%   -2.71%
==========================================
  Files          38       39       +1
  Lines        2119     2084      -35
  Branches      453      442      -11
==========================================
- Hits         1374     1295      -79
- Misses        621      663      +42
- Partials      124      126       +2

Files
Coverage Δ

...loyment_toolbelt/jobs/job_profiles_synchronizer.py
41.73% <ø> (ø)

...deployment_toolbelt/profiles/remote_git_handler.py
100.00% <100.00%> (+21.12%)
:arrow_up:

..._deployment_toolbelt/profiles/local_git_handler.py
42.10% <30.76%> (+19.02%)
:arrow_up:

...s_deployment_toolbelt/profiles/git_handler_base.py
75.30% <75.30%> (ø)

... and 5 files with indirect coverage changes


requirements.txt has to specify versions

The application requirements.txt does not have version pinning.  Please update this .  I'm currently unable to get your application to run with a paid API key, and perhaps because of a lack of version pinning.

pydantic needs to be pydantic<2
This solved some issues for me


Ctrl+P search crashing on 1.29.0

Issue Type: Bug
Same as #60672
The issue has been fixed since the original issue linked above was patched, however without adding anything new to my workspaces the issue returned immediately after updating to 1.29.0.
"search.useLegacySearch": false
"searchRipgrep.enable": false
"search.useRipgrep": true
EDITING:
To be totally clear here (since the original issues description talks about a lot of stuff), what I am specifically referencing is the behavior where you press Ctrl+P on a large, multi-folder workspace, start typing, and then sometimes instead of seeing search results, the whole VSCode window freezes up as in the previous tickets screenshot until the hung-reopen prompt pops up and VSCode must be reopened.
VS Code version: Code 1.29.0 (5f24c93878bd4bc645a4a17c620e2487b11005f9, 2018-11-12T07:47:15.448Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz (8 x 2712)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
15.79GB (5.89GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

githistory
don
0.4.3

gitlens
eam
8.5.6

PowerShell
ms-
1.9.0

I can repro this in 1.29. But somehow I can repro it in 1.28.2? But it seems to be a slightly different set of steps than the original 1.28.2 issue.

I pushed a change which I think will help, would appreciate if you can test this in tomorrow's Insiders.
Probably won't push this to 1.29.1 unless there is another flood of people reporting the same.

@roblourens is this still in the insiders build? I can test it. I'm seeing the issue fairly consistently, although it does not appear entirely the same as before. Sometimes I get a 5+ second hang that unhangs, and then other times the hang continues to the reopen prompt.

Yeah it's just in Insiders. Are you saying you're still seeing it in insiders? Or 1.29.1?

1.29.1. Trying insiders now

Haven't really been able to repro it in either 1.29.1 or Insiders since last comment. Not sure why, I haven't changed anything on my end. I will say, there are a lot more instances of delayed Ctrl+P searches than before though (where the blue loading bar idles across the search box but no search results show up for ~5-8 seconds). I almost never saw this pre-1.29. Sorry I don't have anything more concrete for you

Do you see the Antimalware service acting up when you search? Got https://github.com/Microsoft/vscode/issues/63070 too

@roblourens yeah, finally had task manager open when I got one of the initial slowdowns (not hangs), and indeed saw antimalware service executable using 80% CPU. Haven't correlated it to the crashes though as they don't seem to be happening anymore despite me changing nothing...

@roblourens last update, when the crash happens (not a slowdown), antimalware service is NOT acting up. The crashes are super rare, this is the first in over a week.

By "crash" you mean "hang", right? I don't have any other ideas unfortunately 🤷♂

Adding verified based on user commenting he is no longer seeing it


Rescale plots

Include option for saving GMM plots generated during rescale
Store plots as collection with discover datasets, conditional output based on rescale param

Thanks @alliecreason


Error Playing HLS streams on some devices

Current behavior
An attempt to play a 1920 resolution HLS stream on devices with lesser pixel fails. This is understandable but is it possible to fallback to the closest supportable resolution. I get this error:
D/MediaCodecInfo: NoSupport [sizeAndRate.support, 3840x1920x-1.0] [OMX.MTK.VIDEO.DECODER.AVC, video/avc] [TECNO-CX-Air, TECNO CX Air, TECNO, 24]

Reproduction steps
Load a 4K HLS stream on a non 4k device.
Expected behavior
Fallback to the nearest possible supported streams in the videoTracksgotten onLoad
Platform
Which player are you experiencing the problem on:

Android ExoPlayer

Video sample
This is the stream I used:
https://bitmovin-a.akamaihd.net/content/playhouse-vr/m3u8s/105560.m3u8

For anyone who stumbled upon this, I was able to get the device's maximum pixels and compare with the HLS videoTracks.
import {PixelRatio} from 'react-native'

import _filter from 'lodash/filter'

const DEVICE_HEIGHT = Dimensions.get('window').height
const DEVICE_WIDTH = Dimensions.get('window').width
const PIXEL_RATIO_HEIGHT = PixelRatio.getPixelSizeForLayoutSize(DEVICE_HEIGHT)
const PIXEL_RATIO_WIDTH = PixelRatio.getPixelSizeForLayoutSize(DEVICE_WIDTH)

   /**
     * Get supported video tracks from the list of tracks defined
     *
     * @param array videoTracks
     */
    getSupportedStreams (videoTracks) {

        // Loop through the available tracks and filter only item this device supports
        let tracks = _filter(videoTracks, (track) => {
            // Check if device pixel width and height is more than the track's
            return PIXEL_RATIO_WIDTH >= track.width && PIXEL_RATIO_HEIGHT >= track.height
        })

        return tracks
    }

Now I need to still support Adaptive Bitrate streaming and scraping unsupported videos but looks like this library doesn't allow that yet. ABR would pick fro all the videoTracks. No way to pass list of tracks for the ABR.

For anyone who stumbled upon this, I was able to get the device's maximum pixels and compare with the HLS videoTracks.
import React from 'react'
import {PixelRatio} from 'react-native'

import _filter from 'lodash/filter'

const DEVICE_HEIGHT = Dimensions.get('window').height
const DEVICE_WIDTH = Dimensions.get('window').width
const PIXEL_RATIO_HEIGHT = PixelRatio.getPixelSizeForLayoutSize(DEVICE_HEIGHT)
const PIXEL_RATIO_WIDTH = PixelRatio.getPixelSizeForLayoutSize(DEVICE_WIDTH)

class Player extends React.Component {
   onVideoLoad(e) {
        const supportedVideoTracks = this.getSupportedStreams(e.videoTracks)
        this.startStream(e, supportedVideoTracks)
    }

   /**
     * Get supported video tracks from the list of tracks defined
     *
     * @param array videoTracks
     */
    getSupportedStreams (videoTracks) {

        // Loop through the available tracks and filter only item this device supports
        let tracks = _filter(videoTracks, (track) => {
            // Check if device pixel width and height is more than the track's
            return PIXEL_RATIO_WIDTH >= track.width && PIXEL_RATIO_HEIGHT >= track.height
        })

        return tracks
    }
}

Now I need to still support Adaptive Bitrate streaming and scraping unsupported videos but looks like this library doesn't allow that yet. ABR would pick fro all the videoTracks. No way to pass list of tracks for the ABR.

Что такое this.startStream ?

Что такое this.startStream ?

what is this.startStream ?

@vladislav-puzyrev It's a custom function I wrote


Upgrade FullCalendar from v2.2.2 to v2.2.6

Best to wait for https://github.com/CUL-DigitalServices/grasshopper-ui/pull/99 to be merged to verify that events still render correctly.


Support more smarter cd command such as zoxide, z

This project is very useful and surpised. 👍
But I changed my smarter cd command from autojump to zoxide yesterday, and then found this project.
If this project can support more smarter cd command, such as zoxide or z, it will be more surprised.
zoxide is a smarter cd command, inspired by z and autojump.
https://github.com/ajeetdsouza/zoxide

I'll look at zoxide or z, or you can try pr

This project is very useful and surpised. 👍
But I changed my smarter cd command from autojump to zoxide yesterday, and then found this project. If this project can support more smarter cd command, such as zoxide or z, it will be more surprised.
zoxide is a smarter cd command, inspired by z and autojump. https://github.com/ajeetdsouza/zoxide

v0.0.4 已添加对z的支持,详见readme.md

已支持
https://github.com/webxmsj/vscode-autojump/blob/main/CHANGELOG.md

@webxmsj Good Job 👍🏻


Unclear statements about iterators

It is probably not a code issue, but I don't understand if container(s) (say, skip list) have iterators which
are used to update value(s) from different threads.

Iterators in concurrent datastructs (DS) are tricky. Today all DS in libcds except FeldmanHashSet/Map have iterator only for debug purposes. In any thread you can safely remove an element the iterator i points to but if another thread removes the next element then ++i can crash. So, the iterators are safe if no removal operation taken place.
Next point, all safe reclamation schema (Hazard Pointer, RCU) from libcds protects DS but not fields of element. Libcds guarantees that while your iterator points to an element it cannot be deleted. Not more. If you want to update any fields of element you should provide your own protecting stuff at the element level - for example, a mutex or a spinlock incorporated into element, or use atomic operations for updating if possible,  or anything else.


[SPARK-5269] [CORE] Use a SerializerInstance pool in BlockManager.

Instead of creating a serializer instance each time the BlockManager serialization methods are used, keep a pool of available serializers. It should improve performance.

Can one of the admins verify this patch?

Jenkins, test this please

ok to test

@maciej-kisiel have you done any benchmarking on this?

Merged build triggered.

Merged build started.

Test build #41892 has started for   PR 8292 at commit a3bddec.

Test build #41892 has finished for   PR 8292 at commit a3bddec.

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/41892/
Test PASSed.

@andrewor14 I'm working on it

Merged build triggered.

Merged build started.

Test build #42138 has started for   PR 8292 at commit 492c06a.

Test build #42138 has finished for   PR 8292 at commit 492c06a.

This patch fails Spark 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/42138/
Test FAILed.

Weird, I just rebased it..

Yeah master tests are flaky. retest this please

Merged build triggered.

Merged build started.

Test build #42276 has started for   PR 8292 at commit 492c06a.

Test build #42276 has finished for   PR 8292 at commit 492c06a.

This patch fails Spark 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/42276/
Test FAILed.

@maciej-kisiel could you rebase this one?

@maciej-kisiel any updates on this one? Do you still plan to work on this?

It will be difficult for me to benchmark this, because in the meantime I lost access to a big data environment.

I can see how this patch can improve performance; currently we may end up creating a SerializerInstance per partition, which could be expensive if there are thousands of partitions. However, I don't know how much performance this could save in practice. If it doesn't end up buying us much then the extra complexity here is not worth it.

Agree, do you mind closing this PR?


Removing double namespacing for \App\App

I changed a couple of places where the namespacing was \App\App in front of resources. This was changed to just \App\

Thanks!


[Test] fix gemm driver dataType initialization

The fix properly initializes gemm dataType and also makes driver more dataType friendly, but does not enable fp16\bfp16 since verification fails. It seems enabling half/bfloat16 types is not so trivial as just create a Driver with proper type.
Closes https://github.com/ROCmSoftwarePlatform/MIOpen/issues/2505
CC: @atamazov @AngryLoki @junliume @JehandadKhan

@CAHEK7 special thinks for assigning proper attributes for this PR! 🤝

It is already a double reference and I did few changes to make it more precise. And it is exactly https://github.com/AngryLoki/MIOpen/commit/717861b3863ff5ea7a87bcec10c88beca6ae9e74 just without fp16 support since verification failed locally.

@junliume @JehandadKhan

But what about AngryLoki@717861b, does it work fine together with this PR?

Agreed with cast to double. Ignore my fork, it is not attached anywhere. Patch for Gentoo https://github.com/gentoo/gentoo/blob/718b88b72a3c75fcdd959bf3dadcaa20a1904b6c/sci-libs/miopen/files/miopen-5.7.1-fix-miopendriver-gemm.patch still enables fp16, as LLVM/Clang is patched there.

@AngryLoki @JehandadKhan @junleemoreh This resolves the "MIOpenDriver gemm is broken" part of #2505. I think this is ready to merge.


Move the build packages to devDependencies

close #
What happened 👀
Provide a description of the changes this pull request brings to the codebase. Additionally, when the pull request is still being worked on, a checklist of the planned changes is welcome to track progress.
Insight 📝
Describe in detail why this solution is the most appropriate, which solution you tried but did not go with, and how to test the changes. References to relevant documentation are welcome as well.
Proof Of Work 📹
Show us the implementation: screenshots, GIFs, etc.

TODO:: Check why the npm script can't load the module, but the npm run xxx can load

I was wrong about this as we yarn does not allow to run the devDependency package in the NODE_ENV Production


Update compile's QR model path that caused case sensitive issue on UN…

Which issue this PR fixes
https://github.com/cmpayments/payments-sdk-net/issues/33

Thanks for this PR


setup-radiopadre-virtualenv should copy, not symlink

Things like this: https://github.com/ratt-ru/radiopadre/blob/master/bin/setup-radiopadre-virtualenv#L109
...and other instances of os.symlink() in the same script only work for editable installs, because they assume the source radiopadre dir stays where it is. For normal pip install (and pip install directly from git repos), this is not the case.
Change symlink to a copy (into the venv directory).

Actually, symlink when installed as editable, and copy when not...


Comments on "Bad Behavior: Handling Database Down"

Hi Brett,
I'm the author of Vibur DBCP and I'm opening this issue with regards to your post "Bad Behavior: Handling Database Down". I have 3 main comments on it:

There is no defined standard for DataSource.getConnection() timeouts, each pool implements them in its own way.
How to configure properly the connection validation frequency and timeouts for Vibur DBCP.
3) The amount of JDBC timeouts which may occur during the execution of the internal to the pool JDBC calls is only a very small part of the total amount of JDBC timeouts which may occur during an application lifecycle.

I will go in details on each of these points below:

There is no defined standard for DataSource.getConnection() timeouts, each pool implements them in its own way.

Saying that in the context of someJDBCConnectionPool.getConnection(timeout) "a connection timeout is a contract between you and the pool; your application should get a connection within the specified time, or get an exception" - is incorrect. The original JDBC API spec doesn't say anything about any timeouts when it comes to creating or getting JDBC connections. If there is any contract for that, the concrete terms of this contract will be defined entirely on a pool-by-pool basis. In the Vibur DBCP case, the documentation for connectionTimeoutInMs can be seen here.

How to configure properly the connection validation frequency and timeouts for Vibur DBCP.

I believe that the focus of your testing has been to verify whether the chosen connection pools properly apply Java socket read timeouts when executing various specific to the pool implementation JDBC calls. It appears that HikariCP uses the Connection.setNetworkTimeout() method to control these timeouts. Vibur DBCP doesn't currently use this method, however this method is not the only way how to control these socket timeouts.
There are 2 different ways how to configure the Vibur DBCP connection validation frequency and socket read timeouts:
2.1) Use Connection.isValid() for connection validation and timeouts control.
// Add the below line to the Vibur config. This will cause each connection to be always
// validated disregards of how recently it has been used:
vibur.setConnectionIdleLimitInSeconds(0);
// Comment out the line below. This will cause Vibur DBCP to issue a call to Connection.isValid()
// for connection validation purposes, which is the Vibur default behaviour:
// vibur.setTestConnectionQuery("SELECT 1");
The implementation of Connection.isValid(timeout) in the MySQL Connector/J driver (and likely in all other recent and solid JDBC drivers) sets the socket read timeout to the given timeout value. In the Vibur DBCP case, this timeout value is not currently configurable, and is hardcoded to 5 seconds (this may change in future).
Regarding the connection validation frequency, Vibur has its connectionIdleLimitInSeconds property set by default to 15 seconds. This is an intentional choice, as I felt that validating the connection before every single use will have much more penalizing effect on the using it application, rather than contributing any good. If I haven't misunderstood the HikariCP source, it employs a very similar idea as it also doesn't validate all recently used connections, I'm speaking about the ALIVE_BYPASS_WINDOW property which has a default value of 1 second.
2.2) Use arbitrary SQL query for connection validation but add "?socketTimeout=5000" to the JdbcUrl connection string.
// Firstly, as before, add the below line:
vibur.setConnectionIdleLimitInSeconds(0);
// Add "?socketTimeout=5000" to the JdbcUrl connection string:
vibur.setJdbcUrl("jdbc:mysql://<IP_ADDRESS>/test?socketTimeout=5000");
As already explained in the CUBRID's article to which your original post links to, and for the reasons which I will outline below, the explicit configuration of the socket read timeout at the JDBC driver level is of utmost importance. Note that similar JdbcUrl change should cause all tested JDBC connection pools to properly timeout their validation queries, not only Vibur DBCP. However, the importance of this explicit socket timeout configuration is much broader, because:
3) The amount of JDBC timeouts which may occur during the execution of the internal to the pool JDBC calls is only a very small part of the total amount of JDBC timeouts which may occur during an application lifecycle.
A typical busy web application will usually execute many thousands of custom written SQL queries each hour, plus the mentioned above and specific to the pool implementation JDBC calls. These internal to the pool JDBC calls, will most likely take less than 1% of the total application time spent in JDBC calls, and the other 99% of the time will be spent in execution of the application's custom SQL queries. If the application hasn't properly configured the socket read timeout in the JdbcUrl connection string and if a network connection glitch occurs, then the application is risking some of its threads to face very long timeouts, and these timeouts will happen not during the execution of the specific to the pool JDBC calls but during the execution of the application's own SQL queries.
Simeon.

Hi Simeon,
Thanks for the feedback, I'll update the Vibur configuration as per your recommendations in (2) and (2.1) above, and re-run the tests.
I'll offer a few of my thoughts on your feedback here.
I do understand that JDBC itself does not define a connectionTimeout semantic, and that it is left to pool implementations to define what that means.  Which might make the statement "a connection timeout is a contract between you and the pool; your application should get a connection within the specified time, or get an exception" dogmatic to some.  However, in practical terms, and from a pool consumer's perspective I still believe it to be true.  If connectionTimeout is only interpreted to mean "when all systems are functionally normally", it is of little value to a developer.  If a user makes a web request, and I want to either fulfil their request within X ms or display an error page, it is of little value if obtaining a connection against a downed database might actually hang the request thread for 30 seconds (or 2 minutes).  Under that interpretation I can offer no service level agreements (SLAs) to consumers of my service.
socketTimeout is a poor substitute for connectionTimeout because it is applied across the board to all activity on the connection.  I might want to provide an initial response to a request within, for example, 500ms, but subsequent data infill requests may take several seconds or tens of seconds to complete.  We actually had a bug related to this where we set the networkTimeout to a low value (=connectionTimeout) but the user's subsequent queries running several seconds were terminated prematurely.  It is important that they be kept separate; a need which was recognized by JDBC in the separation of loginTimeout, queryTimeout, isValid(timeout), and recently networkTimeout and abort(timeout).

I will close this issue after the tests have been re-run and further discussion concluded.
BTW, I am generally impressed with the quality and conciseness of the Vibur codebase, and if these timeout issues can be remediated I feel that Vibur can be a viable contender/alternative to HikariCP.

Brett, I'll try to structure my response on per comment/per paragraph basis in order to make it more clear what I'm responding at.
@Comment-70508282
@Paragraph1: Just to add that you may also disable the retries on connection failure if you want to. For this, just add the below line:
vibur.acquireRetryAttempts(0);
@Paragraph3: I think that these are 2 different approaches for dealing with possible network outages: one is to adhere to a strict SLA requirement for getConnection() return time or timeout, which is what HikariCP is doing, and the other approach is to allow for N re-connect attempts, which is what Vibur DBCP doing. I have seen in practice how the retries approach has on occasions helped to resolve/bypass a temporary network glitch, and that's why I have chosen it, but besides of this, both of these approaches are valid.
@Paragraph4: It makes sense to me to keep these timeouts separate, there are some scenarios which may benefit from similar separation. I was touching on this point at the end of my original post.
@Comment-70508895
I'll definitely consider employing the setNetworkTimeout() method in the next version of Vibur DBCP as a way to control the socket read timeouts of the internal to the pool JDBC calls, or I'll at least explicitly and clearly document what is the expected way to configure these timeouts externally.
I'm looking forward for an update on how the testing went.

Brett, this issue is now more than a year old and I think that you should consider closing it. I opened it for communication / discussion purposes, however the github issues are maybe better suited for bugs reporting purposes rather than for what I used it for, so I guess, it will be better for this issue to get closed.

@simeonmalchev I do have an update.  About two weeks ago I did setup two systems and again tested the pools.  As far as I could tell the updated version of Vibur behaved correctly.
I didn't have time to capture the outputs from the runs in order to update the wiki, but since the systems are setup now, I'll try to do it this week.  Hopefully that can put this issue to rest.
Thanks for the continual poking, without it running the tests and updating the wiki would simply fall to the bottom of the queue.

hi @brettwooldridge
please update the wiki to reflect the latest status.
thanks

@simeonmalchev does Vibur have a benchmarking suite / project? I would love to see a comparison between Vibur and HikariCP from "the other side of the fence".

@simeonmalchev @missedone BTW, I did update the textual content of the DB Down wiki page about a week and a half ago, but I haven't had time to format the logs for inclusion on the page.

@johnou Vibur doesn't currently have a JMH benchmark test, if this was your question, although writing such test is on my todo list for a while.. Vibur has one performance test which I'm running when I'm profiling it before a new release, but this test is not JMH based.

@brettwooldridge thanks for coming back to this and updating the page.

After the latest updates I think that this issue can be now closed.


Improve readme

The readme should contain at least the project description, link to documentation, and instructions for developers/contributors.
ToDo:

[x] ci badges
[x] project description
[x] link to documentation
[ ] instructions for developers/contributors

See #31, what is missing is the instructions for developers/contributors. Do we have a standard form?

@raphaelahrens no but something similar to this is a good start: https://github.com/linksmart/historical-datastore/blob/master/README.md


Update and rename cosimameyer.rbind.io.json to cosimameyer.com.json

I changed the provider (and domain) of my website and would like to change the JSON file accordingly. If you need more info, please let me know 😊

@drmowinckels please let me know if you need more info/changes from my side. Thanks so much for maintaining the repository! 😊

Thank you for updating your entry! 😊 🥳 🎉


TLSConfig.mode is "optional", but has no default

What happened:
Looking at https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2Fv1beta1.GatewayTLSConfig, the mode is optional, but it is not explained what it means if this is missing.
The certificateRefs field says:

This field is required to have at least one element when the mode is set to “Terminate” (default) and is optional otherwise.

Which suggests that "terminate" is actually the default.
What you expected to happen:
It is clearly stated what happens if the field isn't present.
Anything else we need to know?:
Neither Envoy Gateway nor cert-manager handle "terminate" as the default.

We talked about this in our sync today, we need to do a little more thinking about what we wanna do next with this one, I'll triage it forward:
/assign @shaneutt

Discussed this with the other maintainers, we definitely need some updates here.
/triage accepted
/milestone v1.0.0
/unassign
We need to start by documenting that the unset behavior is dependent on protocol.
/kind documentation
/help

Talked about this one in the sync, looks like Terminate IS the default? https://github.com/kubernetes-sigs/gateway-api/blob/bf76bd0499cffa94966a218678bef86aac948943/apis/v1beta1/gateway_types.go#L310C35-L310C35
/assign @robscott

Confirmed that Terminate is the default, closing this one out.
API:
https://github.com/kubernetes-sigs/gateway-api/blob/d4ff2d4f07ce47222a4f97296618dbb09b2538dd/apis/v1beta1/gateway_types.go#L352-L353
CRD:
https://github.com/kubernetes-sigs/gateway-api/blob/d4ff2d4f07ce47222a4f97296618dbb09b2538dd/config/crd/standard/gateway.networking.k8s.io_gateways.yaml#L445-L446
/close

Should I make a PR to add this to the docs?
This issue was about the docs not stating it. Other optional enum fields explain what missing means.

@tommie yep, that makes sense, sorry for the confusion here!


Changing Unselected Tabs Icon Color

When a tab is unselected the icon is gray is there any way to change it?

@poorya-abbasi you can use a selector drawable to set the color of the icon depending on the state


All the lints

Is this literally all the lints, or is it a subset you're pulling in from a canonical example?

The list of lints was sourced from
https://dart-lang.github.io/linter/lints/options/options.html

Oh, wow. So you're not kidding when you say it's all the lints. 😄
Do we really need all of them? Is there a default subset that people generally agree on?

A lot of the lints are pretty prescriptive, and can conflict with each other. The package:pedantic set is the (very small) mutually agreed on best practices. I think we'd only want a few targeted lints on top of that set.


[bug]: WEBPACK_IMPORTED_MODULE_9__.buttonVariants is not a function

Describe the bug
So I'm trying to use buttonVariants to customize the Next.js <Link> component as a button but I got this error:
Error: (0 , _components_ui_Button__WEBPACK_IMPORTED_MODULE_9__.buttonVariants) is not a function

This is how it looks:
Button.tsx:
const buttonVariants = cva(
  'inline-flex items-center justify-center gap-2 whitespace-nowrap px-4 py-3 btn-lg-regular transition disabled:pointer-events-none disabled:cursor-not-allowed',
  {
    variants: {
      variant: {
        primary:
          'bg-purple-600 text-white hover:bg-purple-500 rounded-sm focus:bg-purple-400 focus:rind-white focus:ring-2 focus:ring-offset-1 disabled:text-grey-400 disabled:bg-grey-100',
        secondary:
          'bg-transparent text-purple-900 border rounded-sm border-purple-900 hover:text-purple-500 hover:border-purple-500 focus:shadow-[0px_0px_2px_2px_#8F7BA5] focus:border-purple-400 focus:text-purple-400 disabled:border-grey-300 disabled:text-grey-300',
        text: 'bg-transparent border border-white border-b-purple-500 !px-1 text-purple-500 !rounded-none focus:rounded-sm focus:border-purple-500 disabled:text-grey-400 disabled:border-b-grey-300',
        'icon-primary':
          'border-white text-black fill-black rounded-sm hover:text-purple-500 hover:fill-purple-500 focus:shadow-[0px_0px_2px_2px_#8F7BA5] focus:text-purple-400 focus:fill-purple-400 disabled:text-grey-400 disabled:fill-grey-400',
        'icon-secondary':
          'bg-[rgba(12,_11,_11,_0.48)] text-white rounded-sm fill-white hover:bg-grey-500 hover:fill-grey-500 focus:shadow-[0px_0px_2px_2px_rgba(0,_0,_0,_0.25)] focus:bg-beige-600 focus:fill-beige-600 disabled:grey-300 disabled:fill-grey-300',
      },
      size: {
        lg: 'h-[48px] px-4 py-3 btn-lg-regular',
        md: 'h-[40px] py-[10px] px-4 btn-lg-regular',
        sm: 'h-[32px] py-[8px] px-4 btn-sm-regular',
        icon: 'h-[48px] w-[48px]',
      },
    },
    defaultVariants: {
      variant: 'primary',
      size: 'md',
    },
  }
);

page.tsx (server side):
import { buttonVariants } from '@/components/ui/Button';

...
 <Link
     href='#'
     className={cn(buttonVariants({ variant: 'text' }))}
>
    Order <OutwardIcon />
</Link>

This error occurs only on the server side. If I add a 'use client' directive for the component/page then it works. That's weird; honestly, I don't know why this error happened, I haven't faced this error before.
Affected component/components
Button
How to reproduce

Install the Button component
Customize  component with buttonVariants functions
Run the server-side component with it

Codesandbox/StackBlitz link
No response
Logs
⨯ src\app\page.tsx (73:46) @ HomePage
 ⨯ TypeError: (0 , _components_ui_Button__WEBPACK_IMPORTED_MODULE_9__.buttonVariants) is not a function
    at HomePage (./src/app/page.tsx:190:168)
    at stringify (<anonymous>)
digest: "708039026"
  71 |               <Link
  72 |                 href='#'
> 73 |                 className={cn(buttonVariants({ variant: 'text' }))}
     |                                              ^
  74 |               >
  75 |                 Order <OutwardIcon />
  76 |               </Link>
 GET /_next/static/webpack/c08a93c280cc41ca.webpack.hot-update.json 404 in 2352ms

System Info
Next.js version:
`"next": "14.2.3"`

Radix UI slot component just in case:
`"@radix-ui/react-slot": "^1.0.2"`

Google Chrome version:
`125.0.6422.142`

Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

Same issue with navigation-menu component as well

I think this only gets to happen in a server component
try to extract your Link component to a new client component then you can use it in a server component or just hard code the link classNames

Problem:
Using following code in a server component
<Link
  href="/urk"
  className={cn(buttonVariants({  ...data }))}
>
    Back to login
</Link>

Explanation: Link from next/link is not a client only component so it can be called any where (client / server component). But In server component when we try to pull buttonVariants from @/component/ui/button it return undefined as button.tsx is a client component.
Solution 1:
<Button className="mt-4" size="sm" asChild>
  <Link href={DEFAULT_LOGIN_REDIRECT}>Go back home</Link>
</Button>

Solution 2: Extract Link from next/link into a client component and use that
import Link, { LinkProps } from 'next/link'

const NextLink = (props:LinkProps) => {
  return <Link {...props} />
}

export default NextLink

Solution 3: Don't use buttonVarient and hardcode the classNames


API endpoint to deploy classifier

Currently, machine-classifying an image using CoralNet requires uploading that image to a source. The image can then be classified using that source's classifier, and the image is also used to further train the source's classifier.
With this API endpoint, you would specify a source's classifier to use, upload an image to be classified, and get a classification result back. The image to be classified doesn't get saved to any source. Benefits:

The set of images used for training can be different from the set of images one wants to classify.
Not every image one wants to classify has to be uploaded permanently to a CoralNet source, nor does it have to go through the whole training pipeline. This reduces CoralNet's storage costs and training-related compute costs, and speeds up the workflow.
Since uploads are done via API, the image upload process can be made more robust using a script with error handling, as opposed to a web-form upload which may have to be supervised manually.

The majority of issue #189 (API basics) would have to be done before this issue.

@StephenChan : is this issue complete?

Looks like it. This issue doesn't really get into specific requirements, and deploy is indeed working.


How can I pass a default value for the case of a non-existent or empty-string translation?

Example
In every non-English language, I have a translation for the warningMessage variable. In the example, I copied the German file. The text in English is: Attention! The original language of the page is English. You are currently browsing a page translated into German by the community. If you encounter any errors, please let us know!
Naturally, I don't want to display it in English, so in the English file, I declare an empty string (to avoid discrepancies between the two files).
de.json
{
  "warningMessage": "Achtung! Die Originalsprache der Seite ist Englisch. Sie durchsuchen gerade eine von der Gemeinschaft ins Deutsche übersetzte Seite. Wenn Sie Fehler bemerken, lassen Sie es uns bitte wissen!",
}

en.json
{
  "warningMessage": "",
}

Problem
However, when I invoke the trans('warningMessage') function in English, it returns warningMessage instead of an empty string. How can I provide the function with a default value for the case of an empty string or undeclared variable?
Solution?
I temporarily added a space to the text. However, in this case, the length of the text is not 0 but 1, which is illogical for an empty string. Is there another solution? I would like to instruct the trans function to output nothing in the case of a 0-length string value in this situation.
en.json
{
  "warningMessage": " ", // space
}

Request
I think it would be perfectly fine to leave the trans function as it is and create another function, perhaps named nullableTrans or any other name, whose purpose is to avoid outputting the key as a result when the key does not exist or its value is of zero length.
While displaying the key is very useful, there are a few cases across multiple projects where I want to avoid it without having to modify the trans function everywhere afterward.
de.json
{
  "warningMessage": "Achtung! ...",
}

trans("warningMessage") // result: "Achtung! ..."
nullableTrans("warningMessage") // result: "Achtung! ..."

en.json
{
  "warningMessage": "",
}

trans("warningMessage") // result: "warningMessage"
nullableTrans("warningMessage") // result: ""

cz.json
{
  "anotherKey": "...",
  // warningMessage not declared
}

trans("warningMessage") // result: "warningMessage"
nullableTrans("warningMessage") // result: ""

Hey @rozsazoltan will take a look on that shortly, thanks for the report.

Released the fix on v2.7.2.
Thanks for that.


Flash cards

Implement working flash card.
Tags and ratings.
Card skins?
Different types of cards - may be a question type and just a note type?

Flash cards will only be front and back with not options for answers, they'll go under the quizzes


Performance issues due to ToolbarLayout

Today I discovered performance issues regarding the library (bad scrolling-performance in lists, ripple highlighting freezes etc).
Without the FABToolbar the issues are gone. I digged deeper and discovered that if I remove only the toolbarLayout from my View-Hierarchy it works as well.
Thus I guess it has to do with toolbarLayout.getViewTreeObserver().addOnGlobalLayoutListener which is never removed.

Hmm, that ViewTreeObserver was introduced to listen to toolbar's height changes so I can't just remove it. But I suppose it really is called too frequently. Can you try importing the lib as module and moving that piece of code inside
toolbarLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { if(top != oldTop || bottom != oldBottom) { <listener code here...> } } }
If that solves your performance issues I will apply that as a new solution in the code.

It works.
But note that in the case onLayout is called multiple times, several OnLayoutChangeListener are registered and never unregistered.

Initialization process is done only once:
if(!isInit) {             return;         }
So the listener should be registered only once ;)

Oh sorry, overlooked that one.

Do you have an ETA when this fix will be deployed?

I'm sorry, I am really busy at work recently. I will do it by 11.03 (Friday).

No problem. I added a pull-request for the changes.


Add support for pandas 2.0

With all the tests now passing I added a tox config for pandas 2.0, and fixed setup.py and the gradle to support it.  Explicitly not supporting 2.1 yet because of an issue I can't figure out (will insert issue number here when I make it).
Fixes #27221

R: @tvalentyn

Seeing an error in coverage suite:
E           ImportError: Unable to find a usable engine; tried using: 'pyarrow', 'fastparquet'.
E           A suitable version of pyarrow or fastparquet is required for parquet support.
E           Trying to import the above resulted in these errors:
E            - Pandas requires version '7.0.0' or newer of 'pyarrow' (version '4.0.1' currently installed).
E            - Missing optional dependency 'fastparquet'. fastparquet is required for parquet support. Use pip or conda to install fastparquet.

I suspect we need to configure some parquet io tests for pyarrow 4 to use only pandas 1.x; alternatively, we'd have to bump the lower bound for supported pyarrow versions.

Run Python 3.8 PostCommit

In postcommits, seeing one relevant error, rest seems flake, need to rerun.
FAILED apache_beam/examples/dataframe/flight_delays_it_test.py::FlightDelaysTest::test_flight_delays - TypeError: Cannot perform reduction 'mean' with string dtype

Likely some pandas1 code in https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/dataframe/flight_delays_it_test.py

Run Python 3.8 PostCommit

Run Python 3.8 PostCommit

Run Python_Coverage PreCommit

Run Python_Coverage PreCommit

Run Python 3.8 PostCommit

(running again as the failure should be fixed in https://github.com/apache/beam/pull/28896)

@caneff @svetakvsundhar @tvalentyn what are next steps here?

Run Python_Coverage PreCommit

Run Python 3.8 PostCommit

Run Python_PVR_Flink PreCommit

Run Python_Coverage PreCommit

Run Python_Coverage Precommit

Run Python_Runners PreCommit

12:00:35 ERROR: Cannot install pyarrow<4 and >=3 and pyarrow<5 and >=4 because these package versions have conflicting dependencies.
12:00:35   py38-pyarrow-3: FAIL code 1 (2.85 seconds)
12:00:35   evaluation failed :( (3.07 seconds)
12:00:35 ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
12:00:35
12:00:35 > Task :sdks:python:test-suites:tox:py38:testPy38pyarrow-3 FAILED

it seems like something is not right in definition of coverage test suites; I wonder if we don't follow tox.ini syntax correctly

somehow constraints for different pyarrow versions get conjoined. I wonder if listing pyarrow and pandas on the same line would help. see also: https://stackoverflow.com/questions/57024579/tox-ini-environment-with-multiple-dependencies

Run Python 3.8 PostCommit

looks like prior errors are resolved, checking whether remaining apache_beam.utils.multi_process_shared_test.MultiProcessSharedTest.test_connect error is a flake.

Run Python_Coverage PreCommit

Noting that Postcommits have passed on https://ci-beam.apache.org/job/beam_PostCommit_Python38_PR/810/

Run Python 3.11 PostCommit

@caneff @damccorm merging this PR. Any objections?

SGTM

SGTM


remove unused shutdownLock

Motivation:
This is unused variable
Modification:
removed variable
Result:
Removes unused lock

@netty-bot test this please

@netty-bot test this please

@subbarao can you please sign our ICLA: https://netty.io/s/icla ?

@normanmaurer signed

@netty-bot test this please

Thanks a lot...


Added link to cite thefts

CLA: trivial
Added a third-party external reference for the claim regarding bridge thefts.

Thanks @prototypo


1.0 milestone tracker

[X] writable parser class
[x] test class (in progress)

[X] test class basics
[X] error handling

[x] More error handling tests.

[X] root test object (ie, the require('tap'))
[x] fancy asserts (repurpose most of tap-assert.js)

[x] Use at field in diags to display location (like Code)
[x] Use Error.captureStackTrace

[x] add Test.prototype.spawn()

Question: should t.spawn('foo.js') just go ahead and assume it's node?  or do we want to require the user to do t.spawn(process.execPath, [ path.resolve(__dirname, 'foo.js') ])?  Second is definitely simpler, but less cute.

[ ] human-friendly runner (Prereq: t.spawn())
[ ] review legacy tests (port to run on new code explicitly)
[ ] strip out legacy code
[ ] Docs

[ ] Document Consumer and Test classes
[ ] Example red-X/green-check reporter
[ ] Example using http://npm.im/code assertion library

[ ] Coverage?  Somehow?

So, as of 3b858929d6ac548b031ca4f74e6f390b147f234f, the Test class is pretty well where I want it, and very well covered by test cases.
The lack of a human-friendly runner is really starting to get unpleasant though.  That has to be the next thing, now that t.spawn() works.

I would love it if you either removed coverage entirely or looke at something like http://npm.im/argg, and provide a generic hook that another coverage framework could tap into, so to speak. I'm trying to figure out how to mash up babeljs source maps and istanbul with tap right now, and having some kind of generic way of doing this that doesn't predetermine the coverage framework used would be super handy.

Also I would be simply delighted to help you write expanded docs for v1, because then I would have docs, and I want them very much.

Done and published.  Coverage will come soon-ish, via another tool that handles child process spawning.


Add graphql ability

This is a super WIP, and has no tests, but it would be nice if this could generate Graphql ready models. I'm using this in a side project, so would be great to hear what you think of this.

Sorry for the delay I didn't have much time for OSS lately.
Unfortunately I don't think this PR should be merged. You could create your own library which would add support for type-graphql to typeorm models. It looks like simple parsing of lines with typeorm decorators should be enough and it could be used in more use cases(to add type-graphql support even if you're using code-first approach).
Reasons I don't want this functionality to be part of this library:

I don't like the idea of automatic generation of public api based on database model. Yes, it can be faster, easier to do, but it's a security hazard. Not all of the tables/fields should be exposed to the api(e.g. password fields). By default we generate every table, every field and most users will just use it as is, without looking on security. We often don't have enough time for development so if something is working as expected we just leave it as is, without thinking if we actually need every bit of code or if it can be a security vunerability.
There are multiple libraries for graphql which means that we would have to support other libraries soon or promote a single library. This would require a lot of work for a feature which is outside of direct package scope(generating models for typeorm).


Ensure that compilation errors don't update last compiled time

The effect of this is that the first hot reload/restart will fail with a compilation errors, but subsequent errors are not caught because we see no files have updated and re-use the old dill file. To fix this, we can avoid updating the last compiled time when the reload fails, so that subsequent errors surface the same error.
cc @HansMuller

The fix for this was reverted due to flakiness induced in a windows integration test.


Add rollback support

This PR adds a rollback endpoint to the plugin. It also expands on the JSON return data, always reporting the current chain state (height, top hash).
In order to support rollback smoothly, the aeplugin_dev_mode app was moved to the basic role (see app_ctrl).
This way, the dev_mode plugin will always be running once it's activated.

shouldn't it be rebased/adjusted on my latest PR?


fix: do not dispatch "complete" event on mount

Fixes #21

Released in v2.2.2.

Wow that quick 💪👍


Use pint != 0.24.0 in "pytest" CI workflow

Per #534.
How to review
Read the diff and note that the CI checks all pass.
PR checklist

[ ] Continuous integration checks all ✅
[ ] Add or expand tests; coverage checks both ✅
[ ] Add, expand, or update documentation.
[ ] Update release notes.

In the macOS jobs I see:
Run ts-graphviz/setup-graphviz@v2

==> Pouring<EMAIL_ADDRESS>Error: The `brew link` step did not complete successfully
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3'

To force the link and overwrite all conflicting files:
  brew link --overwrite<EMAIL_ADDRESS>
To list all files that would be deleted:
  brew link --overwrite<EMAIL_ADDRESS>--dry-run

Possible conflicting files are:
/usr/local/bin/2to3 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/2to3
/usr/local/bin/2to3-3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/2to3-3.12
/usr/local/bin/idle3 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/idle3
/usr/local/bin/idle3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/idle3.12
/usr/local/bin/pydoc3 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/pydoc3
/usr/local/bin/pydoc3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/pydoc3.12
/usr/local/bin/python3 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3
/usr/local/bin/python3-config -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3-config
/usr/local/bin/python3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12
/usr/local/bin/python3.12-config -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12-config

Somehow turning off the setup-graphviz step entirely on the macOS runners allowed the jobs to succeed.


ReactDOM.render is not a function - Following Guide

Describe the problem
Following the guide: https://auth0.com/docs/quickstart/spa/react
I cannot get the initial page to load at all. With directly copying the code provided i get Uncaught TypeError: ReactDOM.render is not a function
Which is to be expected it seems as ReactDOM.render isn't in current versions of React
What was the expected behavior?
Page to load content
Reproduction
I have the following code:
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'
import { Auth0Provider } from '@auth0/auth0-react'

ReactDOM.render(
  <Auth0Provider
    domain="-----"
    clientId="------"
    authorizationParams={{
      redirect_uri: window.location.origin
    }}
  >
    <App />
  </Auth0Provider>,
  document.getElementById("root")
);

Environment

Please provide the following:

Version of auth0-react used: 2.0.0
Which browsers have you tested in? Chrome and Firefox (up to date)
Which framework are you using, if applicable (Angular, React, etc): React 18.0.26 - Vite 3.0.0
Other modules/plugins/libraries that might be involved:

{
  "name": "-----",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@auth0/auth0-react": "^2.0.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@types/react": "^18.0.26",
    "@types/react-dom": "^18.0.9",
    "@vitejs/plugin-react": "^3.0.0",
    "autoprefixer": "^10.4.13",
    "postcss": "^8.4.21",
    "tailwindcss": "^3.2.4",
    "vite": "^4.0.0"
  }
}

Managed to fix with my own code as pasted below but would like to know if it's supposed to work in the documented way with current react versions?
ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <Auth0Provider
      domain="DOMAIN----"
      clientId="CLIENTID----"
      authorizationParams={{
        redirect_uri: window.location.origin
      }}
    >
      <App />
    </Auth0Provider>,
  </React.StrictMode>
)

Hi @mkempster22 - thanks for raising this
I've just tested this on the latest version of React (currently 18.2.0) and ReactDOM.render works as expected (you get a deprecation warning - because you should move to ReactDOM.createRoot)
I'll add a note to the README about v18


Add clamp conversion functionality

Description
Add clamp conversion
Fixes https://github.com/NVIDIA/TRTorch/issues/274
Type of change

New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project (You can use the linters)
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas and hacks
[ ] I have made corresponding changes to the documentation
[x] I have added tests to verify my fix or my feature
[x] New and existing unit tests pass locally with my changes

@peri044 can you resolve merge conflicts? Ill merge after that.

Resolved conflicts


Roll Engine from 20caf5496951 to f4ada800d100 (22 revisions)

https://github.com/flutter/engine/compare/20caf5496951...f4ada800d100
2020-11-30<EMAIL_ADDRESS>Roll Skia from 70fe17e12f38 to 4c6f57a23e63 (1 revision) (flutter/engine#22781)
2020-11-30<EMAIL_ADDRESS>Roll Dart SDK from 960620d2e811 to 7a2a3968ef53 (12 revisions) (flutter/engine#22778)
2020-11-30<EMAIL_ADDRESS>Roll Skia from fd41d878b13d to 70fe17e12f38 (6 revisions) (flutter/engine#22776)
2020-11-30<EMAIL_ADDRESS>[web] Add new line break type (prohibited) (flutter/engine#22771)
2020-11-30<EMAIL_ADDRESS>Roll Skia from 8d78da910e45 to fd41d878b13d (20 revisions) (flutter/engine#22772)
2020-11-30<EMAIL_ADDRESS>Cleanup dart_runner examples & tests. (flutter/engine#22769)
2020-11-30<EMAIL_ADDRESS>Revert "Introduce a delegate class for gpu metal rendering (#22611)" (flutter/engine#22775)
2020-11-30<EMAIL_ADDRESS>Let FlutterFragment not pop the whole activity by default when more fragments are in the activity (flutter/engine#22692)
2020-11-30<EMAIL_ADDRESS>add file package to deps in prep for glob update (flutter/engine#22770)
2020-11-30<EMAIL_ADDRESS>Fix the unchecked conversion warning for searchPaths in PlayStoreDynamicFeatureManager (flutter/engine#22654)
2020-11-30<EMAIL_ADDRESS>Roll Dart SDK from dcd5a8f005a2 to 960620d2e811 (794 revisions) (flutter/engine#22768)
2020-11-30<EMAIL_ADDRESS>Roll Skia from f2efb80bc316 to 8d78da910e45 (5 revisions) (flutter/engine#22754)
2020-11-30<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 36uDTGJQp... to qpkZl0s5J... (flutter/engine#22753)
2020-11-30<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from un3JixwuO... to Bnaeivv07... (flutter/engine#22757)
2020-11-27<EMAIL_ADDRESS>Manual roll of Dart SDK from ce76503f5b46 to dcd5a8f005a (flutter/engine#22766)
2020-11-26<EMAIL_ADDRESS>fuchsia: Ensure full-screen input interceptor (flutter/engine#22687)
2020-11-25<EMAIL_ADDRESS>Roll Skia from 452369182f6e to f2efb80bc316 (4 revisions) (flutter/engine#22750)
2020-11-25<EMAIL_ADDRESS>Introduce a delegate class for gpu metal rendering (flutter/engine#22611)
2020-11-25<EMAIL_ADDRESS>Roll Skia from 51b74afb84d4 to 452369182f6e (1 revision) (flutter/engine#22749)
2020-11-25<EMAIL_ADDRESS>Don't register CanvasKit with define (flutter/engine#22745)
2020-11-25<EMAIL_ADDRESS>Roll Skia from 888c5d3e57eb to 51b74afb84d4 (12 revisions) (flutter/engine#22746)
2020-11-25<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from gkfmiRsIl... to un3JixwuO... (flutter/engine#22744)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from gkfmiRsIlyNL to Bnaeivv073to
fuchsia/sdk/core/mac-amd64 from 36uDTGJQpFUl to qpkZl0s5J-Nw
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Gold has detected about 8 untriaged digest(s) on patchset 22.
View them at https://flutter-gold.skia.org/cl/github/71452

Commit queue failed; closing this roll.


feat: add getMeetingDetails to TeamsInfo

Fixes #3723
Description
Adds a getMeetingDetails method to TeamsInfo.
Notes
Bots implementing this must add this to their manifest.json:
"webApplicationInfo": {
        "id": "<MicrosoftAppId>",
        "resource": "<urlToApp>",
        "applicationPermissions": [
            "OnlineMeeting.ReadBasic.Chat"
        ]
    }

Per Teams, this is currently only available for:

Tenets who have the RSC permission for OnlineMeeting.ReadBasic.Chat set to Allowed. This won't be available for the Graph API permissions set until 6/17, or
Developers with the bot AppId whitelisted by the Teams Team (currently only available for Microsoft partner teams

Testing

Pull Request Test Coverage Report for Build 926702893

14 of 15 (93.33%)  changed or added relevant lines in 4 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.004%) to 85.392%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder/src/teamsInfo.ts
8
9
88.89%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

Totals

Change from base Build 923037352:
0.004%

Covered Lines:
19258

Relevant Lines:
21451

💛  - Coveralls


Appstudio update hacbs-test-project-8yqk

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI has failed.There was an error creating the PipelineRun: hacbs-test-project-8yqk-on-pull-request-
creating pipelinerun hacbs-test-project-8yqk-on-pull-request- in namespace rhtap-demo-iwwl-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: hacbs-test-project-8yqk-on-pull-request-
creating pipelinerun hacbs-test-project-8yqk-on-pull-request- in namespace rhtap-demo-zdii-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: hacbs-test-project-8yqk-on-pull-request-
creating pipelinerun hacbs-test-project-8yqk-on-pull-request- in namespace rhtap-demo-yazi-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: hacbs-test-project-8yqk-on-pull-request-
creating pipelinerun hacbs-test-project-8yqk-on-pull-request- in namespace rhtap-demo-wmog-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request