Setting persistency index in temporal filter with pyrealsense2 has no effect

I just figured it out.
As this thread reveals

Selecting persistence mode is done via RS2_OPTION_HOLES_FILL

As for Python, the attribute is "rs.option.holes_fill".
Originally posted by @lihk11 in https://github.com/IntelRealSense/librealsense/issues/1672#issuecomment-508308087

In regards to pyrealsense2, I followed the above solution but it has no effect.
#assuming import pyrealsense2 as rs
temporal = rs.temporal_filter()
temporal.set_option(rs.option.holes_fill, persistency_index)
depth = temporal.process(depth)

From the realsense viewer I can see a huge difference when changing this value but in the python script, changing the values has no effect on the stream. I can also verify that the option was set with:
 print(rs.options.get_option(temporal, rs.option.holes_fill))
for some reason the option is not being applied or at least I'm not seeing the result when using python. This does return the value of persistency_index which I set but I am not seeing any difference in the stream. Setting the same option in the realsense viewer has an obvious result. The recording when played with python looks the same as when played with realsense viewer but with the persistency index disabled.

Hi @amirf147  May I first ask if you have defined a value for persistency_index so that the script knows which of the persistency modes (0-8) to apply, please?
The effect that is applied with modes 1-8 is described in the official pyrealsense2 documentation link below.
https://intelrealsense.github.io/librealsense/python_docs/_generated/pyrealsense2.temporal_filter.html
Intel's post-processing guide in the link below defines '0' as "Disabled - The Persistency filter is not activated and no hole filling occurs".  If a float variable persistency_index was defined but a value not stored in it then I would speculate that the value of the variable would default to '0' - where the Persistency filter is not activated.
https://github.com/IntelRealSense/librealsense/blob/master/doc/post-processing-filters.md#temporal-filter

Yes i defined a value for persistency_index and i tried all the values. I was also able to confirm that the value was loaded to the option with the print statement that i showed.

And you have placed your filter instructions after the pipe start instruction like in https://github.com/IntelRealSense/librealsense/issues/1672#issuecomment-387438447 ?
Would it be possible to post your full Python script into a comment, please?

camera_setup.py
`import numpy as np
import pyrealsense2 as rs
class RealSenseCamera:
def __init__(self, ros_bag = None):

    # Used if openings stream from prerecorded ros .bag file
    # holds the path to the .bag file
    self.ros_bag = ros_bag

    # Data variables that will be set with get_data()
    self.depth_frame = None
    self.color_frame = None
    self.infrared_frame = None
    self.color_intrinsics = None
    self.depth_scale = None

    # Post Processing Filter variables with default values
    # https://dev.intelrealsense.com/docs/post-processing-filters

    # Decimation filter variable
    self.decimation_magnitude = 2

    # Spatial filter variables
    self.spatial_magnitude = 5
    self.spatial_smooth_alpha = 1
    self.spatial_smooth_delta = 50
    self.spatial_holes_fill = 0

    # Temporal filter variables
    self.temporal_smooth_alpha = 0.4
    self.temporal_smooth_delta = 20
    self.persistency_index = 7

    # Holes Filling filter variable
    self.hole_filling = 1

    # Holds the data frame after it has undergone filtering
    self.processed_depth_frame = None

    # Configure and start streams
    self.pipeline = rs.pipeline()
    config = rs.config()
    if ros_bag:
        config.enable_device_from_file(self.ros_bag)
    else:
        config.enable_stream(rs.stream.depth, rs.format.z16, 30)
        config.enable_stream(rs.stream.color, rs.format.bgr8, 30)
        config.enable_stream(rs.stream.infrared, rs.format.y8, 30)
    self.profile = self.pipeline.start(config)

    # Get depth scale
    depth_sensor = self.profile.get_device().first_depth_sensor()
    self.depth_scale = depth_sensor.get_depth_scale()

def get_data(self, aligned_to_color = False, aligned_to_depth = False,
               aligned_to_infrared = False):

    # Trying to align to infrared will be ignored. Just align to depth and it is the
    # same thing since LiDAR uses infrared. TODO: remove align to infrared option

    '''Gets the frames as numpy arrays and get other data'''

    align_to_options = [aligned_to_color,aligned_to_depth,aligned_to_infrared]
    streams = [rs.stream.color, rs.stream.depth, rs.stream.infrared]

    # Validate that only 1 aligned_to_... variable is true
    if align_to_options.count(True) > 1:
        raise Exception("Can't align to more than one type of frame")

    # Determine which frame we are aligning the other frames to
    align_to = [stream for stream in streams
                if align_to_options[streams.index(stream)]]

    frames = self.pipeline.wait_for_frames()

    if align_to:
        align_to = align_to.pop()
        align = rs.align(align_to)
        frames = align.process(frames)

    self.depth_frame = frames.get_depth_frame()
    self.color_frame = frames.get_color_frame()
    self.infrared_frame = frames.first(rs.stream.infrared)
    self.color_intrinsics = self.color_frame.profile \
                            .as_video_stream_profile() \
                            .intrinsics

def filter_depth_data(self,
                      enable_decimation = False,
                      enable_spatial = False,
                      enable_temporal = True,
                      enable_hole_filling = True):

    '''Apply a cascade of filters on the depth frame'''

    # https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/depth_filters.ipynb

    depth_to_disparity = rs.disparity_transform(True)
    disparity_to_depth = rs.disparity_transform(False)

    depth = self.depth_frame
    # DECIMATION FILTER
    if enable_decimation:
        decimation = rs.decimation_filter()
        decimation.set_option(rs.option.filter_magnitude, self.decimation_magnitude)
        depth = decimation.process(depth)

    # SPATIAL FILTER
    if enable_spatial:
        spatial = rs.spatial_filter()
        depth = spatial.process(depth)

        spatial.set_option(rs.option.filter_magnitude, self.spatial_magnitude)
        spatial.set_option(rs.option.filter_smooth_alpha, self.spatial_smooth_alpha)
        spatial.set_option(rs.option.filter_smooth_delta, self.spatial_smooth_delta)
        depth = spatial.process(depth)

        spatial.set_option(rs.option.holes_fill, self.spatial_holes_fill)
        depth = spatial.process(depth)

    # TEMPORAL FILTER
    if enable_temporal:
        temporal = rs.temporal_filter()
        temporal.set_option(rs.option.holes_fill, self.persistency_index)
        depth = temporal.process(depth)

    # if enable_temporal:
    #     temporal = rs.temporal_filter(0.40, 40, 8)
    # HOLE FILLING
    if enable_hole_filling:
        hole_filling = rs.hole_filling_filter()
        hole_filling.set_option(rs.option.holes_fill, self.hole_filling)
        depth = hole_filling.process(depth)

    self.processed_depth_frame = depth
    print(rs.options.get_option(temporal, rs.option.holes_fill))
def frame_to_np_array(self, frame, colorize_depth = False):
    # Create colorized depth frame
    if colorize_depth:
        colorizer = rs.colorizer()
        frame_as_image = np.asanyarray(colorizer.colorize(frame).get_data())
        return frame_as_image
    frame_as_image = np.asanyarray(frame.get_data())
    return frame_as_image

def stop(self):
    self.pipeline.stop()`

opencv_stream.py
`import cv2
from camera_setup import RealSenseCamera
ros_bag = "C:\Users\35840\Documents\20211217_204044.bag"
Initialize the camera
camera = RealSenseCamera(ros_bag)
apply_filter = True
try:
while True:
camera.get_data() # Load the object's variables with data
depth_frame = camera.depth_frame
color_frame = camera.color_frame
infrared_frame = camera.infrared_frame
color_intrin = camera.color_intrinsics
    # apply filtering to depth data
    if apply_filter:
        camera.filter_depth_data(enable_decimation = False,
                                enable_spatial = False,
                                enable_temporal = True,
                                enable_hole_filling = False)

        depth_frame = camera.processed_depth_frame
        print('filters applied')

    depth_image = camera.frame_to_np_array(depth_frame, colorize_depth=True)

    image_to_be_shown = depth_image
    image_name = 'filtered depth'

    img = cv2.resize(image_to_be_shown, (640, 480))
    cv2.imshow(image_name, img)

    key = cv2.waitKey(1)

    # Press esc or 'q' to close the image window
    if key & 0xFF == ord('q') or key == 27:
        cv2.destroyAllWindows()
        break

finally:
camera.stop()`

hopefully you can understand that. for some reason not everything stayed in the code block. the program works without errors and displays the frames. just the filter is not applied

applying the other filters does work though, or atleast they have some noticeable effects which would cause me to conclude that they are working. the only one not seeming to work is the temporal filter

The first observation I would make about your script is that it is recommended that align is applied after post-processing filters are applied.  If alignment is done before post-processing then it can result in issues such as 'aliasing' distortion (jagged lines).
Also, Intel recommend that when using multiple post-processing filters, they are applied in a specific order described in the link below.
https://dev.intelrealsense.com/docs/post-processing-filters#section-using-filters-in-application-code

In your script, the filters are listed in this sequential order:
Decimation > Spatial > Temporal > Hole-Filling
This is the same order that Intel recommend.  Although the application of the filters is dependent on an If condition being true, since the program would process the lines of the script sequentially from top to bottom then I would assume that even if some filters were not applied and skipped over because they were not set to True, the ones that were enabled should be applied in the correct order.  So that code is likely okay.
If the temporal filter is being used for the purpose of hole-filling and the Hole-Filling filter is being applied afterwards then I wonder if it might become more obvious if the temporal filter is having the intended hole-filling effect if the Hole-Filling filter was set to false so that it was not duplicating the hole-filling work.  Perhaps the temporal filter would not even be needed if Hole-Filling can fill the holes on its own.

I am wondering why it looks different in my python code than in my realsense viewer. I am not using rs.align currently, only just filtering the depth stream.
Enabling temporal filter in realsense viewer:

Enabling temporal filter with my python code with the same values as the realsense viewer:

Enabling all filters in the recommended order in my python code:

Could it be that you have to explicitly enable noise filtering in the python code?  Is there other settings that have to be enabled explicitly in the python code as well for it to look the same as in the realsense viewer?

The RealSense Viewer applies a range of post-processing and depth colorization settings by default when launched.  When creating your own application such as a Python script, these defaults for filters are not included and you must manually program them into your script yourself to more closely replicate the images produced by the Viewer.
I did experimentation with the Viewer settings to try to replicate your results.  Your image with the numerous horizontal lines seemed to be replicable if applying a Spatial filter and setting its Hole Filling function to a high value such as Unlimited.

The first observation I would make about your script is that it is recommended that align is applied after post-processing filters are applied. If alignment is done before post-processing then it can result in issues such as 'aliasing' distortion (jagged lines).

Could you please provide a basic python script about how to align post filtered depth frame as the rs.align::process() requires rs2::frameset object and I don't know how to set the post filtered depth frame into the original frameset.

The first observation I would make about your script is that it is recommended that align is applied after post-processing filters are applied. If alignment is done before post-processing then it can result in issues such as 'aliasing' distortion (jagged lines).

Could you please provide a basic python script about how to align post filtered depth frame as the rs.align::process() requires rs2::frameset object and I don't know how to set the post filtered depth frame into the original frameset.

`Import pyrealsense2 as rs
frameset = self.pipeline.wait_for_frames()
decimation = rs.decimation_filter()
decimation.set_option(rs.option.filter_magnitude, 4)
frameset = decimation.process(frameset).as_frameset()
align_to = rs.stream.color
align = rs.align(align_to)
frameset = align.process(frameset)
depth_frame_aligned = frameset.get_depth_frame()
`

https://github.com/IntelRealSense/librealsense/issues/2356#issuecomment-465766323 provides a simple Python example of applying align after a post-processing filter.
A more complex full-script example is at https://github.com/IntelRealSense/librealsense/issues/2870#issuecomment-446195769

Hi @amirf147  Do you require further assistance with this case, please?  Thanks!

While the issue that I originally raised still stands.  I've tried many different combinations of the filters with the options that I mentioned above but the temporal filter still shows no effect or difference when on or off or with any combination of the other filters and their options. When using the realsense viewer it is obvious that changing the temporal filter values makes huge changes to the depth stream but when setting the same options with my python code, I see no changes. So I'm wondering is there some other filter or option that needs to be explicitly set with the python code for the temporal filter to do anything?

Ok I think I see my problem now, the filter has to be applied to a set of frames, not just one at a time. I will try that and get back to you.

Thanks very much @amirf147 for the update - I look forward to your next report.  Good luck!

@MartyG-RealSense OK it looks like the temporal filter is working when I just do it in a simple one page script.  So it looks like the reason it's not working for me has something to do with the fact that my code tried to separate out the frame creation or filtering in a separate class.  I do appreciate all your input and I learned several things along the way which have been helpful in adding more features to my program.  I can conclude that the temporal filter is working correctly and the issue was with my code.  Thanks again.

You are very welcome.  Thanks for your detailed feedback about your success  :)

Hi @amirf147  Do you require further assistance with this case, please?  Thanks!

@MartyG-RealSense no, I figured out it was my code that was the problem. Thank you!

Okay, thanks very much for the confirmation.  I will therefore close this case as a solution has been achieved.  Thanks again!

Ok I think I see my problem now, the filter has to be applied to a set of frames, not just one at a time... Edit: though i thought I was doing that in my code.. I'm now wondering if the previous frame is not remembered in my code now? I guess I will try a simpler 1 page script and see if it works.

Hi @amirf147, I'm stuck in the same situation you described: I have a sequence of filters that I want to apply to a depth frame, including a temporal filter. I was setting and applying the temporal filter as:
rs2::temporal_filter temp_filter;
temp_filter.set_option(RS2_OPTION_FILTER_SMOOTH_ALPHA,0.4f);
temp_filter.set_option(RS2_OPTION_FILTER_SMOOTH_DELTA,20.f);
temp_filter.set_option(RS2_OPTION_HOLES_FILL,8);
...
frame = frame.apply_filter(temp_filter); // Temporal filter
I read from your preview answers that I should apply it to a set of frames, do you intend like:
auto allFrames = pipe.wait_for_frames();
allFrames = temp_filter.process(allFrames); // Temporal filter
Because I tried to do it and it seems not working, could you please help me?
Thanks :)

Hi @Co-stoletta  It looks as though you are using C++ language.  Another RealSense C++ user recently had problems with applying temporal and spatial filters as it seemed as though the filters were being destroyed.  A solution that worked in their particular case was to place the filters inside a 'for' loop, as shown in https://github.com/IntelRealSense/librealsense/issues/10201#issuecomment-1026638054

Intel also make use of applying a filter inside a for-loop in their official C++ post processing example program.
https://github.com/IntelRealSense/librealsense/blob/master/examples/post-processing/rs-post-processing.cpp#L126-L130

Hi @Co-stoletta It looks as though you are using C++ language. Another RealSense C++ user recently had problems with applying temporal and spatial filters as it seemed as though the filters were being destroyed. A solution that worked in their particular case was to place the filters inside a 'for' loop, as shown in #10201 (comment)

Intel also make use of applying a filter inside a for-loop in their official C++ post processing example program.
https://github.com/IntelRealSense/librealsense/blob/master/examples/post-processing/rs-post-processing.cpp#L126-L130

Hi @MartyG-RealSense, firstly thanks for your fast answer. Regarding the first part of your comment: at the moment every single frame (pipe.wait_for_frames()) is inside a while cycle where the control state is if the STOP button is pressed or not (see the next line)
while(!isInterruptionRequested())
{
...
auto allFrames = pipe.wait_for_frames();
...
}
So I think that is as I should do. In fact, my C++ code works well, the only problem is the application of the temporal filter.
Regarding the second part of your answer, I have to try it, after lunch I will try and I will give you a response.
Thanks! :)

Hi @MartyG-RealSense, I wasn't able to create the vector of filters and to apply it so I'm stuck again, wish I will solve it rapidly.
Thanks.

Does the example script shared in https://github.com/IntelRealSense/librealsense/issues/1658#issuecomment-387356272 correctly apply the temporal filter if you run the script?

Hi @MartyG-RealSense, I tried the script (with little adjustments to let it work with my code):
rs2::pointcloud pc;
rs2::points points;
rs2::spatial_filter spat_filter;
rs2::temporal_filter temp_filter;

rs2::frameset frames;
rs2::frameset framesf;
rs2::frameset aligned_frames;

rs2::align align(rs2_stream::RS2_STREAM_COLOR);

rs2::pipeline pipe;
auto profile = pipe.start();

spat_filter.set_option(rs2_option::RS2_OPTION_FILTER_MAGNITUDE, 5.0f);
spat_filter.set_option(rs2_option::RS2_OPTION_FILTER_SMOOTH_DELTA, 50.0f);
spat_filter.set_option(rs2_option::RS2_OPTION_FILTER_SMOOTH_ALPHA, 0.3f);

temp_filter.set_option(rs2_option::RS2_OPTION_FILTER_SMOOTH_DELTA, 100.0f);
temp_filter.set_option(rs2_option::RS2_OPTION_FILTER_SMOOTH_ALPHA, 0.3f);

while(!isInterruptionRequested())
{
    frames = pipe.wait_for_frames();
    aligned_frames = align.process(frames);

    // auto depth = framesf.get_depth_frame();
    rs2::frame depth;
    for (auto&& f : aligned_frames)
    {
        if (f.get_profile().format() == RS2_FORMAT_Z16)
            depth = f;
    }

    depth = spat_filter.process(depth);//apply filter
    depth = temp_filter.process(depth);//apply filter
    points = pc.calculate(depth);

    // Una volta prelevata l'immagine ed applicati gli eventuali filtri
    // non rimane che pusharla dentro il CB
    auto ucharptr = reinterpret_cast<unsigned char *>
                    (const_cast<void *>(depth.get_data()));
    // Prendo le dimensioni dal frame
    int w = 640;
    int h = 480;
    // Creo un frame di appoggio
    Frame video_frame;
    // Lo sistemo per accogliere il frame preso dal LIDAR
    video_frame.width = w;
    video_frame.height = h;
    video_frame.data.resize(w * h /*RGB*/);
    memcpy(video_frame.data.begin(), ucharptr, size_t(w * h));

    // Ora che video_frame è la copia esatta di ciò che avevo preso dal
    // LIDAR, lo posso pushare dentro il CB
    m_cb.push(video_frame);
    // Non mi serve un altro thread che prenda questo frame e lo mandi a MW,
    // Basta emettere un segnale a MW e lui si occuperà di prendere e far
    // visualizzare quel frame
    emit frameReady();
}

As you can see the first part is exactly what is writed in the #1658, plus a way to convert it in "raw" data and emit it.
What i see is posted below:

I think there is some bug that I can't see.
Thanks!

@MartyG-RealSense I SOLVED IT!!
To all the guys that are stacked in the same problem, you should use the code from the #1658 comment but you should change the align with:
rs2::frameset aligned_frames;
rs2::align align(rs2_stream::RS2_STREAM_DEPTH);
Now with this modification and this filter sequence application:
frame = temp_filter.process(frame); // Temporal filter
frame = thr_filter.process(frame); // Threshold filter
frame = color_filter.process(frame); // Color filter
I get:

(it's not easy to see from the image but the temporal filter is on, if I move my body I can clearly see it)
Thanks!

@amirf147
Hello,
Would you mind sharing your simple one page script?
When I use the following simple code, the temporal filter also has no effect. In this code, I just initialize a temporal filter, grab 10 framesets, put these 10 framesets through the filter, align the last one depth frame with the color frame.
`   temporal = rs.temporal_filter()
temporal.set_option(rs.option.filter_smooth_alpha, 0.000001)
temporal.set_option(rs.option.holes_fill, 8)
# Grab 10 images
for x in range(10):
    frameset = pipeline.wait_for_frames()
    frame = temporal.process(frameset)
    if x == 9:
        aligned_frameset = align.process(frameset)
        depth_frame = aligned_frameset.get_depth_frame()
        color_frame = aligned_frameset.get_color_frame()
        depth_image = np.asanyarray(depth_frame.get_data())
        color_image = np.asanyarray(color_frame.get_data())`


feat: automatic install script

Untested on Windows (Cygwin/MinGW) and macOS, but it should work both places as long as you can run bash.

While I think this script is helpful, it requires a lot of external dependencies and I'd like to point anyone interested in it at using our Docker images instead. It will remain existing in this branch but won't be maintained.


Show token art if not default token

Is it possible to add a setting here that shows character art unless the token portrait is not the default portrait? It would sort of be like the wildcard option.

This will come in handy when using modules like Token Variant Art. Right now if I change a token to variant art, I'd rather have it show the token image than the character art.

Yes, this is also handy when using TVA to change the token art for creatures who can disguise themselves, like doppelgangers.  As is currently, after you change the token art you also have to change the hover image to match it manually.

Ahh, I had made a similar request already: https://github.com/Eriku33/Foundry-VTT-Image-Hover/issues/60


BUG: new reference is not decreased due to the return NULL statement in macro import_array (static analyzer reports)

Due to the return NULL statement in macro import_array provided by NumPy, the following new references are leaked.
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/integrate/_odepackmodule.c#L830
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/integrate/_quadpackmodule.c#L34
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/interpolate/src/_fitpackmodule.c#L1555
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/ndimage/src/nd_image.c#L1184
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/optimize/_lsap_module.c#L121
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/optimize/_minpackmodule.c#L34
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/signal/_sigtoolsmodule.c#L1418
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/signal/_splinemodule.c#L559
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/sparse/sparsetools/sparsetools.cxx#L570
https://github.com/scipy/scipy/blob/d5e46add54425278eb7022e4d49f92e02b96ce8c/scipy/spatial/src/distance_wrap.c#L855
Internal Report IDs: 0bfe48 77bbba a43576 3eb20e e2207c be4614 24e435 076730 da7180 bb9ac7

Thanks for all the reports @Snape3058. What static analyzer are you running? And is this a regression, or is it the first time you ran your analysis?

Regarding this particular report, I'm not sure that is easy to change - this is idiomatic use, as shown in for example https://numpy.org/devdocs/user/c-info.ufunc-tutorial.html#example-numpy-ufunc-for-one-dtype. This is during extension module initialization, so if that fails there are larger problems than a leaking reference.

Is it possible to flip the order?  Quickly googling around I found this guidance proposing initializing numpy first and then only after that success is asserted creating the module:
    assert(! PyErr_Occurred());
    import_numpy(); // Initialise Numpy
    if (PyErr_Occurred()) {
        return NULL;
    }
    ...
    return PyModule_Create(&spammodule);

Granted that is for import_numpy(), but I assume it should work for import_array() as well (the error checking appears to be the same for both)

@rgommers

What static analyzer are you running?

It is a new experimental checker for Clang Static Analyzer. And it is a part of my research that started in 2019 and has not been published yet.

And is this a regression, or is it the first time you ran your analysis?

The reports are from the first time I ran the analyzer on this project. Although these reports were legacy reports a couple of months ago, I have confirmed that such problems still exist in the latest version.

I'm not sure that is easy to change

Since I also found similar bugs in NumPy (issue 21532), I definitely know it is difficult and of low priority to fix such bugs. However, as an analyzer vendor and to satisfy my paper reviewers, I have to submit them to prove the effectiveness of my research.
I think the suggestion from @mckib2 seems to be a good idea and worth trying, as there are no data dependencies between import_array and the module you are initializing. Maybe we can also use this solution to fix the bugs in NumPy and its programming guidelines if it works for this project.

This is during extension module initialization, so if that fails there are larger problems than a leaking reference.

The developers of NumPy also said this. However, module importing can be wrapped with a try block, and a failed importing does not always means program termination (e.g. try an alternative module). Therefore, I think although it is of low priority, it is still worth fixing.

Thanks for the context @Snape3058. Good luck with publishing and upstreaming into Clang.

I think the suggestion from @mckib2 seems to be a good idea and worth trying, as there are no data dependencies between import_array and the module you are initializing. Maybe we can also use this solution to fix the bugs in NumPy and its programming guidelines if it works for this project.

Yes I agree, that should work.

I definitely know it is difficult and of low priority to fix such bugs. However, as an analyzer vendor and to satisfy my paper reviewers, I have to submit them to prove the effectiveness of my research.

In case it helps with your reviewers, let me just say that they weren't all that difficult to fix, and they were all valid bugs that are worth fixing.

@rgommers Thanks a lot. I will try my best to edit my paper and make it get published asap.

@Snape3058 Hi. Could you kindly share a link or the title of ur paper if it has been published? I am very interested in ur work. Your research sounds fascinating!

@wzrycj I am very glad that you like my work.
Paper pre-print: http://lcs.ios.ac.cn/~maxt/PyRefcon/ASE-2023.pdf (accepted at ASE-2023, not published yet)
Experimental data: http://lcs.ios.ac.cn/~maxt/PyRefcon


[Feature] Add piperider serve command

PR checklist

[x] Ensure you have added or ran the appropriate tests for your PR.
[x] DCO signed

What type of PR is this?
Feature
What this PR does / why we need it:
Add piperider serve command to serve a local server

Leaving these topic here for later discussion in this Draft PR:

Let's figure out if server-side static-file serving is the correct architectural approach.
Consider keeping the backend layer's responsibility as a data provider
Consider making the indexReport a SPA application (free of static fileserver routes)

After discussion with @ctiml  and @jonycfu, we will close this PR without merge.


change has('nvim') statement

I think it is better for non-neovim users

LGTM. Thank you! Cheers❤


mat: generalise basic arithmetic vector operations

Please take a look.
Updates #167.

MulVec is more difficult to do in a sensible way.


docs: generate Java models which include JavaDocs

Description

Created example to show how to generate Java data models with JavaDocs in https://github.com/sudiptog81/modelina/tree/feat/javadoc-426/examples/java-generate-javadoc.
Updated documentation in https://github.com/sudiptog81/modelina/blob/feat/javadoc-426/examples/README.md and https://github.com/sudiptog81/modelina/blob/feat/javadoc-426/docs/languages/Java.md#include-javadoc-for-properties.
Performed the implementation for the example.
Updated snapshot for test.
Tests are passing :)

Related issue(s)

Resolves #426.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.713%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1952

Relevant Lines:
1997

💛  - Coveralls

@sudiptog81 I can see that you have changed the title of the test, so you need to update the snapshot 🙂 npm run test -- -u


Version 2021-02-13

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Update to version 2021-02-13.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please restart ci


Make queueingStrategy mutable

What would you like to be added:
Make queueingStrategy in a ClusterQueue mutable.
This would cause a regeneration of the ClusterQueue priority queue in the kueue cache.
Why is this needed:
Currently, changing the strategy is only possible by draining the ClusterQueue, deleting and recreating.
Users might want to experiment with one strategy and later switch if they find that it doesn't suite their needs.
Completion requirements:
This enhancement requires the following artifacts:

[ ] Design doc
[x] API change
[ ] Docs update

The artifacts should be linked in subsequent comments.

/assign @mimowo


Lastest nuget version doesn't contain the latest fix

Hi @vain0x,
After updated to the latest version of the nuget package, I still have the issue fixed by my PR on my app.
So I used DotPeek to uncompile the latest version and found that the code doesn't contain my latest fix.
Uncompiled version :

Current source :
https://github.com/vain0x/DotNetKit.Wpf.AutoCompleteComboBox/blob/6553f3aa25c38066b4105db096461965dadbada4/DotNetKit.Wpf.AutoCompleteComboBox/Windows/Controls/AutoCompleteComboBox.xaml.cs#L187
I don't think this is intended, so can you release a new version with the fix ?
Thank you.

@kvpt Sorry and thank you for pointing out!

@vain0x No problem, errors happen and it's a free time project so no warranty.
Thanks you again for your responsiveness.


Improved Catnip

This is a larger change that was required in order to improve the overall user experience of O-Neko catnip.
The main changes are:

After opening a deployment's URL, the user is now redirected to a catnip base-URL which then hosts the frontend
Improved frontend-build. No JS frameworks but a basic project using Vite and Tailwind. This comes with a redesign of the catnip frontend.
Now the backend does the polling of the starting deployment while the frontend asks the Catnip backend through a simple API.

This addresses the following issues:

users could not reload the wakeup-frontend because then they'd not land on the catnip backend (because the ingress of the starting deployment would exist already)
deploys were initiated before serving the frontend. this led to users sometimes not being able to load all frontend resources (css, js), because those requests would already reach the ingress of the starting deployment (and would result in errors)
The previously overall mediocre user experience should now be improved

This is a breaking change and it requires the O-Neko changes introduced in subshell/o-neko#102 (and the other way round). Earlier versions of O-Neko will not work with the new catnip and newer versions of O-Neko will not work with earlier catnip versions.

After this is closed and released, https://github.com/subshell/helm-charts/pull/9 can be merged.


Make initialization of GoogleNet / Inception faster

There have been several reports from users that GoogleNet and Inception are very slow to construct, see https://github.com/pytorch/vision/issues/1797 , https://github.com/pytorch/vision/issues/1977 and https://github.com/pytorch/vision/issues/2145 for example.
The underlying issue is that these models use scipy.truncnorm, for which the implementation was recently updated and became 100x slower than it was before, see https://github.com/scipy/scipy/issues/11299 for reference. This slowdown has been fixed in scipy and will be present in the 1.5.0 release, but in the meantime, users of torchvision still obtain very long startup times.
I think the simplest alternative is to make init_weights default to False, and use a weight initialization from PyTorch instead. This is BC-breaking for users who want to train Inception from scratch, but I'm not sure how much it will affect users in general.

Thanks for openning an seperate issue for this. As you said i was looking into the Scipy issue and trying to understand the behaviour of https://github.com/pytorch/vision/blob/f9ef235c402f48a335293c626e17bd8504d3af87/torchvision/models/inception.py#L103-L116.
I think weight initialization with PyTorch nn.init module can significantly improve the scenario. I have tested with
modules=[
        nn.Conv2d(3,512,2),
        nn.BatchNorm2d(512),
        nn.Linear(512,3) ]  X 17 times

for weight initialization, the current implementation takes around 1.21 sec, where the nn.init.uniform_ API takes 0.0048 sec, I think it is far better until next scipy release.
model=nn.Sequential(*modules)
def weight_init(m):
  if isinstance(m, nn.Conv2d) or isinstance(m, nn.Linear):
    nn.init.uniform_(m.weight,-2,2)
  elif isinstance(m, nn.BatchNorm2d):
    nn.init.constant_(m.weight, 1)
    nn.init.constant_(m.bias, 0)
model.apply(weight_init)

Would you mind if I work on it?

Hi,
Sure, please it would be great if you could work on it.
I think that we should still keep the old behavior if the user wants, and raise a warning to make users aware of it.
One option would be to change the default value of init_weights to be None, and raise a warning if it's None (forcing the users to be aware of it until they explicitly set the value to either True or False).

Hii,

One option would be to change the default value of init_weights to be None, and raise a warning if it's None (forcing the users to be aware of it until they explicitly set the value to either True or False).

Sure. That would be better.
Thanks.


How to limit the svg element does not excess the container?

How to limit the svg element does not excess the container when user pinch or drag/pan?

I suppose you're asking about this

@bumbu  Thank you for your answer, but this example will get wrong after i add "viewbox":

Please add a reproducible example.


AbstractAdapter hasStableIDs

Maybe I'm misunderstanding something, but I've restructured my code a bit to have my adapter extend the ItemAdapter, and I'm no longer getting animations.  Following the code, when you call setHasStableIDs it forwards the call onto the FastAdapter, but when you cal hasStableIDs() you will get back false, since it's not forwarding the call back from the fastAdapter, is this correct? If it isn't correct, is that what's causing the loss of my animations  using the ItemAdapter?

@ncapdevi I am not 100% sure what you mean. animations work fine in the sample. anything else which might prevent it in your case?

@ncapdevi can you please report back. close for now


[Helm] acr helm command group

The new command group:
Group
    az acr helm : Manage helm charts for Azure Container Registries.

Subgroups:
    repo   : Manage helm chart repositories for Azure Container Registries.

Commands:
    delete : Delete a helm chart version in a container registry.
    fetch  : Fetch a helm chart package from a container registry.
    list   : List all helm charts in a container registry.
    push   : Push a helm chart package to a container registry.
    show   : Describe a helm chart version in a container registry.

az acr helm repo add is a wrapper of helm repo add and requires (1) admin user enabled; or (2) providing SP username/password.
Command
    az acr helm repo add : Add a helm chart repository from a container registry through the Helm
    CLI.
        Helm must be installed on your machine.

Arguments
    --name -n [Required] : The name of the container registry. You can configure the default
                           registry name using `az configure --defaults acr=<registry name>`.
    --password -p        : The password used to log into a container registry.
    --username -u        : The username used to log into a container registry.

Examples
    Add a helm chart repository from a container registry to manage helm charts.
        az acr helm repo add -n MyRegistry

All other commands (i.e., delete, fetch, etc.) work with AAD (assuming the default acr is set so -n MyRegistry is omitted in the following examples):

Push a chart package to a container registry.

az acr helm push mychart-0.3.2.tgz

Fetch a chart package with the latest version from a container registry.

az acr helm fetch mychart

Fetch a chart package with the specific version from a container registry.

az acr helm fetch mychart --version 0.3.2

Delete a helm chart version in a container registry.

az acr helm delete --chart mychart --version 0.3.2

List all helm charts in a container registry

az acr helm list

List all versions of a helm chart in a container registry

az acr helm list --chart mychart

Describe a helm chart version in a container registry.

az acr helm show --chart mychart --version 0.3.2

Feedback appreciated, mostly on whether mychart is a positional argument or not. /cc @SteveLasker @sajayantony @yuwaMSFT2 @ehotinger @northtyphoon

makes sense to me as a positional arg; I think any core artifact that is required to run the commands should be positional args just to 1) enforce it's required and get the nice CLI usage; 2) reduce typing

This makes sense and I think we will default to positional args for all chart commands.


Adapt nixos-anywhere to work with a remote running alpine

Converted to draft, the copying of authorized_keys should instead be fixed by supporting DOAS_USER in the kexec images

https://github.com/nix-community/nixos-images/pull/184 adds proper doas support to the kexec images

I’ve tested this on a local Alpine VM (alongside https://github.com/nix-community/nixos-images/pull/184)

@mergify queue


Added ability to have Redis Authentication

This PR goes along with a discovery_api changes and charts changes. Will add tags once created.

Working on tracking down the andi failure.

Andi test fixed. Ready for review.


RHOAI-v2.8: Sync from upstream

Excluded webhook changes, since I found a regression due to changes in operator name, service name
cc: @zdtsw @ykaliuta

Excluded webhook changes, since I found a regression due to changes in operator name, service name
cc: @zdtsw @ykaliuta

i had a look at this, dont think it is a problem , more like the one in upstream is called opendatahub-* the one in downstream should be rhods-* / redhat-ods-*
cherrypick these 2 commits + rename it bundle:
https://github.com/red-hat-data-services/rhods-operator/pull/199


[Gardening] Remove invalid RUN lines that were accidentally merged

ab5a42160c39509906a1aa5c63072a5de81cdefa added a new test case with
invalid RUN lines - they were a copy paste from a different file, not
intended to be committed.

@swift-ci please smoke test


Doesn't disable specific dates

https://jsfiddle.net/tj2Lo4z7/72/
Your Environment

flatpickr version used:
flatpickr v2.0
Browser name and version:
Version 65.0.3325.181 (Official Build) (64-bit)
OS and version:
Ubuntu 16.04 LTS

Why wont it disable the dates that I have specified? Might be that Im missing something real easy here. But cant figure it out.

Are you sure parseDates works in v2.0?
I get Flatpickr.parseDate is not a function


IPv6 Error

Hey, first and foremost thank you lots for the great work!
I am getting following IPv6 Error. The container shuts down. If I turn off IPv6 in the config, the container runs and correctly assigns the IPv4 address. Any thoughts?
2022/12/05 00:14:42 configure DNS records
2022/12/05 00:14:43 Get "https://api6.ipify.org?format=text": dial tcp [2607:f2d8:2010:2::2]:443: connect: cannot assign requested address

May the reason be that my IPv6 network within docker is not set up correctly?
If so this should be a prerequisite?

Yes, the reason for my issue was that my docker container could not communicate to any IPv6 address. I had to fix IPv6 connections for my Docker setup first.


Introduce a Ballerina connector for Asana REST API V1

Description:
$subject contains the following action items.

[x] Add initial gradle project structure and github workflows
[x] Introduce the openAPI spec and generate the client based on that
[x] Implement a unit suite based on a mock server
[x] Add connector Examples and Documentation

Describe your task(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Closing as completed


Change name

Devops Bootcamp is too long, new name suggestions welcome!

We had a meeting a few months ago where we discussed new names. I don't remember any of them but there might be meeting notes around that list some of the good ones.

Should we open it up to the community?  Maybe have an etherpad or somesuch and put it in LUG to see if others have ideas? I'm not sure I have any great ideas, but I do think it could be improved.


esp_ble_resolve_adv_data (IDFGH-5671)

Environment

Development Kit:      [ESP32-DevKitC]
Kit version (for WroverKit/PicoKit/DevKitC): [v4]
Module or chip used:  [ESP32-WROOM-32D]
IDF version (run git describe --tags to find it):
v4.3-302-g47b96db12d
Build System:         [idf.py]
Compiler version (run xtensa-esp32-elf-gcc --version to find it):
xtensa-esp32-elf-gcc (crosstool-NG esp-2021r1) 8.4.0
Operating System:     [Linux]
(Windows only) environment type: [MSYS2 mingw32|ESP Command Prompt|Plain Command Prompt|PowerShell].
Using an IDE?: [No]
Power Supply:         [USB]

Problem Description
Can't resolve device name.
Expected Behavior
Actual Behavior
Steps to reproduce

run demo gatt_client
it can print device address but cant't resolve name.
in my ble device, the device name type data place into scan rst dat ,and it has 0 between adv data and scan rst data.
I think this question is because to the esp_ble_resolve_adv_data return on 0.

// If possible, attach a picture of your setup/wiring here.
Code to reproduce this issue
// the code should be wrapped in the ```cpp tag so that it will be displayed better.
//modification the code in btm_ble_gap.c

UINT8 *BTM_CheckAdvData(UINT8 *p_adv, UINT8 type, UINT8 *p_length)
{
        /*code*/
        while (length && (p - p_adv <= BTM_BLE_CACHE_ADV_DATA_MAX))
       {
              /*code*/
               p += length - 1; /* skip the length of data */

               while (*p == 0) //add
              {                         //add
                  p++;              //add
              }                        //add
              STREAM_TO_UINT8(length, p);
       }
       /*code*/
}

// If your code is longer than 30 lines, GIST is preferred.
Debug Logs
According to above modification, it can  resolve adv device name properly.
I (10657) 8MS_GATT: c0 00 00 00 00 01
I (10657) 8MS_GATT: searched Adv Data Len 31, Scan Response Len 28
I (10667) 8MS_GATT: searched Device Name Len 9
I (10667) 8MS_GATT: WT5105-M1
I (10667) 8MS_GATT: adv data:
I (10677) 8MS_GATT: 02 01 06 11 07 1b d7 90 ec e8 b9 75 80 0a 46 44
I (10687) 8MS_GATT: d3 01 02 ed a6 03 ff ff ff 00 00 00 00 00 00
I (10687) 8MS_GATT: scan resp:
I (10697) 8MS_GATT: 0a 09 57 54 35 31 30 35 2d 4d 31 00 00 00 00 00
I (10697) 8MS_GATT: 00 00 00 00 00 00 00 00 00 00 00 00
I (10707) 8MS_GATT:

I (10707) 8MS_GATT: searched device WT5105-M1

Other items if possible

[ ] sdkconfig file (attach the sdkconfig file from your project folder)
[ ] elf file in the build folder (note this may contain all the code details and symbols of your project.)
[ ] coredump (This provides stacks of tasks.)

@FaeSorceress
Hi, I have reproduced the problem you encountered. When adv_data has invalid data 0 and the device name is placed in scan_rsp_data, BTM_CheckAdvData will return early because length =0 is encountered. Thank you very much for reporting this problem.  Can you submit a pull request to try to incorporate your solution?

It's my pleasure. I have don so.

深圳市启明云端科技有限公司
研发部 软件组
彭飞<PHONE_NUMBER>3
@.***
From: xulongzhuang
Date: 2021-08-10 09:52
To: espressif/esp-idf
CC: stephen; Mention
Subject: Re: [espressif/esp-idf] esp_ble_resolve_adv_data (IDFGH-5671) (#7392)
@FaeSorceress
Hi, I have reproduced the problem you encountered. When adv_data has invalid data 0 and the device name is placed in scan_rsp_data, BTM_CheckAdvData will return early because length =0 is encountered. Thank you very much for reporting this problem. Can you submit a pull request to try to incorporate your solution?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


How to give user indices:admin/create permision?

Search Guard and Elasticsearch version:
SG 6.4.0, ELK stack 6.4.0

I does fresh clone of ELK docker stack with SearchGuard branch. I connect everything and can log in to kibana throught SG and run sgadmin.sh successfully.

Description of the bug:
When i try push logs throught logstash have some bug:

elasticsearch_1  | [2018-09-17T12:52:23,154][INFO ][c.f.s.c.PrivilegesEvaluator] No index-level perm match for User [name=logstash, roles=[logstash], requestedTenant=null] Resolved [aliases=[], indices=[mylogstashindex-2018-09-17], allIndices=[mylogstashindex-2018-09-17], types=[*], isAll()=false, isEmpty()=false] [Action [indices:admin/create]] [RolesChecked [sg_own_index, sg_logstash]]

elasticsearch_1  | [2018-09-17T12:52:23,155][INFO ][c.f.s.c.PrivilegesEvaluator] No permissions for [indices:admin/create]

logstash_1       | [2018-09-17T12:52:23,197][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"security_exception", "reason"=>"no permissions for [indices:admin/create] and User [name=logstash, roles=[logstash], requestedTenant=null]"})

Error info said that logstash user doesnt have indices:admin/create but I already added those.
There is my SG configuration:
User:
logstash:
    hash: $2a$12$u1ShR4l4uBS3Uv59Pa2y5.1uQuZBrZtmNfqB3iM/.jL0XoV9sghS2
    roles:
        - logstash

Role mapping:
sg_logstash:
    backendroles:
        - logstash

Role:
sg_logstash:
  cluster:
    - CLUSTER_MONITOR
    - CLUSTER_COMPOSITE_OPS
    - indices:admin/template/get
    - indices:admin/template/put
    - indices:data/write/bulk*
    - indices:data/read/mget*
    - indices:data/read/msearch*
  indices:
    'mylogstashindex*':
      '*':
        - CRUD
        **- CREATE_INDEX**
        **- "indices:admin/create"**
    '*':
      '*':
        - '*'
        - "indices:admin/create"

logstash.conf:
output {
  elasticsearch {
    hosts => "elasticsearch:9200"
    index => "mylogstashindex-%{+YYYY-MM-dd}"
    user => logstash
    password => logstash
  }
}

How to give logstash user indices:admin/create permision?

Pls run sgadmin with the -r flag and attach the resulting yml files to this issue (all five files, as attached files - no copy and paste)

Thanks for quick answer.
I added -r flag to sgadmin script. There are result files:
sg_files.zip

...what was the solution

@mdnuts I was able to resolve this by editing the sg_roles.yml file to grant the sg_logstash role permissions to create any indices.
 indices:     'logstash':       '*':         - CRUD         - CREATE_INDEX
modified to:
 indices:     '*':       '*':         - CRUD         - CREATE_INDEX
permits the logstash user to create any indicies, and resolves the issue.

ll describe my steps a little bit later.

What was the solution, im at that point as well


Add manual deploy workflow for zcashd images

Motivation
The Zebra sync tests currently run on mainnet and testnet. Sometimes the testnet nodes are slow or unreliable, so the sync tests are unreliable.

Solution
Deploy about 10 Zebra or zcashd instances on testnet, to increase the average speed and reduce the average latency of testnet. This PR adds a github action workflow for deploying a group of zcashd nodes

The code in this pull request has:

[ ] Documentation Comments
[ ] Unit Tests and Property Tests

Review

Related Issues

https://github.com/ZcashFoundation/zebra/issues/1222
Follow Up Work

deployment successfully tested from my fork: https://github.com/yaahc/zebra/runs/2035890120?check_suite_focus=true

tested again successfully on fork: https://github.com/yaahc/zebra/runs/2042664696?check_suite_focus=true


[13179] Upgrade requirements

Signed-off-by: JLBuenoLopez-eProsima<EMAIL_ADDRESS>

Doxygen documentation for IntanceHandle_t operators have been included in eProsima/Fast-DDS#2344


[Transaction] Transaction coordinator log

Motivation

Store transaction log.
Recover transaction metadata from transaction log when broker starting.

Is this PR ready for review? Or did it need any further changes?

Open a new PR https://github.com/streamnative/kop/pull/716 instead of this PR. I close this PR.


[2.19.0] Malformed API Server URL with Duplicate Protocol Prefix

Before you start please confirm the following.

[X] Yes, I've searched similar issues on GitHub.
[X] Yes, I've checked whether this issue is covered in the Portainer documentation or knowledge base.

Problem Description
After updating Portainer from version 2.18.4 to 2.19.0 on my Kubernetes cluster, I began to experience issues related to the Kubernetes API server URL. Specifically, the URL is being malformed with a duplicated protocol prefix (https://https/...).
Expected Behavior
Portainer should correctly form the Kubernetes API server URL without duplicating the protocol prefix and successfully connect to the API server.
Actual Behavior
The API server URL is malformed, with the https prefix appearing twice, as https://https/kubernetes.default.svc, leading to a connection failure.
Steps to Reproduce

Open Portainer and select your Kubernetes cluster.
Navigate to Cluster.
Click on your Cluster.
Observe the error message, indicating a connection issue.

Unable to retrieve metrics for node: Get "https://https/kubernetes.default.svc/kubernetes/apis/metrics.k8s.io/v1beta1/nodes/MYCLUSTER": dial tcp: lookup https on <IP_ADDRESS>:53: no such host

Portainer logs or screenshots

Portainer version
2.19.0
Portainer Edition
Business Edition (BE/EE) with 5NF / 3NF license
Platform and Version
Kubernetes v1.27.4+k3s1
OS and Architecture
Ubuntu 22.04, AMD64
Browser
Google Chrome 116.0.5845.141
What command did you use to deploy Portainer?
helm upgrade --create-namespace -n portainer portainer portainer/portainer \
    --set enterpriseEdition.enabled=true \
    --set service.type=ClusterIP \
    --set kubernetes.io/ingress.class=traefik \
    --set ingress.annotations."nginx\.ingress\.kubernetes\.io/backend-protocol"=HTTPS \
    --set ingress.annotations."traefik\.ingress\.kubernetes\.io/router\.tls\.certresolver"=cloudflare \
    --set ingress.annotations."traefik\.ingress\.kubernetes\.io/router\.tls\.domains\.0\.main"="[SUBDOMAIN]\.[REDACTED]\.com" \
    --set ingress.annotations."traefik\.ingress\.kubernetes\.io/router\.tls\.domains\.0\.sans"="*\.[SUBDOMAIN]\.[REDACTED]\.com" \
    --set ingress.hosts[0].host=portainer.[SUBDOMAIN].[REDACTED].com \
    --set ingress.hosts[0].paths[0].path="/"

Additional Information
Environment Details:

Kubernetes Version: v1.27.4+k3s1
Cloud/Hosted Service: on-prem
Installation Method: Helm
Helm Version: v3.12.1
Operating System & Version: Ubuntu 22.04.3 LTS

Additional Context:

No changes were made to the Kubernetes cluster or its configuration other than the Portainer update.
Other services in the cluster do not exhibit this issue, and the DNS resolution for kubernetes.default.svc appears correct.
No related errors or warnings were found in the logs of relevant system components like CoreDNS.

I have a related issue. Somehow upgrading from 2.18.4 to 2.19.0 I'm getting failures to upgrade due to an issue with updateTunnelServerAddressForDB100 saying address <custom-domain>: missing port in address

I am also on Ubuntu 22.04 LTS and just upgraded Portainer to 2.19 from 2.15 and see the exact same error.
Unchecking the cluster option to use the metrics api clears the error but now there are no accurate metrics.

I have a related issue. Somehow upgrading from 2.18.4 to 2.19.0 I'm getting failures to upgrade due to an issue with updateTunnelServerAddressForDB100 saying address <custom-domain>: missing port in address

Have exactly the same issue.

I just updated Portainer to 2.19.0 that is running on my TrueNAS Scale and now getting same error:
Unable to retrieve metrics for node: Get "https://https/kubernetes.default.svc/kubernetes/apis/metrics.k8s.io/v1beta1/nodes/ix-truenas": dial tcp: lookup https on <IP_ADDRESS>:53: no such host

I updated just to make sure two different clusters would get the same error.

I just updated both my clusters that run Portainer EE to version 2.19.1 and metrics are working again!
I am going to close this issue then.


Feature/add new docs

Plan is to host them on github pages but still generate using gitbook CLI.
@mumoshu I tried this out locally and working fine. Now we just need to connect to gh-pages branch we per our discussion.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #850   +/-   ##
=======================================
  Coverage   34.49%   34.49%
=======================================
  Files          57       57
  Lines        3902     3902
=======================================
  Hits         1346     1346
  Misses       2398     2398
  Partials      158      158

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 0dc583e...20a3c8a. Read the comment docs.

@c-knowles Thanks for the contribution 👍 I'll try to publish this to gh-pages manually, and the try to automate the process.


Event handler crashes in new Graph Node version

The Graph Node crashes with the following error whenever the following event occurs:
 Mar 04 09:39:29.040 ERRO Subgraph instance failed to run: Failed to process event: Failed to parse parameters of event: NewSchemeProposal(address,bytes32,address,address,bytes32,bytes4,string): Cannot decode string, id: QmaQFNEzoDymDGoDLQx4mY1PXozfas5QK3Y1GCwrpPfxDk

I have reproduced the transaction which makes it crash on Kovan:
https://kovan.etherscan.io/tx/0xa0557a9e7b47fcd8332fd91f8200468a762335a9ff56aecbd43af2790a84ff45
You can see the subgraph and the crash logs here:
https://thegraph.com/explorer/subgraph/ben-kaufman/daostack-alchemy

Update:
A similar issue was raised after I updated another contract we track. We added a boolean to an object which we keep in a mapping. And when trying to read from it from the subgraph I receive this:
graph-node_1  |   Mar 05 12:47:44.066 ERRO Subgraph instance failed to run: Failed to process event: Failed to handle Ethereum event with handler "handleNewProposal": Trap: Trap { kind: Host(HostExportError("Failed to call function \"proposals\" of contract \"GenesisProtocol\": ABI error: Cannot decode bool")) }, id: QmaiVH6BV8JuqGd3RJyn9361URtEAds2oSPY5MWWsMiSBe

@ben-kaufman Is the subgraph source code available somewhere so I could run it myself?

@ben-kaufman I've been able to clone https://github.com/daostack/subgraph, create an .env file using kovan as the network name and run npm run deploy to deploy it locally. Are these the right steps to reproduce?

Almost, just run mom run test instead of deploy. And you’ll need to check out a branch which suffers from the issue, the one currently on GitHub is https://github.com/daostack/subgraph/tree/schemeregistrar_2?files=1

Oh sorry if you’re on Ganache then you should just call the contract after you use deploy, not run the tests.

Well, the contract on Kovan already has events that break with Graph Node, right? So I'm assuming I can just run npm run deploy and the subgraph will fail eventually. Is that not correct?

Not on the main branch, because it does not listen to the problematic contracts over there.

Ok, yep, I've managed to reproduce it with the following steps:

Start a local Graph Node for Kovan (from https://github.com/graphprotocol/graph-node master)
Register the subgraph name with `graph create --node http://localhost:8020/
Clone https://github.com/daostack/subgraph
Check out the schemeregistrar_2 branch
jannis/daostack`.
Create the following .env file:network="kovan"
subgraph="jannis/daostack"

# Not necessary for Docker deployment
graph_node="http://localhost:8020/"
ipfs_node="http://localhost:5001"
access_token=

Run npm run deploy

I have a rough idea of what is going on. We've forked ethabi recently and in our fork, indexed event parameters are not correctly parsed using the event topics.
Event parameters that are marked as indexed in the smart contract are moved into the event's topics rather than being part of the event data (see https://solidity.readthedocs.io/en/develop/contracts.html?highlight=indexed#events for more information). However, something isn't right with that in our ethabi fork. I'll continue investigating.

@ben-kaufman I found the problem and have a fix pending for our ethabi fork. Once that's merged, graph-node will be fixed again.

@Jannis great, thanks!


Add ability to select a file in project.json

The selected file in the file tabs is selected based on the selected file in the project config only when loading a new project.
Fixes https://github.com/google/playground-elements/issues/303

Also looks like it needs an npm run format


React props in typescript are displayed in alphabetical order instead of showing component props at the top when running "trigger suggest"

Does this issue occur when all extensions are disabled?: Yes

VS Code Version:  1.74.2
OS Version:  macOS 12.6

Steps to Reproduce:

git clone reproduction repo at https://github.com/MichaelHindley/vscode-react-props-alphabetical
start vscode with --disable-extensions flag
run npm i to install dependencies
go to Line 25 in App.tsx, place curser inside the Menu component opening tag
run the "Trigger suggest" command
Observe the props being sorted in alphabetical order instead of showing the components own props at the top

What should happen instead is that the component scoped variables from "MenuProps" should be at the top, rather than being alphabetically sorted. The alphabetical sorting is a very poor developer experience. When triggering suggestions in a react component, the most common scenario by far is to see which props the component type has, which vscode is aware of.

Notice the equivalent of "trigger suggest" in Intellij, showing the components props above all the default html props;

The alphabetical sorting is a very poor developer experience.

This is so true, I was trying to proof the same in https://github.com/microsoft/TypeScript/issues/49012 and I think you're second who thinks so. This is especially important for React because of aria-* attributes.
However, TypeScript can easily loose original sorting of properties in some cases, so its easier to just do alphabetical sorting in last step and your Menu component from antd is just ideal example for this (see below).
Also, this issue has a few incorrectness:

Its incorrect to compare VS Code and WebStorm with Machine-Learning assisted sorting enabled, which make sorting based on previous usages, you'd probably get the same results if vscode alternative extension - IntelliCode was smarter.

Notice the equivalent of "trigger suggest" in Intellij, showing the components props above all the default html props

Its not quite true. Props are declared in the following order: [theme, inlineIndent, _internalDisableMenuItemTitleTooltip, items], [prefixCls, rootClassName, items, children, disabled, ...], htmlProps so by this logic class name should be showed after all these, so again its just webstorm opinionated sorting + "ai sorting"
You can easily make your VS Code extension that would remember most-used properties on specific components from your personal usages.

I have extension that fixes this issue, so in some simple cases like this I can restore original sorting with vscode plugin (with setting enabled):
const MyComponent: React.FC<{ myProp?: boolean } & React.ComponentProps<'div'>> = () => <div />;
<MyComponent /**/ /> // key, myProp, ref, other div props

However in more complicated cases, for example with just using Omit the sorting is lost.
interface BaseProps extends React.ComponentProps<'div'> {
    // those are not on top anymore
    c?
    d?
}

interface Props extends Omit<BaseProps, 'foo'> {
    b?
    a?
}

declare const MyComponent: React.FC<Props>;
<MyComponent />

However I use now also alternative solution: list all props declared in @types/react after all other props. Is this the desired behavior?

There is no difference with the machine-learning suggestions and without in this case, showing the components own props on top has been default in Intellij for as long as I can remember React support existing, which is why when working with VSCode it instantly stands out as a poor developer experience. See screenshot below with ML learning turned off;

Its not quite true. Props are declared in the following order: [theme, inlineIndent, _internalDisableMenuItemTitleTooltip, items], [prefixCls, rootClassName, items, children, disabled, ...], htmlProps so by this logic class name should be showed after all these, so again its just webstorm opinionated sorting + "ai sorting"

Not quite sure if I'm defining this correct, but when I say "components own props" it means the props that the component itself defines, for the "Menu" component it refers to "MenuProps". Here is how it looks like to me and how Intellij correctly shows the components own props without ML assisted suggestions:

These are the props from the "MenuProps" type, which the "Menu" component defines, other props start to show up in sorting after these props that the component itself has defined.
What I mean is that sorting should start with the props that the component itself defines, any other props should come after that. This behavior can be controlled by triggering different type of suggestions on-press.

Related on Stack Overflow: TypeScript React props priority when using IntelliSense in VS Code

Thank you for linking! However, I see some interesting parts

So, as far as I know, at the time of this writing, there is no mechanism for a user to configure certain suggestions to have a higher priority.

Actually, I've thought about adding support for sort jsdoc support but specifying it manually every time would be annoying, instead, you can move the property to the top in the file and use the aforementioned extension with the following setting: "tsEssentialPlugins.fixSuggestionsSorting": true,
So with the component from the StackOverflow question, you should see the property tag displayed on top.

Is there some update here? I think it's a common issue

please i need some update regarding this issue

What kind of update do you expect?
What about number properties sorting: i think sorting of numbers can actually be forced with the language service, but I think while introducing sorting changes would be logical for most of us it can also introduce unexpected behaviors for others (also keep in mind there are edge cases). On the other hand TS plugins are meant to fine-tune DX and can easily solve these problems, really recommend to try them out.

@zardoy is there a ts plugin that sorts the react component props first and then the other html props

Bump!

Bump!

You want something?


Can't format 64GB SD card

The error message could be “Windows was unable to complete the format” or something else.

Solution (works)

https://www.disk-partition.com/articles/sandisk-64gb-micro-sd-card-unable-to-format-0310.html

But if you have to format as fat32 for the Pi.


mysql-workbench: error: pynacl-1.4.0 not supported for interpreter python2.7

Describe the bug
Error when trying to install/run mysql-workbench:
error: pynacl-1.4.0 not supported for interpreter python2.7

Steps To Reproduce
Steps to reproduce the behavior:

Either add to system packages or use nix-shell -p mysql-workbench
Error shown

Expected behavior
MySQL Workbench installed
Notify maintainers
Not sure if @gebner or @r-ryantm or someone else?
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.21-hardened1, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.16`
 - channels(root): `"nixos-21.11.336020.2128d0aa28e, unstable-21.11pre306621.439b1605227, nixpkgs-20.09"`
 - channels(dwd): `"unstable-21.11pre306621.439b1605227, home-manager"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

if I'm not mistaking, this is tracked as part of #101964

Fixed by https://github.com/NixOS/nixpkgs/pull/191174


Add a comment for our use case 27.

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #377   +/-   ##
=======================================
  Coverage   89.33%   89.33%
=======================================
  Files          54       54
  Lines        2597     2597
  Branches      531      531
=======================================
  Hits         2320     2320
  Misses        266      266
  Partials       11       11

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 19f45f9...ed7f98b. Read the comment docs.


Can't change button background color in Internet Explorer

Within IE11, when changing button/Background to any color, dashboard always keeps it blue (default)
button/Colour (foreground) acts as expected.

Same actions are 100% OK using Chrome

Strange isn't it...
Windows 10, Raspberry Pi Zero W, node-red v0.18.4

Hi, thanks for raising an issue.
As this is related to node-red-dashboard and not the core of node-red, please raise it here: https://github.com/node-red/node-red-dashboard and provide an example flow that demonstrates the issue for you.
Thanks!


Create new TP with SpaCy

In a Jupyter notebook

Investigate https://spacy.io/api/matcher

@devironl check this matcher explorer: https://demos.explosion.ai/matcher

Detailed doc: https://spacy.io/usage/rule-based-matching

The explorer is nice but does not include French models. It would be great if we can find the code, fork it and include them

Hello Max
I am done with Python and Spacy. Can you have a look ?
To share with the students I think that giving them the notebook files directly will be easier (we ensure that they are not losing their work by working on "our" version without being able to save it.
What do you think ?

So you mean not using colab at all?

Sorry not clear. I meant using colab and importing the files directly from there (and saving in their own drives)

Indeed ! Normally they are familiar with Colab already because they had to use it for the previous exercise
But let's do a reminder!!

Fixed


dequeueReusableSupplementaryViewOfKind kill the performance of app

Hi Just used the header and footer view after that scrolling become very hard, when i do performance testing with time profile I saw some 900x to 1000x time taken by the above methods
Both header and footer are very simple footer have one button inside and header as just a label.

General information

IGListKit version:
iOS version(s):
CocoaPods/Carthage version:
Xcode version:
Devices/Simulators affected:
Reproducible in the demo project? (Yes/No):
Related issues:

Debug information
# Please include debug logs using the following lldb command:
po [IGListDebugger dump]

Would be valueable to know a bit more about your setup. Is this something you can modify the example project to show the same behaviour? We use headers and footers in our app and are not seing this performance hit.

Ya this is a little hard to debug w/out more details. A profiler trace or a sample project reproducing the issue would be super helpful.

HI @rnystrom  and @heumn
This really strange issue I am facing when I try to write sample app for same I am not able to reproduce the issue its working fine.
But when i run in my project the issue is coming always, when I removed the header and footer its working even either one is also bringing performance to track.
Are you using UICollectionViewFlowLayout?
Yes its UICollectionViewFlowLayout
I will try to add profiler trace

Profile templente
https://drive.google.com/file/d/0B8daXS_CB88fNVo2S2hFUGdOVDQ/view?usp=sharing

any update guys?

I've got this in my queue, but debugging other implementations takes a much lower priority over our work here at Instagram. Will get to this when I can run through my backlog!
Also our IT security flagged this file, I'm not even sure I'll be able to open it :(

@Shivaprasad2452 do you think you could provide an example project and I will try help you?

Gonna close due to inactivity


Add container and instance metadata credential providers

This pull adds support for ECS container and EC2 instance metadata credential loading so that keys don't have to be explicitly defined for deployment targets.
Tested in ECS and it works great! Haven't tested with EC2 but it should work the same.
Resolves #201
Side note: Could we get a patch version bump with this update so I can use this change with Aftman instead of using the forked repo?

Thank you for this contribution! Overall looks good but added a couple comments

Fixed the formatting in the workflow file, testing the environment variable to see if it works on AWS

Never mind, I have to look at this tomorrow. I'm not familiar with Rust so I'm not sure what's up with the compiler errors.


[BUG] Sentry scope migration fo 2.x

Describe the bug
the way we get the configure scope is deprecated and will be removed in the next big release
this piece needs to be updated
sentry migration docs
integrations/sentry.py
how we do it
    def run(self, guid: str, **kwargs: Any) -> None:
        """
        Sets the Sentry transaction_id.
        """
        import sentry_sdk

        with sentry_sdk.configure_scope() as scope:
            logger.debug('Setting Sentry transaction_id to %s', guid)
            scope.set_tag('transaction_id', guid)

how we should do it
    def run(self, guid: str, **kwargs: Any) -> None:
        """
        Sets the Sentry transaction_id.
        """
        import sentry_sdk

        scope = sentry_sdk.get_isolation_scope()
        logger.debug('Setting Sentry transaction_id to %s', guid)
        scope.set_tag('transaction_id', guid)

To Reproduce
Full stack trace
/django_guid/integrations/sentry.py:37: DeprecationWarning: sentry_sdk.configure_scope is deprecated and will be removed in the next major version. Please consult our migration guide to learn how to migrate to the new API: https://docs.sentry.io/platforms/python/migration/1.x-to-2.x#scope-configuring
with sentry_sdk.configure_scope() as scope

Thanks!
Would you like to create a PR to fix this?  😊

Thanks!
Would you like to create a PR to fix this? 😊

Yes!


System unavailable after deployment

After deploying Tinkerbell chart in my K3s cluster, my session hangs and get a client_loop: send disconnect: Broken pipe message.
When checking the interface configuration via console, I noticed that my IP config is removed from the primary interface.
Expected Behaviour

Server stays online and reachable
Current Behaviour

Server is unreachable
Noticed the following messages in the kube-vip logging:
time="2024-05-14T11:53:08Z" level=info msg="(svcs) adding VIP [[<IP_ADDRESS>]] for [kube-system/traefik]"
time="2024-05-14T11:53:08Z" level=info msg="[service] synchronised in 7ms"
time="2024-05-14T11:53:08Z" level=warning msg="(svcs) already found existing address [<IP_ADDRESS>] on adapter [eno1]"
time="2024-05-14T11:53:11Z" level=warning msg="Re-applying the VIP configuration [<IP_ADDRESS>] to the interface [eno1]"

Possible Solution

Possible to use stack.lbClass, but I don't know which class to use.
Steps to Reproduce (for bugs)

trusted_proxies=$(kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}' | tr ' ' ',')
LB_IP=<IP_ADDRESS>
helm install tink-stack charts/tinkerbell/charts/stack --create-namespace --namespace tink-system --wait --set "smee.trustedProxies={${trusted_proxies}}" --set "hegel.trustedProxies={${trusted_proxies}}" --set "stack.loadBalancerIP=$LB_IP" --set "smee.publicIP=$LB_IP"
system gets unreachable

Context

Cannot use the Kubernetes cluster anymore nor Tinkerbell environment
Your Environment

Operating System and version (e.g. Linux, Windows, MacOS):
Ubuntu 22.04.4 LTS with K3s version 1.30.0+k3s1

How are you running Tinkerbell? Using Vagrant & VirtualBox, Vagrant & Libvirt, on Packet using Terraform, or give details:
KVM

Link to your project or a code example to reproduce issue:
K3s is deployed with default settings

Hey @rgruyters. It appears that you might have used an IP for your load balancer that is in use. The load balancer IP needs to be a free and unused IP in the same layer 2 network as eno1 interface. Reference

I don't have an IP address that is in use. The interface eno1 has an IP of <IP_ADDRESS>. The loadbalancer IP is <IP_ADDRESS>. Although both are within the same subnet.
Somehow kube-vip sees the interface and registered the primary IP address as well. Which it shouldn't. Probable because traefik uses it within the cluster. (K3s uses traefik for servicelb)
I have checked the yaml output of kube-vip, but I can only find the loadbalancer IP. (which it should)
For now, I have disabled servicelb service within K3s, but wondering if I can use the servicelb instead of kube-vip.

ah ok. yeah looks like kubevip + traefik is requesting the same IP as the host. (svcs) adding VIP [[<IP_ADDRESS>]] for [kube-system/traefik]
You can disable kubevip in the chart and use any other load balancer. Use stack.kubevip.enabled: false and stack.lbClass equal to your existing load balancer.

Tried settings stack.lbClass to kube-system/traefik or even traefik but didn't work. The External IP stays in pending state.
Is there a way to find what the loadbalancer class is available?

I tried a few things using k3d and setting --set "stack.kubevip.enabled=false" and  --set "stack.lbClass=" seems to be working for me. Let me know if that helps.

That works! Thanks!

I had a similar issue yesterday - also running the tinkerbell chart on k3s. The control-plane did not complain, but my worker nodes running k3s-agent lost connectivity on their primary enp4s0 interface. I figured out that the kube-vip ds is somehow causing the issue.
My solution (probably a workaround) was to add node affinity to the tinkerbell chart s.t. the kube-vip ds only runs on the control-plane nodes as suggested in: https://kube-vip.io/docs/installation/daemonset/#example-arp-manifest

I just replaced the whole kube-vip by setting --set "stack.kubevip.enabled=false" and --set "stack.lbClass=null" -> using k3s built-in load balancer implementation ServiceLB aka klipper.
There seems to be some kube-vip issue on k3s...
see: https://github.com/kube-vip/kube-vip/issues/798


Bigger tap target for resizing columns in a table

E-Builder request from Teja:
Currently, the touch target for resizing columns is very precise, which could create issues for people with dexterity problems. Suggestion: we should add some padding on both sides of the column line (4px on each side for a tap target of 8px).

@apaddock I will say that the trick I used in e-Builder to create the resize handler (in planning module) was to set position: absolute; float: right; z-index:200; right:-3px; width: 7px on the drag handler.
This allows the drag handler to be overtop the border instead of strictly beside it within the header completely.  What I don't enjoy about most resize handlers is that I expect to be able to drag the border but can't and have to move my mouse over to the left at least a pixel in order to get the handler.  The above solved for that.  There may be more modern ways to do the same thing.  I'd be curious if something like this can be implemented, as it would create a larger target and a more intuitive one.

Size note: used cursor: w-resize; instead of cursor: col-resize; because back when this was written col-resize wasn't supported everywhere.


#19: Add pragma to suppress obsolete warnings

Fixes #19
I don't know if there is a way to suppress [Obsolete("comment", true)]...so I left that for later.
I also considered wrapping just the equality checks in a pragma, in case the generated code uses other obsolete code in the future. But that was more complicated and didn't seem worth it.

Sorry for the delay to get back to you. What .NET SDK version are you using? I uncommented the bits that would trigger CS0619 and surprisingly it works for me. I am running 6.0.101.

Ah, that's because adding [Obsolete] to the class/record completely suppresses the property obsoletes. I split that up into a separate test, and also added a commented out Obsolete with custom DiagnosticId.
I'm on 6.0.203.

btw, I absolutely love this library. I've been able to remove all our IEquatable implementations. It's also made test-writing so much easier for those records that have collection types on them.

I had a play with the idea of having a SuppressObsoleteWarnings property in the Equatable attribute and accidentally pushed onto your PR. I have reverted it -- apologies if you got any confusing notifications.
I think in the end it's not worth having a separate flag and I assume it would be very difficult for users to find out about its existence. So, basically, your PR exactly as is, is good to go and I am merging it!
There's absolutely nothing we can do about the Obsolete(true) attributes and I think using the IgnoreEquality is the right thing to be used in this situation, as it makes explicit to the user that the property is not used in the comparison in any way.
Lastly, I don't think Obsolete with custom ids are very commonly used in the wild, but an alternative would be to inspect the Obsolete declaration in each property/class, extract the id from the code and issue the appropriate suppression. I honestly don't think it's worth the effort.
I would like to thank you for your submission and I am happy you find this library useful! I have also been using it heavily in my projects for the same reasons -- it gets rid of a lot of boilerplate, boring and error prone code.

Yay, thank you for merging and releasing this!


added default CMD

I'd rather not have to specify the command.

Is that enough for mysql to run?

Looking at the docker entrypoint ... the 'mysqld' is simply an argument rather the actually command line ... Should be fine. One thing does additional arguments to docker run append to CMD or replace? ...if append, probably best to remove the CMD option as you can use it as a generic mysql container no? ... i.e. docker run -ti mysql mysql -h IP etc ..

The CMD is replaced thus the CMD is the default argument to the ENTRYPOINT when used in this way.

@allandegnan what's the reason you don't want to use mysqld_safe instead?

Additional arguments replace not append.

This looks fine to me, but please update the readme too.

@vaijab I'm not convinced mysqld_safe does anything we care about but I'm not against the idea.

LGTM

LGTM


Computed MSID to return pitch or off-nominal roll which is always valid

Description
This is a new computed MSID to return the Sun pitch angle or off-nominal roll angle which is valid in NPNT, NMAN, NSUN, and Safe Mode. This new computed MSID also works with MAUDE as the back-end telemetry server (unlike e.g.  dp_pitch/roll).
Current available MSIDs are limited in scope. For instance dp_pitch is only good for NPNT or NMAN when PCAD processing is maintaining AOATTQT1-4 accurately. Querying dp_pitch in other modes will return a value that is wrong.
The logic is:

Get logical intervals for the online flight program (OFP) state:

CONLOFP == "NRML":

AOPCADMD in ["NPNT", "NMAN"] => compute pitch/roll from AOATTQT1/2/3/4 and ephemeris
AOPCADMD == "NSUN" => get pitch/roll from PITCH/ROLL_CSS derived params. These are also in MAUDE.

CONLOFP == "SAFE":

Compute pitch/roll from PITCH/ROLL_CSS_SAFE via calc_pitch/roll_css_safe(). Basically the same as the OBC NSUN computation but using solar array and CSS sun angle values available in safe mode.

Intervals for other CONLOFP values are ignored.

Interface impacts

Adds new MSIDs pitch_comp and roll_comp.
Testing

Unit tests

[ ] No unit tests
[ ] Mac
[ ] Linux
[ ] Windows

Independent check of unit tests by [REVIEWER NAME]

[ ] [PLATFORM]:

Functional tests

Used in https://github.com/sot/kadi/pull/261.

Needs a test.  I note this needs https://github.com/sot/kadi/pull/261 to actually calculate computed pitch|roll but passes tests without that in path because get_ofp_states is never executed.

For this PR I'm a little surprised by these values:
dat = fetch.Msid('pitch_comp', '2022:294:16:00:00.000', '2022:294:17:00:00.000')
dat.plot()

For this PR I'm a little surprised by these values:

Safe mode entry was at 2022:294:16:32:25.285, so that deviation is the first 5 minutes of safe mode. I'm guessing there is some part of the on-board CPE calculation that is not yet initialized.
From a practical perspective of thermal propagation this won't have any impact so I'd be inclined to not worry about this too much.

Right, I was just working from "always valid" in the PR title and it seemed like ~20 degrees off in pitch even for a short time was not the right answer.  I was just looking at this independent from the kadi validation perspective and trying to figure out what confidence to have in the values.

Fair enough, I changed the PR title. :smile:  For kadi validation this 5-minutes of invalid values gets blocked out because of a CONLOFP=STUP interval right on safe mode transition.

Also good for me to keep in mind that you are using the ofp states for the pitch|roll here but you have padded exclude intervals in the validation.  I still think this needs at least a small test but wasn't sure what made sense to hit the code paths.

@javierggt - good point about docs. I took the opportunity to improve all the computed MSID docs. See:
https://cxc.cfa.harvard.edu/mta/ASPECT/tmp/cheta_docs/pseudo_msids.html#computed-msids
As I was doing this I wasted a bunch of time being confused by the sphinx docs builds when the changes I made locally didn't get reflected in the rendered docs. I finally realized that all the doc references to Ska.engarchive were being taken from the installed Ska.engarchive not local. YET another problem of namespace packages.
With that motivation, I just decided to change every Ska.engarchive in the docs to cheta. This is obviously out of scope for this PR, but it's localized in one commit and making a separate PR would have just complicated life.

Note that in 3936f79, I created the regression values before doing the refactoring because I was worried about breaking the derived params DP_PITCH/ROLL_CSS code. But since it passes tests both before and after the refactor I feel confident in the change.


docs: add overflowX=auto to remove overflow on api reference on mobile

Also, path.join doesn't work as expected on Windows. Because the path becomes docs\overview instead of docs/overview.

Please look at this [https://nodejs.org/api/path.html#pathposix]
This should be a standardized solution for your problem.

I removed node-specific imports because of issues related to Vite.
Great work @juliomuhlbauer, thank you!


users in egress rules

Hello, because the user list is arranged in a "random" order if you have more than 30 users, it is rather challenging to create egress rules.
The list should be at least arranged alphabetically.
A checklist of some kind that allows you to choose many users at once would be a nice addition.
We would really benefit from your work with groups, which I am aware of (https://github.com/firezone/firezone/issues/1157).
Thank you

Hello, you should really wait for https://github.com/firezone/firezone/issues/1157 to happen, there are no plans to change how users are ordered or UI around them for now.


Improve the search engine for the docs site

Currently, the search only supports scanning headings. We need to provide an enhanced search experience by supporting searching keywords in the whole docs site.

Documentation on Search in Vuepress for Jack to look at it. Basically they recommend using a paid service Algolia to improve the search. We could probably create our own solution as well if Jack wants to take that on.

Thanks @adambattenburg for the info. I checked Algolia and think DocSearch is open source and free to use. They even provide search hosting but need to apply (for free). Here is related link https://community.algolia.com/docsearch/who-can-apply.html. I will continue to test out this solution.

It's great to have an open source solution! Thanks Jack. @jackjia-ibm I read the instructions in the cited link and we fully meet their criteria to apply.

@nannanli @PlutoZhang  @adambattenburg I've added a preview Algolia search box to the test docs site: https://jackjia-ibm.github.io/docs-site/. The UI is the default theme. Please take a look and let me know how you thinking. I have meeting with UI/UX team, will also ask their opinions.
Please note it shares same search indexes Algolia put on https://zowe.github.io/docs-site/. So every time if you click on the search result, it will lead you back to https://zowe.github.io/docs-site/ official website.
There are few things in my mind:

The search result should be limited to the version currently on. It should only has documentation from "latest" version folder. This is done.
Archiving documentation version now requires a manual step to create pull request to update the crawler configuration (https://github.com/algolia/docsearch-configs/blob/master/configs/zowe.json#L7)
The crawler is configured to run in daily basis. So it may not affect the most recent updates on the documentation website. We don't have control on their crawler. If we want to update the search indexes more frequently, we may run our own crawler, or maybe move to paid version.

Thanks!

I just tried the search and it works great. Thanks @jackjia-ibm!  For the second bullet point, when we go to 1.0 and have an archived version of 0.9 (which is now the latest version), users will be able to select which version to view. In this case, will users still be able to search the 0.9 version?

@nannanli yes they can. If they choose to view 0.9 version documentation, the search result will only show documentations in /v0-9-x folder, so everything in /latest (which is 1.0) won't show up.

This should be fixed with https://github.com/zowe/docs-site/pull/200.


Update english term for "happening really soon now"

In English, "a while" indicates something that won't happen in the next few seconds.  "right now" means something will happen in the next few seconds.

OK, I will update it, and because of the TravisCI's result, this PR will not be merged.
I will update:

build-in en locale
locales/en.js
testcase of locale en.

done~


[BUG] After receiving the Confirm Your Subscription email and clicking Get Start Button, redirected to 404Page

Description
After receiving the Confirm Your Subscription email and clicking Get Started redirected to 404Page
Steps to reproduce

Go to 'Get Started' in README
Click on the link log in to 'ILLA Cloud'
Create account using option 'Sign in with GitHub'
Establish Authorization and Enter Dashboard
Wait for Confirm Your Subscription auto-generated system email
Once Confirmed Your Subscription email received, click button 'Get Start'
After clicking button brings you to 404Page https://www.illacloud.com/404

Note: The button get start does not conform to the proper flow of English language, should be "Get Started"

Version
cloud
ILLA Builder Version
n/a
Browser
Internet Explorer
Operating System

[ ] macOS
[X] Windows
[ ] Linux

Additional Information
No response

Hey mate:
Noted! Thank you for your issue, I will check this out with our team and fix it ASAP. Meanwhile, welcome to join our Discord Community to stay in touch.
best,
ILLA Team.

If you're able to add the hacktoberfest label to this issue, it would be appreciated. Thanks!

Hello,
Hacktoberfest does not count Issues, only PR, even if I label this issuse as Hacktoberfest

Thanks!
I'd like to make a contribution towards the wording with the button within the email, updating the verbiage from "Get Start" to "Get Started". Can you direct me to where the file is housed?

@kiddjsh Hello,
Thank you for your willingness to contribute to this,These email template codes have not been backed up locally by us. So it can only be fixed by ourselves


Breaks my inventory

When I pick up a broken camera, it doesn't appear in my hands and I can't use any other items, it also doesn't drop properly and disappears when dropped.

[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
ItemInstance.ConfigItemPosition (Player player) (at <4ba1b5dae58b4b50adb32699bbdb4490>:0)
PlayerItems.FixedUpdate () (at <4ba1b5dae58b4b50adb32699bbdb4490>:0)

same issue


Extension list not load behind corp proxy with NTLM

VSCode Version: 1.3.1
OS Version: Windows 7

Steps to Reproduce:

Open VS Code
CTRL+P
ext install csharp

My settings.json is
{
"http.proxy": "http://[DOMAIN]%5C[USER]:[PASS]@proxy.corp.cz:8080",
"https.proxy": "http://[DOMAIN]%5C[USER]:[PASS]@proxy.corp.cz:8080",
"http.proxyStrictSSL": false
}
There is no error but nothing happens.
I look at WireShark and see
CONNECT marketplace.visualstudio.com:443 HTTP/1.1\r\n
Proxy-Authorization: Basic ZHNcbXRvbWFzb3Y6TWFsYWNoaSoyNTY=\r\n
Credentials: [DOMAIN][USER]:[PASS]
But our proxy needs NTLM not Basic. Is there chance to say VS Code to use NTLM?
Thanks

Can you try with the latest insiders release?

I try it with same result.

Experiencing a similar issue behind SSL-breaking firewall - details: https://github.com/Microsoft/vscode/issues/10540

I have the same problem, just wanted to confirm that I cannot use Visual Studio Code behind a Corporate proxy. Had a hard time installing it, as the installer need admin right, but in the end it was for nothing as there is not much sense of using it without extensions :disappointed:

before v1.5.1, I use cntlm to translate the NTLM proxy to a none encrypted proxy, it worded ok. After update to 1.5.1, neither NTLM proxy or  cntlm works. I also have "http.proxyStrictSSL": false set, but it seems does nothing with promotes unable to verify the first certificate.

@ywmail #11702

cntlm as workarround works. Thanks

same issue, no extension gallery working on 1.9.1 behind corporate proxy.
it seems proxy configurations in settings.json doesn't affect the extension gallery.
Any news on this bug?

@f-mon #18103

Same issue for me too. Notably, installing via the command line works for most extensions. However, some extensions like cpptools attempt to download additional components when vscode launches the first time after installation, and that fails.

Support comes with #22369
Merging with #27838


Update README.md

add more details about tracing errors while using protoc-gen-go plugin to get .pb.go file

I'm not sure this adds anything. Saying $GOPATH/bin must be in $PATH is not strictly correct, since it could be in $GOBIN. The important property is that the protoc-gen-go binary be resolvable when searching $PATH. I think this is a common enough Unix and Windows idiom that it doesn't need to be expanded upon, lest the README becomes overly verbose.

i am not sure if i set $GOBIN, it will work or not. i'll check it, perhaps it's not must be, it's just one way to avoid that error

➜  bin echo $GOBIN /Users/devops/workspace/gopath/bin ➜  bin echo $GOPATH /Users/devops/workspace/gopath ➜  bin protoc --go_out=. ai_call_operation.proto protoc-gen-go: program not found or is not executable --go_out: protoc-gen-go: Plugin failed with status code 1. ➜  bin PATH=/Users/devops/workspace/gopath/bin:$PATH ➜  bin protoc --go_out=. ai_call_operation.proto
it seems if i set $GOBIN, but it still has the error.  Once i added $GOBIN to $PATH, it works
you  can check this by yourself

Thanks, your CLA has been submitted.
I signed it!


Restore using custom nuget.config for the worker host project

When building a .NET worker functions project, the build will create a folder in the Temp directory and place in that folder WorkerExtensions.csproj which I believe is used to build the worker host project. Because this build is being done in a separate folder it won't use my preferred nuget package sources and will instead use the global nuget.config that is installed on the system.
It would be good if instead that the build could be forced to use the same nuget.config that the functions project is using so we can have full control over where the packages being installed are coming from. This will also help make it easier when writing custom bindings and ensuring that the local folder that contains the nuget package is being used when restoring the worker host project.
In the meantime I am working around this by adding a CI build step which edits the global nuget.config to my desired packages sources, but I believe this should really be addressed here so everyone doesn't need to make the same workarounds.

+1, running into this issue as well, which makes it harder for extension authors to provide users with nuget package dependencies that aren't hosted on nuget.org (FYI @anthonychu and @fabiocav)

#1749 moved the inner-build to be in the intermediate output directory. This is not yet released, but it will address it when it is released.

Hey @jviau are you any closer for a release for this change  👍

Fix is released in https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.17.0-preview3


Document PaymentMethod functionality for Nets Easy

Description
Document PaymentMethod functionality for Nets Easy
Additional Information
No response
Tasks
No response
Acceptance Criterias
No response

https://github.com/Altinn/altinn-studio-docs/pull/1799