allow failures on mono latest

we should always build and test with latest mono, but it may break the build sometimes, it's ok
if a Mono: latest build job fails ( both osx and linux ) the build should not fail
with this, we dont need to disable tests ( like #518 ) and we know when the problem is fixed
see this pr travis build

How would we see that there are failures?  Does github show these somehow or do you have go look at travis?

we can add a badge inside readme, is not really cute, but better than nothing and can be improved

at least we can always run the latest mono without issues, because is latest mono, can fail

I think I'd rather the builds failed (and we then disabled tests or added an ignore), so that we know as soon as possible there's a problem.

yes, maybe with an easier to configure test suite (soon :smile ), we can do:

fail build: mono head without know failing tests (tag MONO_HEAD_FAIL or something )
allow fail build: mono head with all tests

ok, i'll close this one

I'm going to accept this for now because of this bug: https://github.com/fsharp/fsharp/issues/528

btw @dsyme , if you want i can add an mono latest badge in readme or some sort of notification ( mail to you, slack, dunno )

Let's see if the Mono bug gets fixed and perhaps we can re-enable ASAP


Fix the build bumping color picker version

The version of flutter_color_picker used is busted, which prevents any project from building:
../../../../../.pub-cache/hosted/pub.dartlang.org/flutter_colorpicker-0.4.0/lib/src/hsv_picker.dart:731:29: Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
 - 'PointerEvent' is from 'package:flutter/src/gestures/events.dart' ('../../../../../softwares/flutter/packages/flutter/lib/src/gestures/events.dart').
 - 'PointerDownEvent' is from 'package:flutter/src/gestures/events.dart' ('../../../../../softwares/flutter/packages/flutter/lib/src/gestures/events.dart').
    super.addAllowedPointer(event);

This bumps the version to 0.5.0 (test example, it works).

This is already changed on the main branch, but unreleased because this error happens only on flutter beta channel.

It's not though, check the diff.
https://github.com/erickzanardo/dashbook/blob/main/pubspec.yaml#L12

My bad, it is here: https://github.com/erickzanardo/dashbook/tree/erick.flutter-2.5


ci: Fix create-turbo usage in smoke tests

I think this should work, but when I tried testing this workflow from this branch, it just has the same error again. Makes me think that "Run this workflow from this branch" does not do what I think it does
https://github.com/vercel/turbo/actions/runs/4999115622


Remote Desktop or Citrix based automation support in TagUI

Hi Ken,
Is there any Remote Desktop or Citrix based automation support in TagUI. If so, could you please share some samples or documentation where I can get more information.
Thanks,
Ramu

Hi Ramu, I assume you mean running a remote desktop session on your computer and then automating the UI interactions on it. For this, TagUI relies on the visual automation and OCR capabilities of Sikuli (based on OpenCV and Tesseract).

To setup visual automation, refer to - https://github.com/kelaberetiv/TagUI#visual-automation

For a sample automation flow refer to this example for microsoft outlook - https://github.com/kelaberetiv/TagUI/issues/113#issuecomment-378194245

If you are referring to setting TagUI to run on the remote computer, refer to this - https://github.com/kelaberetiv/TagUI/issues/258

Copying @Aussiroth as he is taking over supporting questions and advice on TagUI usage. I think the commercial RPA software is better for such use cases, but you can give a try how TagUI works for you.
Following is comparison of TagUI's strengths and weaknesses, compared to commercial RPA software - https://github.com/kelaberetiv/TagUI#why-this (click to expand Click to show differences between TagUI open-source RPA and commercial RPA software)

Hi Ken.
I also have some automation that needs to interact with the UI. To run them in a minimized remote desktop session  just make the following change on the local machine (not on the remote server)
1 - Close any Remote Desktop sessions that you currently have open on your computer.
2 - Still on the local computer, open the Registry Editor and navigate to the key: HKEY_CURRENT_USER \ Software \ Microsoft \ Terminal Server Client
3 - Create a DWORD value called RemoteDesktop_SuppressWhenMinimized and set its value to 2
With that, I can open a remote desktop session, start automation and minimize the session without problems. Automation will be able to interact with the UI as the remote desktop client will keep the session active even with the client minimized.
It is not the most elegant solution, but it was the way I found to perform various automation during the night on a server.

Hi Luis, thanks for sharing your solution and tip! Appreciate that you took the time to share =)


Effect cleanup

Thinking out loud: we need some way to control the cleanup of effects. Right now, useEffectReducer treats effects as fire-and-forget, which is fine for many use-cases, but can introduce memory leaks or undesired behaviors for certain effects that are supposed to have a specific lifetime.
One solution: exec(effect) can return an entity which can be explicitly managed in the reducer state:
const someReducer = (state, event, exec) => {
  if (event.type === 'FETCH') {
    return {
      // ...
      effect: exec({ type: 'fetch', user: 'David' })
    }
  else if (event.type === 'CANCEL') {
    // stop effect
    state.effect.stop();

    return {/* ... */}
  }
}

The effect returned from exec(...) will be an opaque object that (for now) just has a unique id and a .stop() method. This will call the disposal function returned from the effect:
const [state, dispatch] = useEffectReducer(someReducer, initialState, {
  fetch: () => {
    // ...

    return () => {
      // cancel fetch request
    }
  }
});

I don't personally like having fn in the state. Thinking out load it would be great to have this done by  dispatching a cleanup so that you could keep the flux pattern

What is the "flux pattern" exactly? This is influenced by the actor model, where effects can be represented by "entities" and better managed that way.
We don't want to dispatch a special cleanup event because the logic for cleaning up needs to be handled in the reducer, and this is redundant:
if (effect.type === SPECIAL_CLEANUP_EVENT) {
  // special logic
  if (shouldCleanupEffect(/* ... */)) {
    state.effect.stop();
  }
}

Thanks for this library and opening this issue to discuss! I'm by no means an expert and I'll also just be thinking out loud here.
I think introducing effect cleanup is hard, not specifically because the cleanup itself is hard to implement correctly (which I also think it is), but also because thinking about these things exposes a few mismatches with the effect model, where I think it is very easy to create footguns for users when it comes to async effects.
The example you posted is a start, but some questions immediately spring to mind:

Is canceling a side effect not in itself a side effect? Is it safe to run that within the reducer? Do we need to somehow trigger the cancelling of the effect in the actual effect cleanup behind the scenes to be Concurrent Mode safe?
Is it up to the consumer of this library to dispatch CANCEL when a component unmounts? Would it be possible to do automatic effect cleanup in that case?

What is trickier though is how to handle race conditions.

Is it up to the consumer to call CANCEL on an old fetch before doing a new one? If not, how do you handle that in this paradigm? With useEffect you often keep track of if the effect is stale or not, what is the equivalent here? Can we make something better?

I don't have any answers. I know @dai-shi implemented something like this using AbortSignal in user-reducer-async abort examples but I have no idea if it works as intended in all cases. Also, while nicer than juggling effects manually, any solution where you have to check for staleness yourself in userland is a bit cumbersome. I have no idea how to get around that though.
I'm not sure how to even approach this problem in a structured way to be honest. Maybe by collecting pseudo test-cases or requirements?

I have been playing with the idea that it might be possible to use async generators for this. Instead of the user managing the staleness explicitly, they yield the effects they want and it's up to the library to only execute the ones that have not become stale.
Even ignoring async generators aren't exactly the most well known thing and a bit scary/not very ergonomic to many I have no idea for how to align that with the React model though.. Just a loose though.

I dug around some more and noticed your dog fetcher demo has a bug related to this. You can see it more clearly if you make the setTimeout delay random in fetchRandomDog and do some logging. Then click back and forth between Fetch and Cancel. You'll end up with a race condition where during the loading-state, an earlier fetch can resolve instead of the one you actually triggered.

@Ephem That would be solved with this issue.

Yup! That's why I didn't open a new issue, I just added it for context as a hands on problem. 😄

Just added PR #8 to address this. TL;DR:

exec(effect) - starts an effect
const entity = exec(effect) - now you have a "reference" to that effect (its entity)
exec.stop(entity) - disposes the effect represented by that entity
Component unmount will dispose all running effects.


Multiview-stitcher + Bioformats

Hi Folks,
I am new to this and would like to try to test and see if this workflow would work for stitching + align + fusing a large multipoint Nikon .nd2 file. My datasets are multipoint acquisition, multi-channels, 3D stacks. Any advise on where to get started? From what I understand, the current workflow with multiview-stitcher can only read tiff files during IO operations and save as an OME-ZARR. Is it possible to also save as an HDF5/XML pair that can be viewed in BigStitcher in Fiji.
I have been using BigStitcher + headless Fiji in the past sucks tasks but now BigStitcher has some issues reading these .nd2 files.

Hi @Eddymorphling , thanks for writing here!

Any advise on where to get started? From what I understand, the current workflow with multiview-stitcher can only read tiff files during IO operations and save as an OME-ZARR.

multiview-stitcher works with any data you're able to load into python. Ideally for large data this would be dask arrays. I don't have much experience with nd2 myself, but would probably try these:

https://github.com/tlambert03/nd2

nd2.imread('some_file.nd2', dask=True)

https://github.com/bioio-devs/bioio-nd2

BioImage("my_file.nd2", reader=bioio_nd2.Reader).get_dask_array()

Once your data is in dask arrays, you'd indicate the pixel spacing and positions / initial transformations of your tiles as described e.g. here. This code example also shows how you could go on to register and fuse your data.
Please post any questions you have along the way!

Hi @m-albert
Sorry I dropped the ball on this. I took a different approach to stitch these .nd2 files in the end that turned out to be successful.
I have a follow-question regarding multiview-stitcher. I had some time recently to written a python script that I adapted from one of your notebooks to stitch, align, register and fuse Lightsheet datasets acquired with a Blaze LS system. THese datasets are quiet large so I included dask to lazy load datasets and create 3D OME-NGFF Zarr arrays. But here is where I am stuck - the stitching does not work out well, the scripts reads the X-Y tile positions from the file names automatically but aligns them in a un-directional (left-right-left-right) array but the datasets were acquired left-right-left-right. I also tried to Visualize tile positions/configuration before it does any registeration or alignment but that gives me an IndexError: list index out of range error. Not sure how to go about this.
Would you have any suggestions on how to troubleshoot this? Happy to share what I wrote in Python if that helps. Let me know Thanks.

Hi @Eddymorphling, that sounds like a solvable problem. Happy to have a look at the python script if you post it!

Thank you, appreciate the help. Actually the error is at the channel/registration I believe.
Here is my script. The error is message follows the script. This scripts currently created a 3D-NGFF-zarr array for all my tiles but fails at the channel alignment/registration step. The code reads channel, tile info and z-slice info from the ome.tif filenames in the input folder.
import os
import re
import xarray as xr
from pathlib import Path
import dask.array as da
from dask import delayed
from dask.diagnostics import ProgressBar
import ngff_zarr
import numpy as np
import tifffile
from multiview_stitcher import (
    fusion,
    io,
    msi_utils,
    ngff_utils,
    registration,
)
from tqdm import tqdm

def read_image(image_path):
    return tifffile.imread(image_path)

def main():
    base_dir = "/Raw_Data/240814_20240814_IMG"

    # Define a suffix for unique file naming
    suffix = "Dataset"

    def get_prefix_with_blaze(directory):
        filenames = [f.name for f in Path(directory).glob('**/*.tif')]
        if not filenames:
            raise ValueError("No TIFF files found in the directory.")
        for name in filenames:
            if "Blaze" in name:
                prefix = name.split("Blaze")[0] + "Blaze"
                return prefix
        raise ValueError("No filenames with 'Blaze' found.")

    def extract_ranges(directory, prefix):
        tile_x_set, tile_y_set, channel_set, z_slice_set = set(), set(), set(), set()
        pattern = re.compile(rf'{re.escape(prefix)}\[(\d+) x (\d+)\]_C(\d+)_xyz-Table Z(\d+)\.ome\.tif')

        for filename in Path(directory).glob('**/*.tif'):
            match = pattern.match(filename.name)
            if match:
                tile_x, tile_y, channel, z_slice = map(int, match.groups())
                tile_x_set.add(tile_x)
                tile_y_set.add(tile_y)
                channel_set.add(channel)
                z_slice_set.add(z_slice)

        return (sorted(tile_x_set), sorted(tile_y_set),
                sorted(channel_set), sorted(z_slice_set))

    common_prefix = get_prefix_with_blaze(base_dir)

    # Automatically determine ranges from filenames
    tile_x_range, tile_y_range, channels, z_slices = extract_ranges(base_dir, common_prefix)

    def get_filename_from_tile_channel_z(prefix, tile_x, tile_y, channel, z_slice):
        return f'{prefix}[{tile_x:02d} x {tile_y:02d}]_C{channel:02d}_xyz-Table Z{z_slice:04d}.ome.tif'

    tile_x, tile_y, channel, z_slice = 0, 0, 0, 1
    print('Example filename:\n', get_filename_from_tile_channel_z(common_prefix, tile_x, tile_y, channel, z_slice))

    # Pixel scaling info for raw images
    scale = {'z': 3, 'y': 0.22, 'x': 0.22}
    overlap = 0.2
    overwrite = True
    msims = []

    for tile_x in tqdm(tile_x_range, desc="Processing tiles"):
        for tile_y in tile_y_range:
            zarr_path = os.path.join(base_dir, f'tile_{tile_x:02d}_{tile_y:02d}_{suffix}')

            if not os.path.exists(zarr_path) or overwrite:
                tile_grid_position = {'z': 0, 'y': tile_y, 'x': tile_x}

                # Collect images for each channel and z-slice
                im_data_list = []
                for ch in channels:
                    channel_images = []
                    for z in z_slices:
                        # Skip Z0000
                        if z == 0:
                            continue

                        image_path = os.path.join(base_dir, get_filename_from_tile_channel_z(common_prefix, tile_x, tile_y, ch, z))

                        # Verify the file exists
                        if not os.path.exists(image_path):
                            print(f"File not found: {image_path}")
                            continue

                        # Read the image using Dask delayed
                        image = delayed(read_image)(image_path)
                        channel_images.append(image)

                    # Compute the images in parallel
                    channel_images = da.compute(*channel_images)

                    # Ensure all images have the same shape
                    shapes = [img.shape for img in channel_images]
                    if len(set(shapes)) > 1:
                        print(f"Inconsistent image shapes found: {shapes}")
                        continue

                    # Stack 2D slices into a 3D array for this channel
                    channel_stack = np.stack(channel_images, axis=0)
                    im_data_list.append(channel_stack)

                # Convert list to a numpy array
                im_data = np.stack(im_data_list, axis=0)

                # Ensure the shape matches expected 3D (c, z, y, x)
                shape = {dim: im_data.shape[-idim] for idim, dim in enumerate(scale.keys())}
                translation = {dim: tile_grid_position[dim] * (1 - overlap) * shape[dim] * scale[dim]
                               for dim in scale}

                ngff_im = ngff_zarr.NgffImage(
                    im_data,
                    dims=('c', 'z', 'y', 'x'),
                    scale=scale,
                    translation=translation,
                )

                ngff_multiscales = ngff_zarr.to_multiscales(ngff_im)

                ngff_zarr.to_ngff_zarr(zarr_path, ngff_multiscales)

                msim = ngff_utils.ngff_multiscales_to_msim(
                    ngff_zarr.from_ngff_zarr(zarr_path),
                    transform_key=io.METADATA_TRANSFORM_KEY)

                msims.append(msim)

    # Check if msims is empty
    if not msims:
        print("No images loaded into msims.")
        return

    print(f'Number of msims: {len(msims)}')

       # Channel alignment and registration
    perform_channel_alignment = True
    channel_alignment_tile_index = 0

    curr_transform_key = 'affine_metadata'
    if perform_channel_alignment:
        curr_transform_key = 'affine_metadata_ch_reg'

        channels = msims[channel_alignment_tile_index]['scale0/image'].coords['c']
        if len(channels) == 0:
            print("No channels found for channel alignment.")
            return

        msims_ch_reg = [msi_utils.multiscale_sel_coords(msims[channel_alignment_tile_index], {'c': ch})
                        for ch in channels]

        with ProgressBar():
            params_c = registration.register(
                msims_ch_reg,
                registration_binning={'z': 2, 'y': 2, 'x': 2},
                reg_channel_index=0,
                transform_key='affine_metadata',
                pre_registration_pruning_method=None,
            )

        params_c = xr.concat(params_c, dim='c').assign_coords({'c': channels})

        for msim in msims:
            msi_utils.set_affine_transform(
                msim, params_c, transform_key=curr_transform_key, base_transform_key='affine_metadata')

    # Registration and stitching
    with ProgressBar():
        try:
            params = registration.register(
                msims,
                registration_binning={'z': 2, 'y': 2, 'x': 2},
                reg_channel_index=0,
                transform_key=curr_transform_key,
                new_transform_key='affine_registered',
            )
        except IndexError as e:
            print(f"Error during registration: {e}")
            return

    for imsim, msim in enumerate(msims):
        affine = np.array(msi_utils.get_transform_from_msim(msim, transform_key='affine_registered')[0])
        print(f'_tile_index {imsim}\n', affine)

    output_dir = base_dir
    output_filename = os.path.join(output_dir, f'fused_{suffix}.zarr')

    fused = fusion.fuse(
        [msi_utils.get_sim_from_msim(msim) for msim in msims],
        transform_key='affine_registered',
        output_chunksize=256,
    )

    print(f'Fusing views and saving output to {output_filename}...')
    with ProgressBar():
        fused_ngff = ngff_utils.sim_to_ngff_image(
            fused,
            transform_key='affine_registered')

        # Create multiscale representation with specified scale factors
        fused_ngff_multiscales = ngff_zarr.to_multiscales(fused_ngff, scale_factors=[2,4,6])

        ngff_zarr.to_ngff_zarr(
            output_filename,
            fused_ngff_multiscales,
        )

    mfused = ngff_utils.ngff_multiscales_to_msim(
        ngff_zarr.from_ngff_zarr(output_filename),
        transform_key='affine_registered')

    downsampled_data = fused[::2, ::2, ::2]  # Downsample by factor of 2 in each dimension
    downsampled_tiff_filename = os.path.join(output_dir, f'Fused_downsampled_{suffix}.tif')

    print(f'Saving downsampled TIFF to {downsampled_tiff_filename}...')
    tifffile.imwrite(downsampled_tiff_filename, downsampled_data)

if __name__ == '__main__':
    main()

Error logs:

Processing tiles:   0%|          | 0/3 [00:00<?, ?it/s]
Processing tiles:  33%|███▎      | 1/3 [46:58<1:33:56, 2818.17s/it]
Processing tiles:  67%|██████▋   | 2/3 [1:35:43<48:01, 2881.00s/it]
Processing tiles: 100%|██████████| 3/3 [2:21:47<00:00, 2827.91s/it]
Processing tiles: 100%|██████████| 3/3 [2:21:47<00:00, 2835.96s/it]
Traceback (most recent call last):
  File "/home/HPC_Jobs/napari-stitcher_Blaze.py", line 242, in <module>
    main()
  File "/home/HPC_Jobs/napari-stitcher_Blaze.py", line 176, in main
    params_c = registration.register(
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/envs/napari-stitcher/lib/python3.11/site-packages/multiview_stitcher/registration.py", line 1552, in register
    reg_channel = sims[0].coords["c"][reg_channel_index]
                  ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/home/conda/envs/napari-stitcher/lib/python3.11/site-packages/xarray/core/dataarray.py", line 891, in __getitem__
    return self.isel(indexers=self._item_key_to_dict(key))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/envs/napari-stitcher/lib/python3.11/site-packages/xarray/core/dataarray.py", line 872, in _item_key_to_dict
    key = indexing.expanded_indexer(key, self.ndim)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/envs/napari-stitcher/lib/python3.11/site-packages/xarray/core/indexing.py", line 235, in expanded_indexer
    raise IndexError("too many indices")
IndexError: too many indices


Error in make_dataset

File "/home/neha/Downloads/graph_distillation/graph_distillation/data_pipeline/ntu_rgbd.py", line 82, in make_dataset
keep = keep[np.linspace(0, len(keep)-1, subsample).astype(int)]
IndexError: index 0 is out of bounds for axis 0 with size 0
I have run the script file for dataset. On running script file for training classification model for single modality, I am facing above error. I checked the code and found vid_names variable is empty.Kindly help.

Can I work on this issue ?

Just add:
if len(vid_names) == 0:
raise BaseException('len(vid_names) == 0. Is the dataset present at: {}?'.format(
root
))
to the make_dataset function after line 52. You need to download the dataset in order to be able to run the code


2.3.0 broken

🐜 If you've found a bug, please use the template below to report it.
I upgraded to 2.3.0 today and broke my app due to:
Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval'

The script sample that causes this problem: "(function anonymous(\n) {\ntry {return thi"

Just published 2.3.1 should resolve the issue.


[Type Removal] Remove TypeFieldMapper usage, remove support of _type in searches and from LeafFieldsLookup

Description
This change introduces following changes:

Remove usages of TypeFieldMapper class. In order to keep changes limited, retained TypeFieldMapper class which is referred in multiple tests for storing nested paths. Once, https://github.com/opensearch-project/OpenSearch/pull/3004 is merged; this class can be removed completely.
Remove _type support in searches. Bug #2989
Remove type handling in LeafFieldsLookup

Issues Resolved
https://github.com/opensearch-project/OpenSearch/issues/2989
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Getting issues with gradle on ubuntu machine. Tried stopping/starting gradle but it didn't help.
ubuntu@ip-172-31-33-23:~/OpenSearch$ ./gradlew start

> Configure project :qa:os
Cannot add task 'destructiveDistroTest.docker' as a task with that name already exists.
=======================================
OpenSearch Build Hamster says Hello!
  Gradle Version        : 7.4.2
  OS Info               : Linux 5.13.0-1019-aws (amd64)
  Runtime JDK Version   : 17 (Eclipse Temurin JDK)
  Runtime java.home     : /home/ubuntu/sw/jdk-17.0.1+12
  Gradle JDK Version    : 17 (Eclipse Temurin JDK)
  Gradle java.home      : /home/ubuntu/sw/jdk-17.0.1+12
  Random Testing Seed   : 3B2F9F522B14152D
  In FIPS 140 mode      : false
=======================================

FAILURE: Build completed with 4 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Gradle could not start your build.
> Cannot create service of type TaskExecuter using method ProjectExecutionServices.createTaskExecuter() as there is a problem with parameter #14 of type ReservedFileSystemLocationRegistry.
   > Cannot create service of type ReservedFileSystemLocationRegistry using method ProjectExecutionServices.createReservedFileLocationRegistry() as there is a problem with parameter #1 of type List<ReservedFileSystemLocation>.
      > Could not create service of type ExecutionHistoryStore using ExecutionGradleServices.createExecutionHistoryStore().
         > Cannot lock execution history cache (/home/ubuntu/OpenSearch/.gradle/7.4.2/executionHistory) as it has already been locked by this process.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
==============================================================================

start gradle check

Since we're about to cut rc-1, I'd like to hold on backporting this to 2.0.   But really looking forward to getting it into 2.0!

I'd like to hold on backporting this to 2.0.

++ We'll have the PR auto opened but block the merge to prevent it from going in prematurely.


Minor improvements to the recalc explainer

I made a few improvements to the style recalc explainer. Here is what I did and why:

Moved the feedback section all the way to the top so it's easier to spot.
Moved the cons about the tracing UI into the "existing solution" section. I think it belongs there.
Added \ characters to force line breaks in the rendered HTML (single line breaks in markdown do not create a <br> in html, if you want to a single line break (i.e. not a new paragraph), you need \). And did some other minor md fixes.
Added a red box around the checkbox in the screenshot.

LGTM, I just removed the \'s for single line breaks. I was asked to add line breaks in the raw markdown to make diffing changes easier but these aren't meant to be rendered.


I/O catalog categories

Description
Adds Categories to the Instant Observability page.
Related Issues

Closes #1575

Tasks

[x] Store categories as JSON
[x] Search by keywords
[x] Categories filter by on keywords
[ ] Final design sign off

Noticed that the All filters are not highlighted by default when you enter the page. Fix it

Fix the Grid/list view toggle on mobile, someone introduced a change that breaks it.


Q: (possibly for FAQ): How are unknown fields handled

On of the originally important properties of protobufs was the way they handle unknown fields, and can pass them on to downstream apps without messing with them. JSON pretty much works the same if you just leave sub-branches alone. How does your format do with those?  (Important because schemas evolve, and you might see new data while still using the old schema.)

Hey @zellyn ,
This is a very good question, and I'll make a note to explain on the FAQ. I'll write it up better later, but in summary:
JSON Schema is a constrain-based language. You can be as strict or loose on defining your data as you wish. With JSON Schema, you can even go on a hybrid approach: be very precise on some aspects of the JSON document while leaving certain parts open-ended.
JSON BinPack takes advantage of this by statically analyzing the JSON Schema definition and deriving encoding rules based on the characteristics of every sub schema. If your sub-schema is truly open ended (i.e. the {} wildcard JSON Schema), then JSON BinPack will fallback to a "schema-less" approach where i.e. both the keys and the values are represented. See https://github.com/jviotti/jsonbinpack/blob/main/docs/encoder/any.markdown.
So in summary: JSON BinPack handles unknown fields gracefully given the flexibility of JSON Schema. If your schema definition is strict, more strict encoding rules will be derived and less data will be encoded. If a field is "unknown" (i.e. it belongs to an open-ended part of the schema), then it is still correctly encoded.
I hope that helps!

In the benchmark (https://sourcemeta.github.io/json-size-benchmark/), I also encode every document using the wildcard JSON Schema definition that matches anything and call that the "schema-less" mode of JSON BinPack.
That mode of operation is comparable to MessagePack, CBOR, etc but still features a lot of the space-efficiency tricks from other parts of JSON BinPack. The benchmark shows JSON BinPack is pure schema-less mode being as space-efficient or more space-efficient than every schema-less alternative too.

That makes sense. What happens if you see an unknown field (presumably added after you were compiled) in a completely strict region of the schema?

As long as that unknown field successfully validates against your JSON Schema definition in some way, it will be handled correctly out of the box.
Otherwise, you can create a new version of your JSON Schema definition that does recognize the field and map it accordingly using any schema evolution tools already available in the JSON Schema ecosystem, such as Cambria (https://www.inkandswitch.com/cambria/).
Protocol Buffers is able to gracefully detect even the latter case through the use of the type/id field tags at the expense of limiting the amount of space-efficiency optimizations you can perform.

I added a FAQ section covering this on the new website design which is now available at https://www.jsonbinpack.org!


jest + enzyme: TypeError: Cannot read property 'uniqueSort' of undefined

I am new to jest and just added one single test and installed babel-jest.
My .babelrc is configured using es2015, react and stage-0 presets.
/__tests__/button_test.js:
import { shallow } from 'enzyme';
import Button from '../';

describe('<Button />', () => {
	test('should be a button', () => {
		expect(shallow(<Button />).is('button')).to.equal(true);
	});
})

Calling jest --no-cache results in an error:
  ● Test suite failed to run

    TypeError: Cannot read property 'uniqueSort' of undefined

      at Object.<anonymous> (node_modules/cheerio/lib/api/traversing.js:4:49)
      at Object.<anonymous> (node_modules/cheerio/lib/cheerio.js:20:3)
      at Object.<anonymous> (node_modules/cheerio/index.js:5:28)
      at Object.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:11:16)
      at Object.<anonymous> (node_modules/enzyme/build/index.js:6:21)
      at Object.<anonymous> (scripts/main/apps/react/components/controls/Button/__tests__/button_test.js:1:15)
      at handle (node_modules/worker-farm/lib/child/index.js:41:8)
      at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:47:3)
      at emitTwo (events.js:106:13)
      at process.emit (events.js:191:7)
      at process.nextTick (internal/child_process.js:744:12)
      at _combinedTickCallback (internal/process/next_tick.js:67:7)
      at process._tickCallback (internal/process/next_tick.js:98:9)

It seems like a problem with enzymes dependencies: cheerio -> htmlparser2 -> DomUtils -> uniqueSort. DomUtils don't seem to have a uniqueSort.
Strangely, enzyme worked with mocha. Is there anything I must've missed?
UPDATE: I found out, this issue only happens if I set automock="true" in the package.json-config.

I'm having a bit of trouble reproducing this... Is there any chance that you could repro it in a small repo and I can take a look 😄 ?

Thanks for your effort! I will try to extract the problem from my (enterprise) project.

@rogeliog Ok, I was able to repro the problem. I took https://github.com/vjwilson/enzyme-example-jest and added the dependencies of my big project.
https://github.com/misantronic/enzyme-example-jest
Use npm i && npm test to run.
package.json:

automock=true fails
automock=false succeeds

Have you looked at their docs? https://github.com/airbnb/enzyme/blob/master/docs/guides/jest.md#jest-prior-to-version-15

@thymikee yes. The example reproducing the bug is actually a clone of the enzyme-example

Maybe their clone doesn't use "automock": true? (I didn't bother checking that).
But they're pretty clear on which modules you should be unmocking and adding this to your package.json helps:
    "unmockedModulePathPatterns": [
      "react",
      "react-dom",
      "react-addons-test-utils",
      "fbjs",
      "enzyme",
      "cheerio",
      "htmlparser2",
      "lodash",
      "domhandler",
      "object.assign",
      "define-properties",
      "function-bind",
      "object-keys",
      "object.values",
      "es-abstract"
    ]

They explicitly say:

If you are using a previous version of Jest together with npm3, you may need to unmock more modules.


chore: remove unnecessary dependencies

When working on #13 I noticed there were some development packages copied over from tinyspy that we don't seem to use.

Let's close this, since we actually need some of these dependencies! Anyways, thank you for the PR.

Which do you need? I don't think all of them are necessary, since some of the tools like Husky aren't configured for this repo yet.

Could you config husky with eslint for this repo?

Personally, I don't think Husky is necessary any more now that core.hooksPath is built into git. I've created an example of a similar hook without Husky at #15, let me know what you think.
Also, how about removing some other dependencies besides Husky?

The hook PR looks good for me if it works.


UFT8 in lstlisting

Seems that lstlisting does not support special characters.
Maybe switching to listingsutf8 (http://ctan.org/pkg/listingsutf8) may be helpful.

Currently, listingsutf8 only supports workarounds for \lstinputlisting. For all other usecases, such as the lstlisting environment, no workaround exists.
i suggest moving to the minted package. Installation of the required library pygments is a bit tricky under Windows for Python newbies.
Any comments on that? I'm in favour of adding a comment on the lstlisting and to close this issue. I could also add an example when using minted.

You could add a list of special characters using \lstset and the literate key.


[SPARK-47161][INFRA][R] Uses hash key properly for SparkR build on Windows

What changes were proposed in this pull request?
This PR fixes the mistake in https://github.com/apache/spark/pull/45175 that sets the hash key wrongly for Maven cache.
Why are the changes needed?
To use the cache properly. SparkR on Windows does not find its cache properly: https://github.com/apache/spark/actions/runs/8039485831/job/21956555533

Does this PR introduce any user-facing change?
No, dev-only.
How was this patch tested?
Will monitor the CI.
Was this patch authored or co-authored using generative AI tooling?
No.

Merged to master. Thanks, @HyukjinKwon .


Spotify

Option to disable and enable all Spotify functionality/app bar has been added.
Accomplished this by adding a boolean 'spotify' option for the LedFX config. Option can be toggled in the settings view.

I tried to enable and try this out using Python 3.6.
Checked config.yaml and has:
spotify: true dev_mode: true
http://<IP_ADDRESS>:8888/api/spotify - responding back with true.
Could not see on frontend how to setup Spotify?
Rebuilt frontend again using: npm run build tired again, and went through all of the frontend pages - no settings relating to Spotify. Can I please have some advice on how to proceed?


Implement bool vars

Description
This PR implements setting boolean variables in the envoy config.
Usage:
http set-bool <name of bool> <constant value> -m <type of match> <optional args>
See this doc for documentation on building and running the envoy filter plugin.
Testing
// Write a config for the filter
// Eg. "http set-bool mock_bool matches -m str matches
                  http-request set-path mockpath
                  http-request set-header x-forwarded-proto https
                  http-response set-header mock_key mock_val1 mock_val2"

// Build and run envoy
bazel build //http-filter-example:envoy
./bazel-bin/http-filter-example/envoy -c ./http-filter-example/envoy-sample-config.yaml

// Set up Docker backend to echo http headers and send a curl request to envoy
// Docker image found here: https://hub.docker.com/r/ealen/echo-server
curl localhost:8081

Request looks like this:
GET mockpath HTTP/1.1
host: localhost:8081
user-agent: curl/7.68.0
accept: */*
x-forwarded-proto: http,https
x-request-id: 6455c017-01dc-41c3-8c34-fc289c2cefa9
x-envoy-expected-rq-timeout-ms: 15000

Response looks like this:
$ curl -v localhost:8081
*   Trying <IP_ADDRESS>:8081...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 8081 (#0)
> GET / HTTP/1.1
> Host: localhost:8081
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< x-envoy-upstream-service-time: 0
< mock_key: mock_val1
< mock_key: mock_val2
< date: Wed, 12 Jul 2023 20:17:36 GMT
< server: envoy
< transfer-encoding: chunked

Added a debug statement ("match found!") for when the boolean variable evaluates to true. We can see in the logs that the boolean expression has indeed evaluated to true:
[2023-07-12 20:17:34.544][619806][info][upstream] [external/envoy/source/common/upstream/cluster_manager_impl.cc:226] cm init: all clusters initialized
[2023-07-12 20:17:34.544][619806][warning][main] [external/envoy/source/server/server.cc:811] there is no configured limit to the number of allowed active connections. Set a limit via the runtime key overload.global_downstream_max_connections
[2023-07-12 20:17:34.545][619806][info][main] [external/envoy/source/server/server.cc:918] all clusters initialized. initializing init manager
[2023-07-12 20:17:34.545][619806][info][config] [external/envoy/source/extensions/listener_managers/listener_manager/listener_manager_impl.cc:857] all dependencies initialized. starting workers
[2023-07-12 20:17:34.577][619806][info][main] [external/envoy/source/server/server.cc:937] starting main dispatch loop
[2023-07-12 20:17:36.406][619844][info][misc] [header-rewrite-filter/header_rewrite.cc:138] added response header!
[2023-07-12 20:17:36.406][619844][info][misc] [header-rewrite-filter/header_rewrite.cc:143] match found!
[2023-07-12 20:17:36.406][619844][info][misc] [header-rewrite-filter/header_rewrite.cc:153] encodeData function called

Next steps:

Evaluate a conditional consisting of boolean expressions
Add support for dynamic values in boolean expressions

This is not the cleanest implementation -- I couldn't fully make use of polymorphism with the executeOperation function because SetBoolProcessor does not actually take in any HTTP headers to modify. This also impacts the code where each processor is added to its respective vector: (@rob05c) unless I'm mistaken, there isn't a good way to cast an abstract class pointer to a child class that is also abstract.
Please let me know if you have any suggestions for ways to make this cleaner and fully take advantage of the Processor class structure!

This also impacts the code where each processor is added to its respective vector: (@rob05c) unless I'm mistaken, there isn't a good way to cast an abstract class pointer to a child class that is also abstract.
Please let me know if you have any suggestions for ways to make this cleaner and fully take advantage of the Processor class structure!

Maybe a Matcher class with child classes for each Type might help? Then the switch statements in parseOperation and executeOperation could call functions on Matcher which are overridden by the child class (or possibly the constructor in parseOperation)


Resolution fixes for HRRR-CAR and HRRR-HI

HRRR-Hawaii, and the subdomains for HRRR-Caribbean (also added in this PR), needed settings for higher resolution, since some smaller islands were not being plotted.

Thanks!  I forgot to pylint and pytest last time, so hopefully I pass the checks this time.


Added PlantUML diagrams in backstage.io docs

Hey, I just made a Pull Request!

Fixes: #2043
:heavy_check_mark: Checklist

[x] All tests are passing yarn test
[ ] Screenshots attached (for UI changes)
[ ] Relevant documentation updated
[x] Prettier run on changed files
[ ] Tests added for new functionality
[ ] Regression tests added for bug fixes

Thanks!
How was the diagram created? Wanna make sure it's reproducible. Did you see the existing script to generate diagrams?

@Rugvip Diagram was already created but was in the wrong folder. I just moved the diagram to correct folder i.e. assets/auth and updated the link in oauth.md.

Alright, ok with updating https://github.com/spotify/backstage/blob/master/docs/generate-uml.sh to generate the files to the correct location?

@Rugvip I did not run  https://github.com/spotify/backstage/blob/master/docs/generate-uml.sh. Do I have to run this and generate the diagram?

The existing diagram was generated using that script, and we want that to be reproducible. Since it generates the diagrams to the wrong location, the next person to create a diagram will also end up with a broken one, as well as a duplicate of this one.
Looking closer it might not actually be that the script needs updating at all, perhaps we can leave the existing diagram in place and tweak the link to it instead?

@Rugvip Ok, I got it means I have to update https://github.com/spotify/backstage/blob/master/docs/generate-uml.sh  so that whenever we run this script it generates the diagram at the correct location am I correct?

@Rugvip I tried to update the image link in but it did not work. It might be a problem with docusaurus build. I think we should generate the diagram in the assets folder because all the images are in that only. Can you help me how to run the script and generate the diagram?

@iamrajiv How to run the script should be described in the script itself. If you're on linux/osx it should be straightforward. If you're on windows you may need GitBash/WSL to execute the script and install plantuml separately.
Regarding generating the script into assets, that should be fine too, given some modifications to the script

@Rugvip Please review.


Update grid masterDetails click button dialog son

I need to write directly to the bd and then update and display on the grid, when I click the button,

that's not how Master Detail works.
Updating has to be managed manually, see samples.
Detail is only saved once master entity is saved.
If you want to have different behavior, you may need different approach (not use Master Detail)

Hi @ga5tan ,
So I could update DialogMaster by clicking the button, you would have some suggestions.

check OrderDetailsEditor.ts:
I believe validateEntity is called on getting back from editor, so u should put your stuff there
validateEntity(row, id) {
row.ProductID = Q.toId(row.ProductID);
        var sameProduct = Q.tryFirst(this.view.getItems(), x => x.ProductID === row.ProductID);
        if (sameProduct && this.id(sameProduct) !== id) {
            Q.alert('This product is already in order details!');
            return false;
        }

        row.ProductName = ProductRow.getLookup().itemById[row.ProductID].ProductName;
        row.LineTotal = (row.Quantity || 0) * (row.UnitPrice || 0) - (row.Discount || 0);
        return true;
    }


Get "ERROR in No template specified for component " for AOT build.

Got the above error for any Component in my project while running:
webpack --env.aot --env.client
sample component:
@Component({
	selector: "eyc-time-control",
	template: require("./timeControl.component.html")
})

The html file exists and in dev mode(just executing webpack) all works.
If I move the template content inside the @Component.template like "template": "

" or use "templateUrl: "./timeControl.component.html", the error is gone.
Any idea?

So basically @ngtools/webpack, which is what we're using to build production mode, I'd imagine it's not triggering that require() since it's expecting a string there, and when it sees templateUrl it automatically  wraps it in a require( ) (you can notice a similar error if you use templateUrl: require(), since it'll end up doing a double-require.
Strange behavior I know, but it's just something finicky with ngtools so not your fault!
I hope that makes more sense though?

Hi, so I suppose we should not use template: require(".") as it wont compile for production. Thank you.

Yes that'll do it! Strange but maybe ngtools will improve soon to know there's a require already so not to add another one in there.

Does it works now?
I´ve been struglling to get template concatenation working with AoT.
import temA from './temA.html'
import temB from './temB.html'
...
@Component..
template: (temA + temB) as string,
...
It works on dev with webpack using raw-loader
But building prod i get the error "ERROR in No template specified for component"
Apreciate any help


gcsfuse 0.17.0

Merged in https://github.com/Homebrew/homebrew-fuse/commit/31fea18fbfc98dd554498b42d185d01bd8b94b3e. Thanks again @jacobsa! :smiley:


[pt] Add translations for /pt/docs/concepts/signals

Add:

_index.md
metrics.md

Issue: https://github.com/open-telemetry/opentelemetry.io/issues/4922

Hey @vitorvasc, as mine one (https://github.com/open-telemetry/opentelemetry.io/pull/5144) is duplicated from your I'll close mine. In the meantime I've opened @theletterf has input great comments there, can you please double check and apply if it's the case?

Hey @vitorvasc, as mine one (#5144) is duplicated from your I'll close mine. In the meantime I've opened @theletterf has input great comments there, can you please double check and apply if it's the case?

Absolutely! Brought the updates as they were suggsted on the comments.
CC @theletterf, would you mind review here aswell?
Thanks!

LGTM!!

@open-telemetry/docs-pt-approvers Remember to approve the PR if you're OK with the content. Comments don't suffice.

@open-telemetry/docs-pt-approvers Remember to approve the PR if you're OK with the content. Comments don't suffice.

Hi @theletterf, if this is related to my comment above - I'm not part of the OTel org yet; I'm commenting with LGTM just because I helped to review :)

Parabéns @vitorvasc
LGTM!!!!!


bump(k8s): update k8s to 1.30

Bump k8s to v1.30.0
Fix deepcopy-gen script

Note: openshift components haven't been bumped yet. Will do when those components have been updated (via pending PRs).

Updated to 1.30.0-rc.0

/hold cancel


Roll Error Handling

Attack Rolls

Errors are silent leaving the player in confusion

Damage Rolls

Errors are silent leaving the player in confusion
The roll dialog (if opened) cannot be closed...ever

Are you on the current version of both Foundry and starfinder?

STR

Remove value from appropriate text box
Roll the matching roll
Profit from your mistakes

Figured this one out after a conversation on Discord.
So, if a damage formula for a weapon is added but left blank, when the damage button is pressed it will throw this error in the console:

Also, setting the Attack Roll Bonus to an empty field shows a null value in the roll formula on the chat card.

Fixed in a feature branch. Will be merged into development in time for next release.

This should be fixed now in the current release. We can reopen if we're still having issues.


Add the tests for rhel 7, 8 and suse 15.3

related with #410
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

@sophia-guo rhel needs to be pulled from the Red Hat container registry (see https://developers.redhat.com/blog/2020/03/24/red-hat-universal-base-images-for-docker-users#)

Thanks @gdams


Add rate limiting functionality

Add the in-memory rate limiter.
The rate limiter state should be checked/updated before the load balancer routes the request. It's ok to composite it into the load balancer itself.
The rate limiter should recognize the client based on IP and port - the same approach as in HashLoadBalancerImpl.
This approach assumes that the load balancer standing in front of panda instances uses the hash-based algorithm - we already assumed this during HashLoadBalancerImpl implementation. In the future, the rate limiter should be moved to either MongoDB or some external cache (e.g. redis) in order to remove the requirement of a hash-based load balancer when 'panda' uses some different algorithm e.g. Round Robin.
I'm not forcing any particular rate-limiting algorithm, let's have fun and implement something demanding. However, a bucket-based rate limiter may be a good starting point...
Consider creating a new module, as this functionality should be as independent as possible and there can be multiple rate limiter implementations.

If we would use Redis one day: https://redis.io/commands/incr/


Sample projects looking for SDK version=10.0.14295

Hi,
I'm new to Visual Studio so maybe this is a no brainer but when I try to load any of the samples in VS, I get the message that I need to install the platform Windows 10 SDK (UAP, Version=10.0.14295).  I downloaded and unzipped the entire Samples folder.  I'm guessing my VS cannot find the shared contents but don't know how to resolve the issue.  Any help would be great - Thanks!

You can install the 14295 SDK, or easier is to follow these instructions to update the app to the latest SDK.

I don't believe that is the problem - I have the latest SDK installed (10.0.14383).  The Output box indicates it is looking for some shared projects that it cannot find but I don't know if that is the same problem or a second problem...

As noted in every README, you have to unzip the entire thing, not just the Samples folder. The samples have references to content in the SharedContent folder.

Yes, I read that and complied so that is not the problem either.  The entire folder is unzipped but it is still apparently looking for the 14295 SDK for some reason while I have the 14383 SDK installed.

You always can edit the csproj of a project and  change the following:
 <TargetPlatformVersion>10.0.14366.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.14366.0</TargetPlatformMinVersion>

Or whatever is the sdk you have (you can get the info creating a new UWP project and get the info from the csproj created)

If you don't have the 14295 SDK installed, you can edit the csproj file to change the SDK version. Once the Anniversary Edition is released, the version numbers will be updated in all the samples. But we don't do it right now because it would result in the versions being changed constantly.

Thank you both for the suggestion.  I had already tried that as well but will try it again.  When I did that I got a different error but I can't remember what it was.  I will try it again and report back...

OK, that seems to have worked!  My apparent mistake when I tried it before was that I replaced the "10.0.295.0" target in the samples project file platform reference with 10.0.586.212 rather than "10.0.586.0" for my installed SDK.  In other words, I thought the last ".0" should have been ".212" to match the full specification of my SDK.
Thanks a ton!
Leo

So I got past the errors above with your help.  The current issue is that even though I have the build 14388 SDK installed, the referenced "Microsoft.advertising.xaml" file does not seem to have been installed.  I have read on the Microsoft website that there is (or was) a separate advertising SDK that needs (or needed) to be installed but maybe this is no longer the case?  My question is how do I get the "Microsoft.advertising.xaml" and similar files installed on my system?
Thanks again!

As noted in the README:

This sample requires the Microsoft Advertising SDK Libraries for XAML or JavaScript. Download it here.


fix: vercel auth file borks login

Description
Because vc logout doesn't remove it's pseudo-comments, deserialize breaks when trying to extract the token.
This PR fixes that by setting the deserialized struct to have an optional token field and then we make sure the extraction didn't encounter an error and that the token is Some.
Testing Instructions
First, make sure you build the branch.

vc login && vc logout -> make the Vercel auth file and then remove the token field. You could do this manually as well.
turbo login -> Shouldn't error and ask for a new login.

Closes TURBO-2485

#7556  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Zertsov and the rest of your teammates on  Graphite


Issue with Firebase Cloud Message Plugins

This plugin is conflcting with cordova-plugin-firebasex and cordova-plugin-fcm-with-dependecy-updated. Your admob plugin and firebase cloud message plugins are not working at the same time.

yes, same issue with cordova-plugin-firebase-analytics and cordova-plugin-firebasex, for me admob.prepare() force close application

Update the versions of the sdk to the Last on gradle

Update the versions of the sdk to the Last on gradle

how to update?

Update the versions of the sdk to the Last on gradle

how to update?


Export to CSV, JSON and Excel no longer works

Issue Type: Bug
Open any query that results in records from DB. Select export to CSV or JSON or Excel. In the save dialog, choose the Desktop folder and keep default file name. Click Save. (Dialog closes, no file written).
Note 1: I rebooted the machine and was able to reproduce the issue
Note 2: I have tried different export types and different save locations
Note 3: This feature worked last week when the app was first installed.
Note 4: There are no entries in the syslog file regarding a save or export operation
SQL Operations Studio version: sqlops 0.32.8 (efd470b3c771ef7473ba3cf108a33b6579c96a53, 2018-08-30T19:33:15.959Z)
OS version: Linux x64 4.15.0-34-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz (8 x 2810)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: unavailable_softwarevideo_encode: enabledvpx_decode: unavailable_softwarewebgl: enabledwebgl2: enabled

Load (avg)
0, 0, 0

Memory (System)
7.70GB (4.74GB free)

Process Argv
/usr/share/sqlops/sqlops --unity-launch

Screen Reader
no

VM
0%

Extensions: none

@EmanNo1 this issue should be fixed in today's build available at https://github.com/Microsoft/azuredatastudio/releases/tag/1.0.0.  Please reactive if the issue persists with this build.  Thanks for reporting this issue!


[azeventhubs] Processor.NextPartitionClient can hang for ever in some cases, ignoring context cancellation

Bug Report

https://github.com/Azure/azure-sdk-for-go/blob/6e61c5ea1c948e54cbf69f8e0876468df7843065/sdk/messaging/azeventhubs/processor.go#L196
SDK version: github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.0.3
go version go1.22.0 darwin/amd64

Processor.NextPartitionClient blocks for ever, even though the context has been cancelled
Upon context cancellation that method should return (nil)
Looking at the code it's clear the method is stuck on <-p.runCalled, and this can happen if the call to Run of the processor immediately errored and never unblocked this line. I believe the fix should be as easy as replacing that line by

	select {
	case <-p.runCalled:
	case <-ctx.Done():
		return nil
	}

@PaulBernier, thank you for that. PR is out, fix should be in main soon.


Add sorting methods to StaticArray

Closes #6498.
These sorting methods simply forward to to_slice, so #10163 can be implemented on top of this easily.

We should postpone this until the final sort API is decided in #6057

Smoke test failure is due to #11021

With https://github.com/crystal-lang/crystal/pull/11195 being approved, we need to evaluate how much of this is still relevant.


[Rust] Add rust runtime to CI

If the testcase relies on the change of the ci_cpu docker file, it won't work as the ci images are cached, please send changes to CI image as a separate PR

depends on #1855

I checked the ci image locally and the test does not run. You can try to reproduce locally via

docker/build.sh ci_cpu bash
docker/bash.sh ci_cpu

Type cargo and run the test scripts.

The main reason is that default rustup installs the env only for the current user(which is root). And docker/bash.sh script will actually enter an env that is the same as the user who typed the command. And in that case /root/.cargo is not accessible.
Seems some customized configuration is necessary to make sure rust installation works for all users in the system. @nhynes can you try to do some tests locally and send an updated version of script that works? Also the mod of test/script/task_rust.sh need to be changed to executable

seems to work now. thanks for the debugging tips

Some further comment. Note that you can verify locally by running the script
docker/bash.sh tvmai/ci-cpu
./tests/scripts/task_rust.sh

Sorry about that. It's 100% for sure actually fixed now.
Also, there's an independent PR that will make rust builds way faster (#1859). That one can be merged after this one since sccache transparently makes things better.

Locally, here is the error message:
docker/bash.sh tvmai/ci-cpu
# inside the docker
./tests/task_rust.sh

error: failed to load source for a dependency on `bounded-spsc-queue`

Caused by:
  Unable to update registry `https://github.com/rust-lang/crates.io-index`

Caused by:
  failed to open: /opt/rust/registry/index/github.com-1ecc6299db9ec823/.cargo-index-lock

Caused by:
  Permission denied (os error 13)
tqchen@mode:~$ ls /opt/rust/registry/
cache/ index/ src/
tqchen@mode:~$ ls /opt/rust/registry/index/github.com-1ecc6299db9ec823/.cargo-index-lock
/opt/rust/registry/index/github.com-1ecc6299db9ec823/.cargo-index-lock

That's odd because the installation chmods everything to writable https://github.com/dmlc/tvm/pull/1859/files#diff-8d7a51347f558899828488f5218fb220L15
I'll give it another go.

fixed and tested

Please remove the changes in Jenkinsfile for now, then i will merge this in, rebuild the image and trigger Jenkins through a separate  PR


Fix wrong handling of base_url parameter in runner if it has a trailing slash

Resolves #194

Codecov Report

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

@@          Coverage Diff          @@
##           master   #195   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          18     18
  Lines         851    855    +4
  Branches      120    121    +1
=====================================
+ Hits          851    855    +4

Flag
Coverage Δ

#unittests
100% <100%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

src/schemathesis/runner/__init__.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


fix: Use new manifest generator options to run protocol & unit tests in CI

Description of changes
Uses the new manifest generator options to run unit & protocol tests rather than deleting services.
New/existing dependencies impact assessment, if applicable
No new dependencies were added to this change.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/test


[Q] How to use 7lang model?

Dear WhisperSpeech maintainers,
I found multi-language models like s2a-v1.95-medium-7lang.model on huggingface.
When trying to use them with example/text_to_audio_playback.py by setting model_ref = "collabora/whisperspeech:s2a-v1.95-medium-7lang.model" I only get strange sounding voice output.
The default models sound fine.
It is supposed to work or what am I missing?
Thanks a lot,
My system setup:

Gentoo Linux
ROCm 6.1 with Radeon 7900 XTX
Pytorch  2.4 with ROCm 6.1 support
python 3.12

There is s2a and t2s models. 7lang indicates that it is working with 7 languages. When using the generate_to method you can pass a property called lang which defines which language the output should be, if no lang property is passed, it will use en (englisch) as default.


Why Qwen2VL can generate normally with zero visual_features

With the default image, Qwen2VL can generate normally.
When I replace visual_features with zero tensor (add visual_features[:,:]=0 after https://github.com/NVIDIA/TensorRT-LLM/blob/main/tensorrt_llm/runtime/multimodal_model_runner.py#L699) , it can also generate normally and the result is the same.
Why Qwen2VL can generate normally with zero visual_features?  Is the information of image included by somewhere else?

Hi @YSF-A ,
Could you try it with the latest main and if it still exists, please let me know it


Bring together candidate set of summary plots

Master list of summary plots:

[ ] histogram of max offset50 values coloured by the mean precipitation
[ ] histogram of max offset50 values coloured by the overall AR(1)/variance value
[ ] plot of mean offset50 vs longitude
[ ] plot of mean offset50 vs mean precipitation
[ ] histograms of NDVI
[ ] Kendall tau value of the variance vs offset50 values
[ ] Map of trends

I think it would be good to create a histogram of max offset50 values and perhaps colour each bar by the mean precipitation or overall AR(1)/variance value from sites in each bar. Happy to do this if someone can point me to the to summary files once we have them :)

As described in PR #363 this is how the summary stat file for 1 location looks like:

We should be including the decay rate when it is ready, and i think also we should include the coordinates into the file (i'll make an issue about the latter and add them today). Let me know if i should add something else.
For making the plots, i think we could create a new script, something like pyveg_gee_summary_analysis.py that reads all files existing in a given directory (each file is a summary stat for a location), and produces all the plots we are going to do.  I can create the scheleton of this script and then each one of us can create a function that makes an individual plot.
Any thoughts?

As described in PR #363 this is how the summary stat file for 1 location looks like:

We should be including the decay rate when it is ready, and i think also we should include the coordinates into the file (i'll make an issue about the latter and add them today). Let me know if i should add something else.
For making the plots, i think we could create a new script, something like pyveg_gee_summary_analysis.py that reads all files existing in a given directory (each file is a summary stat for a location), and produces all the plots we are going to do. I can create the scheleton of this script and then each one of us can create a function that makes an individual plot.
Any thoughts?

sounds like a good idea. definitely need coordinates added so it would be great if you could do that.

As described in PR #363 this is how the summary stat file for 1 location looks like:

We should be including the decay rate when it is ready, and i think also we should include the coordinates into the file (i'll make an issue about the latter and add them today). Let me know if i should add something else.
For making the plots, i think we could create a new script, something like pyveg_gee_summary_analysis.py that reads all files existing in a given directory (each file is a summary stat for a location), and produces all the plots we are going to do. I can create the scheleton of this script and then each one of us can create a function that makes an individual plot.
Any thoughts?

sounds like a good idea. definitely need coordinates added so it would be great if you could do that.

I would also include the Kendall tau values, I think there's something in the Kendall tau value of the variance compared to the offset50 values. I know the tau value of AR(1) is less important given we have already said an overall AR(1) would be better.
@jabrams23 I didn't want to edit your list but I think the same histograms with NDVI would be cool too.

As described in PR #363 this is how the summary stat file for 1 location looks like:

We should be including the decay rate when it is ready, and i think also we should include the coordinates into the file (i'll make an issue about the latter and add them today). Let me know if i should add something else.
For making the plots, i think we could create a new script, something like pyveg_gee_summary_analysis.py that reads all files existing in a given directory (each file is a summary stat for a location), and produces all the plots we are going to do. I can create the scheleton of this script and then each one of us can create a function that makes an individual plot.
Any thoughts?

sounds like a good idea. definitely need coordinates added so it would be great if you could do that.

I would also include the Kendall tau values, I think there's something in the Kendall tau value of the variance compared to the offset50 values. I know the tau value of AR(1) is less important given we have already said an overall AR(1) would be better.
@jabrams23 I didn't want to edit your list but I think the same histograms with NDVI would be cool too.

you can go ahead and add it there or i will add it. I just thought it was good to have a full list at the top of the issue

I would also include the Kendall tau values, I think there's something in the Kendall tau value of the variance compared to the offset50 values. I know the tau value of AR(1) is less important given we have already said an overall AR(1) would be better.

We are getting the variance over the 99% of the time series (same for AR1) which is only 1 point, how would we do it to get the Kendall Tau of the variance in this case?

I would also include the Kendall tau values, I think there's something in the Kendall tau value of the variance compared to the offset50 values. I know the tau value of AR(1) is less important given we have already said an overall AR(1) would be better.

We are getting the variance over the 99% of the time series (same for AR1) which is only 1 point, how would we do it to get the Kendall Tau of the variance in this case?

Are we still doing it on a moving window even though we don't trust the AR(1) one? If so it would be the tau from that.


Add animated button (updated)

adding new button I was following as per the Readme.md file but older PR not able to deployed successfully, Please let me know any corrections are needed to merge!

When I try to resolve issues it's showing like please help me to resolve it @PoorviShetty @Vaishnavi2701-mk @PriyankaTamhankar01 @KhushiKhandelwal610 @Yashika-Agrawal @SonalGuptaa @shreya2713 @vishakha0411 @ShaikhHeeba07 @psychokot11 @mundadapurva


Add Iso between JsonObject and Map[String, Json]

Hmm, this wouldn't really be an isomorphism, though, since part of the contract of JsonObject is that it preserves order.

ah ok, I didn't know it was preserving order. Maybe we can define a Iso[JsonObject, ListMap[String, Json]] ?


IndexError: list index out of range

Hello,
I tried pmprimer with dataset “16S ribosomal RNA (rRNA) genes of Archaea”. But I've got the error IndexError: list index out of range using the command from your readme.md:
pmprimer -f Archaea_16SrRNA.rep.mc.fasta -a threshold:0.85 gaps:1.0 merge primer2 tm:45.0 -e hpcnt:600 save
More details:
pmprimer -f Archaea_16SrRNA.rep.mc.fasta -a threshold:0.85 gaps:1.0 merge primer2 tm:45.0 -e hpcnt:600 save

探测比对后序列的所有保守区域...
比对后序列的所有保守区域探测完毕
List Of Conservative Regions is :
[[7818, 8175], [10171, 11015], [11582, 13404]]
List Of Non Conservative Regions is :
[[8176, 10170], [11016, 11581]]

正在根据保守区间进行引物设计... 3/3
已经根据保守区间完成引物设计

正在根据保守区间进行二次引物提取... 3/3
已经根据保守区间完成二次引物提取

正在生成扩增子候选...
扩增子候选生成完毕 共3个
请注意引物设计和引物评估模块的的熔解温度可能存在差异 / Please Attention TM Of Primer Design Module & Primer Evaluate Maybe Exist Diff

扩增子分辨力为/ Resolution Of Amplicon：
Traceback (most recent call last):
  File "/home/evgen0805/.local/bin/pmprimer", line 8, in <module>
    sys.exit(entry())
  File "/home/evgen0805/.local/lib/python3.10/site-packages/piece/piecentry.py", line 97, in entry
    pc.maintrunk()
  File "/home/evgen0805/.local/lib/python3.10/site-packages/piece/piecemain.py", line 529, in maintrunk
    reso = pcel.evaluate_resolution()
  File "/home/evgen0805/.local/lib/python3.10/site-packages/piece/pieceevaluate.py", line 240, in evaluate_resolution
    idsplit = split_all_from_str(idallstr)
  File "/home/evgen0805/.local/lib/python3.10/site-packages/piece/piecebase.py", line 278, in split_all_from_str
    if (strsplit[3] == 'subsp.' or strsplit[3] == 'variant') and len(strsplit) > 4 :
IndexError: list index out of range

What might be causing this, and how could it be fixed?

This error has been fixed in the new code, and I will update the version in pypi later.

The latest version 1.0.4 has been pushed to pypi. Please upgrade to the latest version.


Inconsistent exceptions when indexing multi-dimensional Array

Description
Providing invalid indices for a multi-dimensional CLI Array may result in either TypeError, IndexError, or ValueError.
Example
>>> from System import Array
>>> rank3arr = Array[int](1, 1, 1)
>>> rank3arr[0, 0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: bad dimensions for array, got 2 expected 3
>>> rank3arr[0, 0, 0, 0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: Array does not have that many dimensions.
>>> rank3arr[0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: expected int, got str
>>> rank3arr[0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: expected int, got str
>>> rank3arr[0, 0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: expected int, got str

The question is, what would be a consistent error type?
In CPython, an invalid type of the index for, e.g. a list results in TypeError. However, lists are not multidimensional. For comparison, I use memoryview. It will always raise TypeError or NotImplementedError:
>>> rank3mv = memoryview(b"\0").cast('b', shape=(1, 1, 1))
>>> rank3mv[0, 0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NotImplementedError: sub-views are not implemented
>>> rank3mv[0, 0, 0, 0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot index 3-dimension view with 4-element tuple
>>> rank3mv[0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: memoryview: invalid slice key
>>> rank3mv[0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: memoryview: invalid slice key
>>> rank3mv[0, 0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: memoryview: invalid slice key

In NumPy, the above examples (except for fewer dimensions, which is allowed in NumPy) result in IndexError:
>>> import numpy as np
>>> rank3arr = np.array(1).reshape((1, 1, 1))
>>> rank3arr
array([[[1]]])
>>> rank3arr[0, 0]
array([1])
>>> rank3arr[0, 0, 0, 0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: too many indices for array: array is 3-dimensional, but 4 were indexed
>>> rank3arr[0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
>>> rank3arr[0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
>>> rank3arr[0, 0, 0, 'a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

Proposal
In all cases above report consistently one type of error. Personally I like NumPy's approach of always reporting IndexError, but  always reporting TypeError seems good enough and probably is easier to implement.

I guess I'm fine with either - this is probably the sort of edge case that's actually a bug and not something the user wants to catch anyway. I assume having the correct types/dimensions but indexing out of range will still be an IndexError?

I assume having the correct types/dimensions but indexing out of range will still be an IndexError?

Yes, out-of-range index value raises IndexError in all cases (IronPython, CPython, and NumPy) so it should stay so.


data conversion: qed-c to stochastic benchmark

Pratik, do we need to have all the data in the repository or can we have an example file/compressed folder and have only one or two as an example? We are generating intermediate files for the analysis anyways.
Let me know what you think about this.

I have removed the json files.

Comments have been addressed in a new commit.


Flutter reports corrupted archive if unzip is not installed

Steps to Reproduce
On a Linux machine without the unzip tool installed:

Clone a clean copy of the flutter repo.
Run flutter doctor, triggering the download of the Dart SDK and other archives.

Expected behaviour: download completes and a friendly error message is emitted complaining about the lack of unzip on the path.
Actual behaviour: flutter reports a corrupted archive and exits.
While some popular distros often ship with unzip, it's not required by POSIX and many distros don't ship with in pre-installed. We should check for unzip and fail gracefully if it's not found.
Logs
% flutter doctor
Downloading Dart SDK from Flutter engine 500f9cedf652cc4a4d33c94db77e258d2b10e257...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  192M  100  192M    0     0  10.0M      0  0:00:19  0:00:19 --:--:-- 10.5M
/home/chris/src/flutter/flutter/bin/internal/update_dart_sdk.sh: line 86: unzip: command not found

It appears that the downloaded file is corrupt; please try again.
If this problem persists, please report the problem at:
  https://github.com/flutter/flutter/issues/new?template=ACTIVATION.md

Probably overall low priority, but easy fix.

FWIW the same applies to the which command, which is often just a shell built-in, but which flutter_tools assumes is a binary on the path:
encountered exception: Invalid argument(s): Cannot find executable for which.

#0      _getExecutable (package:process/src/interface/local_process_manager.dart:127:5)
#1      LocalProcessManager.runSync (package:process/src/interface/local_process_manager.dart:94:30)
#2      _PosixUtils._which (package:flutter_tools/src/base/os.dart:150:49)
#3      OperatingSystemUtils.whichAll (package:flutter_tools/src/base/os.dart:52:43)
#4      AndroidSdk.locateAndroidSdk.findAndroidHomeDir (package:flutter_tools/src/android/android_sdk.dart:336:38)
#5      AndroidSdk.locateAndroidSdk (package:flutter_tools/src/android/android_sdk.dart:360:53)
#6      AppContext._generateIfNecessary.<anonymous closure> (package:flutter_tools/src/base/context.dart:104:41)
#7      _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:293:23)
#8      AppContext._generateIfNecessary (package:flutter_tools/src/base/context.dart:92:20)

Fixed via https://github.com/flutter/flutter/pull/55315/


settings_export: Add modal to select export_type before starting export.

First commit: #31708
Second commit:

Adds modal to select export_type + text updates as described in #31201

Third commit:

Adds "Type" column to the panel.

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

I made a slight wording tweak and moved the paragraph tag to give it some space before the note on how many users have consented:
diff --git a/web/templates/start_export_modal.hbs b/web/templates/start_export_modal.hbs
index 04901acd0d..d046ea6589 100644
--- a/web/templates/start_export_modal.hbs
+++ b/web/templates/start_export_modal.hbs
@@ -8,7 +8,7 @@
     {{/tr}}

-    {{t 'A standard export additionally includes private data who have allowed administrators to export their private data.' }}
+    {{t 'A standard export additionally includes private data accessible to users who have allowed administrators to export their private data.' }}

 <form id="start-export-form">

@@ -18,6 +18,6 @@
                 <option {{#if this.default }}selected{{/if}} value="{{this.value}}">{{this.description}}</option>
             {{/each}}
         </select>
-

+

 </form>

With those changes, this looks like a good checkpoint to merge. I posted about a couple details that still need attention in the issue thread, since they're not logically part of this change.


chore: add repository best practices

Feature Request
Describe the Feature Request
Organize the documentation and configurations of the repository.
Describe Preferred Solution
Add descriptions
Add issues Template
Create and move the following into a docs folder:

CODE_OF_CONDUCT.md
CONTRIBUTING.md
SECURITY.md

Reopening as it was lacking the refactor template


Copy data from right place

Modifications for values.yaml happen in modification-tmp folder, but copy data was from charts folder.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: utka
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sebastienvas
If they are not already assigned, you can assign the PR to them by writing /assign @sebastienvas in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

release/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@utka: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
e716982174c9b69604837d688f39b4afb00ee76e
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
e716982174c9b69604837d688f39b4afb00ee76e
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
e716982174c9b69604837d688f39b4afb00ee76e
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: mandarjog, utka
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sebastienvas
If they are not already assigned, you can assign the PR to them by writing /assign @sebastienvas in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

release/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/retest

is this fixed in 1.1.2?
i just downloaded 1.1.2, and I saw a few chart.yaml that I opened still have version 1.1.0.

I fixed it manually, which files still have 1.1.0?


Support for multiple keys

One more thing we noticed was that the @Key is not converted from snake_case to camelCase which causes issues if you have a key like my_magic_key.

One more thing we noticed was that the @Key is not converted from snake_case to camelCase which causes issues if you have a key like my_magic_key.

Nice catch!
I think it worth creating a new issue

Just use @key(fields='myMagicKey')

this didn't work for me because it's trying to call the resolver with this name and failing, will address feedback shortly.

@erebus1 I think this all good to go now, let me know if you have any more feedback.

Cool!
I'll check it & merge today

@jonnii

One more thing we noticed was that the @Key is not converted from snake_case to camelCase which causes issues if you have a key like my_magic_key.

Fixed: https://github.com/preply/graphene-federation/pull/19


Adding keepalive and ssh-related args from netmiko

CC @ktbyers

Coverage increased (+0.3%) to 88.014% when pulling 89dd1919663a9e693d74924c20bb89b93fe1ee52 on netmiko-args into a82de0c7b90160324de07a5811dd21ce4f2902e4 on master.

I think we should a **kwargs so that we can support any argument that Netmiko supports (so we don't need to keep updating this as Netmiko changes).

Yes, that makes sense @ktbyers! Closing this and I will submit another PR with the changes.


Add README.md and update config.vsh.yaml for JAE

Hi, Robrecht, I did not know it was automatically generated. Sorry for that.
Will close this PR and pull a new one. Thanks a lot!


use this datagridview

https://lavag.org/topic/19274-full-datagridview-for-labview-open-source-project-underway/
Tagline: its not a multicolumn list box

Created issues like #195 on the different repos, we have now the table API


Minutes interval Android side

I also need minutes interval on android side
I need to post a shift which could be starting from half hours

+1


离线安装，设置了镜像库，为啥子这基础应用全都Unhealthy

离线安装，设置了镜像库，为啥子这基础应用全都Unhealthy

If you would like to ask questions in Chinese, please add rancher3 to join
Rancher WeChat group. Thanks


Auto-report accounts of bots to Valve upon discovery in-game

I know that according to Valve's own site, they don't issue VAC bans based on reports alone; just for "tracking and statistics purposes". However, that might be precisely the problem, since not enough people bother to report hacker accounts to Valve in the wake of a kick vote (even if data was gathered via successful kick votes, the bots leave right before the vote actually goes through, rendering the vote unsuccessful), so Valve might not be aware of how widespread the problem is. If their reporting system regarding TF2 was flooded with credible complaints of the thousands of bots, however, it might force their hand in a way that actually fixes the problem.

Automatic reporting is against steam TOS

SteamIDs are already recorded in JSON playerlists in the cfg folder.

its time consuming and unintuitive to use the personal player list to see recent flags. And its much more time consuming if that is a hacker you already had flagged some time ago. I can see how a simple player history of the last TF2 launch or last day could be useful

Dupe of #140 and #111


Test.py does not use key pair test-key-rsa.pem?

I am trying to use a plain RSA public/private key pair to sign a message (not an RSA-PSS pair). I hit problems and looked at test.py for how it loads the public and private keys from files test-key-rsa.pem, test-key-rsa.key.  Then I realized, those files are not currently used in a test. Please tell me, is that just an oversight, or is there something about plain (non-PSS) RSA keys that makes this impossible?
If I succeed in creating a test I'll post the code here.

That's correct. The test directory contains all example key material from
the RFC/draft standard, but that particular key is only used in the proxy
passthrough signature example, which we do not currently test for. So that
key is not in use.
On Fri, Jul 15, 2022 at 8:07 AM Chris Lott @.***> wrote:

I am trying to use a plain RSA public/private key pair to sign a message
(not an RSA-PSS pair). I hit problems and looked at test.py for how it
loads the public and private keys from files test-key-rsa.pem,
test-key-rsa.key. Then I realized, those files are not currently used in a
test. Please tell me, is that just an oversight, or is there something
about plain (non-PSS) RSA keys that makes this impossible?
If I succeed in creating a test I'll post the code here.
—
Reply to this email directly, view it on GitHub
https://github.com/pyauth/http-message-signatures/issues/3, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGSOPM5JBOW35A5EKML3SDVUF5CLANCNFSM53V4OA6A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Publish supergraph chart every update

As discussed, uses the semver 2.0 build suffix to denote the number of commits since the last tag - this is published with every commit.
We should think about if we need to publish on every commit or just the ones which touch relevant files and how we de-duplicate / clean these up in the near future

Just to check, is the intent here to publish every commit ever or just every commit to main?

Every commit to main. Have I messed something up?

This does appear to publish on pushes to non-main branches, because it's published from this branch: https://github.com/DiamondLightSource/graph-federation/actions/runs/11614683123/job/32343444006?pr=66
I wasn't sure though, so I finally got around to playing with act, which wasn't as hard to set up as I thought. I think you need an additional check somewhere to stop it from running on other branches, probably in the if condition for the job?

This does appear to publish on pushes to non-main branches, because it's published from this branch: https://github.com/DiamondLightSource/graph-federation/actions/runs/11614683123/job/32343444006?pr=66
I wasn't sure though, so I finally got around to playing with act, which wasn't as hard to set up as I thought. I think you need an additional check somewhere to stop it from running on other branches, probably in the if condition for the job?

Should be resolved now with a check for it being a pull with a ref of a tag or the main branch


Support for markup:  *bold*, /italic/, _underlined_, =verbatim=, ~code~ and +strike-through+

Is it a non-goal of the project to support markup elements or would you be open to contributions implementing it?
i.e. *bold*, /italic/, _underlined_, =verbatim=, ~code~ and +strike-through+
Technically in org-mode the characters for each type of markup can be configured through the org-emphasis-alist variable [1], but it doesn't seem very common to radically alter it [2]. From a cursory glance, people seem to be mostly altering it to change colors.
Supporting markup would be pretty useful for syntax highlighting.
I'm curious what your take on it is, before I start that effort (or maybe you've already have)?

It is a non-goal of this project. I had previously implemented them and they were a comparative nightmare to get to function properly. Outside implementation difficulty, there are edge cases like */bold-italic/* is not supported by default, but some people prefer it to be enabled.
So, if you want the markup supported by tree-sitter, it's easier in my opinion to create a secondary parser and inject it into the places we want markup to be parsed.


Set start_epoch to zero when -1.0 before composing

Fixes https://github.com/neuralmagic/sparseml/issues/970

good fix!


Power state for ec2 instance

If you terminate the ec2 instance on 5.5 you will get power state = "terminated", however on upstream the power state will be "off". I didn't find any information that in new version power state is going to be "off", that's why I assume that we have an issue.

/cc @blomquisg @durandom

currently we ignore terminated instances on a refresh:
https://github.com/ManageIQ/manageiq/blob/b263fadbcd1cf699e2e045734ada92c77cb86422/config/vmdb.tmpl.yml#L74
If you change that to false the power state will be updated to terminated - otherwise it will remain as off.
@lehinevych As this has been the case since a looong time, I guess this is also the way it works on 5.5. Can you check on the value on this setting in your installations?
@blomquisg whats the reasoning behind ignoring terminated instances?
with the default setting, as above, wouldnt they remain in 'off' state forever?
Or will 'terminated' instances be cleared from vmdb in another garbage collector like task?

@durandom I checked the setting in my installation on 5.5 and the ignore_terminated_instances is true, however when you terminate the instance the power state become "suspended" and then "terminated".

@lehinevych I checked this again with <IP_ADDRESS>.20160127105142_395c086 and current master

state (5.5)
state_changed_on

on
Mar 18 08:17

suspended
Mar 21 14:19

off
Mar 21 14:25

state (master)
state_changed_on

on
Mar 21 17:04

suspended
Mar 21 18:12

terminated
Mar 21 18:20

off
Mar 22 07:01

Can you check again, if the state remains in terminated on 5.5 for you?

@durandom  I tested against <IP_ADDRESS>.20160318152106_92d2d67 and the behavior is the same as you described for master.

@blomquisg could you close this issue, please? The fix has been merged

now instance becomes "terminated". this issue may be closed

@blomquisg please close this, thanks

@blomquisg or @chessbyte Please close.

@lehinevych as the reporter, can you close this issue.


Add auto-stop option to $sync.start()

project.$sync.start() should take an option, autostopAfter, which is a millisecond duration.
Once sync has been finished for that number of milliseconds, data sync should be stopped.

#611 addresses this almost completely.


Issue with XpandLayoutManager

I need to customize WebLayoutManager to avoid large gaps between the editor and its caption. I follow this link https://github.com/DevExpress-Examples/how-to-customize-weblayoutmanager-to-avoid-large-gaps-between-the-editor-and-its-caption-t228434/tree/17.1.3%2B/CS/WebLayoutSolution.Module.Web. I run project from this link, everything is fine, I can change gaps between the editor and its caption. But when I include WebLayoutManagerEx in this project into my project. The WebLayoutManagerEx has no effect, I cannot change the gaps. According to Devexpress document, to change LayoutManager, I need to override XafApplication.CreateLayoutManagerCore. In my application, I've already override that function and return WebLayoutManagerEx but I don't know why that have no effect. I've already debug my project and find out somehow the LayoutManager is XpandLayoutManager even without override CreateLayoutManagerCore. If I change WebLayoutManagerEx to inherit XpandLayoutManager instead WebLayoutManager, everything is fine, I can change the gaps. But I don't know is there any potential issue if i do it that way

yes eXpandFramework changes the LayoutManager and sure you are safe to derive from XpandLayoutManager instead.

I am sorry bad answer, I patched the source code to allow to override. For this you need to provide a class that implements the Xpand.Persistent.Base.General.ILayoutManager at least.

no need to override any method the XafTypesInfo should be able to detect your custom provider.
at least it did on my side.

yes eXpandFramework changes the LayoutManager and sure you are safe to derive from XpandLayoutManager instead.

I've dug into the Xpand source code but I cant find the code that switch the LayoutManager to XpandLayoutManager

I am sorry bad answer, I patched the source code to allow to override. For this you need to provide a class that implements the Xpand.Persistent.Base.General.ILayoutManager at least.

So you mean inherit directly from XpandLayoutManager is not safe. Before your answer, I've already try to inherit XpandLayoutManager with unpatched Xpand . Everything is fine. I just afraid of potential issues

no need to override any method the XafTypesInfo should be able to detect your custom provider.
at least it did on my side.

Ok, I'll try this way

no need to override any method the XafTypesInfo should be able to detect your custom provider.
at least it did on my side.

By the new way, WebLayoutManagerEx  inherit from WebLayoutManager (no need inherit from XpandLayoutManager) and ILayoutManager. WebLayoutManagerEx  run properly and I can change the gaps between items and captions. But I still need to override CreateLayoutManagerCore. Without overriding, the application is error "Constructor does not exist". Stack trace:
at Fasterflect.Emitter.LookupUtils.GetConstructor(CallInfo callInfo)
at Fasterflect.Emitter.CtorInvocationEmitter.CreateDelegate()
at Fasterflect.Emitter.BaseEmitter.GetDelegate()
at Fasterflect.ConstructorExtensions.DelegateForCreateInstance(Type type, Flags bindingFlags, Type[] parameterTypes)
at Fasterflect.ConstructorExtensions.DelegateForCreateInstance(Type type, Type[] parameterTypes)
at Fasterflect.ConstructorExtensions.CreateInstance(Type type, Object[] parameters)
at Xpand.Persistent.Base.General.ViewExtensions.get_LayoutManager()

the exception is pretty clear, you need a parameterless ctor in you WebLayoutManagerEx

Exactly. Tks @apobekiaris


cKDTree reduce redundant distance code.

Currently, query_knn and the rest of cKDTree uses two separate sets of code for calculating distance.
They can be merged without much performance penalty. This may help clearing up https://github.com/scipy/scipy/issues/5657 and https://github.com/scipy/scipy/pull/6663

There is also redundancy with respect to the C code behind scipy.spatial.distance.

I agree that this should be cleaned up. We don't need three (or more?) copies of the same code in scipy.spatial.*.

This is being worked out on #6945 . I think I gradually realized there wasn't much redundancy in ckdtree itself. We could probably wrap spatial.distance to the same code as a separate PR?

This could probably be closed now, given the merging of #6945 back in '17 :)