wait_for_frames() seemingly retrieving framesets from the past

Including Two Sets of System Info as this behavior is  occurring on both.

Required Info

Camera Model
D405

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 20.04, Jetpack 5.1.2-b104

Kernel Version (Linux Only)
5.10.120-tegra

Platform
NVIDIA Jetson Orin Nano

SDK Version
2.54.1

Language
C++

Segment
Robot

Required Info

Camera Model
D405

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 20.04, 5.1.2-b104

Kernel Version (Linux Only)
5.10.120-tegra

Platform
NVIDIA Jetson Orin Nano

SDK Version
2.54.2

Language
C++

Segment
Robot

Issue Description
We have a system based on the Jetson Orin Nano that acquires aligned images upon receiving a trigger signal.
Upon noticing that some of the images that were being saved out reflected a state prior to when the trigger single was received, I made the following code to wait for 10 framesets from the realsense camera, add them to an openCV array and then write them out:
//Debug Terminal statement
        std::cout << "DEBUG MODE. Set debutMode parameter in openCVimagesave function to false if not intentional" << std::endl;
        // Debug Variable Init
        Mat image_holder,imageWithText;

        // Initialize an array (vector) of cv::Mat images
        std::vector<cv::Mat> debugImages(imageQuantity);

        // For loop  based on imageQuantity to add images to debugimage array
        for (int i = 0; i < imageQuantity; ++i)
        {
            rs2::frameset data = g_pipe.wait_for_frames();               // Wait for next set of frames from the camera
            rs2::frameset aligned_frames = align_to_color.process(data); // Align the depth frame to color frame

            //color_img = aligned_frames.get_color_frame(); // Get the aligned color frame
            color_img = aligned_frames.get_color_frame(); // Get color frame
            depth = aligned_frames.get_depth_frame();     // Get the aligned depth frame

            // Query frame size (width and height)
            w = depth.as<rs2::video_frame>().get_width();
            h = depth.as<rs2::video_frame>().get_height();

            wc = color_img.as<rs2::video_frame>().get_width();
            hc = color_img.as<rs2::video_frame>().get_height();

            image_holder = frame_to_mat(color_img);

            debugImages[6]=image_holder;

        }

         // For loop  based on imageQuantity to click through and view images in debugimage array
        for (int i = 0; i < 6; ++i)
        {
            // Copy the image to avoid modifying the original
            imageWithText = debugImages[i].clone();

            // Define the text to display (image number)
        std::string text = "Image " + std::to_string(i + 1);

        // Define the position of the text
        cv::Point textPosition(10, 30); // (x, y) coordinates for the upper-left corner

         // Define font properties
        int fontFace = cv::FONT_HERSHEY_SIMPLEX;
        double fontScale = 1.0;
        cv::Scalar fontColor(255, 255, 255); // White color for the text
        int thickness = 2;

        // Add the text to the image
        cv::putText(imageWithText, text, textPosition, fontFace, fontScale, fontColor, thickness);

        // Display the image with the text
        cv::imshow("Debug Images", imageWithText);

        // Wait for a key press before displaying the next image
        imwrite(g_globalPath +"Image " + std::to_string(i + 1)+".jpg", imageWithText); // Color image write
        cv::waitKey(0);
}

Image Output:

The results showed that some of the frames are out of order (see timestamp on phone).  I was under the impression that wait_for_frame() calls block the thread until a set of frames is successfully received after the function is called.... Is that not the case?
If so what would be the correct way to implement the above code snipped so 6frames are saved out in the correct order starting from the time the trigger signal is received?
As I try more things to fix this issue I'll update the topic but any ideas or solutions would be greatly appreciated!

Hi @ndaley7  You are correct, wait_for_frames() blocks until a complete frame is available.
Frames 2, 4 and 6 have the same timestamp (10:55.47).  That would suggest to me that 'hiccups' are taking place during streaming, where a new frame has a problem and is judged to be 'bad'.  In that situation, the RealSense SDK jumps back to the last known good frame and progresses forwards again from that point.  So the timestamps of the frames may appear out of order because the SDK is jumping back repeatedly to a previous 'good' frame.

I had the same thought about why 11:04.01 would not be judged to be a good frame.
https://github.com/IntelRealSense/librealsense/issues/7837#issuecomment-754970222 offers an alternative explanation for why old frames may be returned when wait_for_frames() is used.
FPS has a direct relationship with the exposure value - as described at https://github.com/IntelRealSense/librealsense/issues/1957#issuecomment-400715579 - so setting a very small manual exposure value of 1732 for the depth sensor could have unpredictable consequences (the default depth exposure is 33000).

I had the same thought about why 11:04.01 would not be judged to be a good frame.
https://github.com/IntelRealSense/librealsense/issues/7837#issuecomment-754970222 offers an alternative explanation for why old frames may be returned when wait_for_frames() is used.
FPS has a direct relationship with the exposure value - as described at https://github.com/IntelRealSense/librealsense/issues/1957#issuecomment-400715579 - so setting a very small manual exposure value of 1732 for the depth sensor could have unpredictable consequences (the default depth exposure is 33000).

The exposure time I set was the minimum allowable amount according to the realsenseviewer program, and also does not cause these kind of issues when recording a ROSBAG file there.
If internally the frames are being queued asynchronously as mentioned here:
https://github.com/IntelRealSense/librealsense/issues/7837#issuecomment-754970222
Then why are the same problems not seen?

I note that your script uses the following lines twice in different parts of the script.
// For loop  based on imageQuantity to add images to debugimage array
for (int i = 0; i < imageQuantity; ++i)
{

The code might be more reliable if both blocks under the 'for int' 6-frame counting condition were placed under a single one if it is possible to do so.  Something like this:
 // For loop  based on imageQuantity to add images to debugimage array
        for (int i = 0; i < imageQuantity; ++i)
        {
            rs2::frameset data = g_pipe.wait_for_frames();               // Wait for next set of frames from the camera
            rs2::frameset aligned_frames = align_to_color.process(data); // Align the depth frame to color frame

            //color_img = aligned_frames.get_color_frame(); // Get the aligned color frame
            color_img = aligned_frames.get_color_frame(); // Get color frame
            depth = aligned_frames.get_depth_frame();     // Get the aligned depth frame

            // Query frame size (width and height)
            w = depth.as<rs2::video_frame>().get_width();
            h = depth.as<rs2::video_frame>().get_height();

            wc = color_img.as<rs2::video_frame>().get_width();
            hc = color_img.as<rs2::video_frame>().get_height();

            image_holder = frame_to_mat(color_img);

            debugImages[6]=image_holder;

// SECOND BLOCK OF CODE INSERTED WITHIN THE FIRST

// Copy the image to avoid modifying the original
            imageWithText = debugImages[i].clone();

            // Define the text to display (image number)
        std::string text = "Image " + std::to_string(i + 1);

        // Define the position of the text
        cv::Point textPosition(10, 30); // (x, y) coordinates for the upper-left corner

         // Define font properties
        int fontFace = cv::FONT_HERSHEY_SIMPLEX;
        double fontScale = 1.0;
        cv::Scalar fontColor(255, 255, 255); // White color for the text
        int thickness = 2;

        // Add the text to the image
        cv::putText(imageWithText, text, textPosition, fontFace, fontScale, fontColor, thickness);

        // Display the image with the text
        cv::imshow("Debug Images", imageWithText);

        // Wait for a key press before displaying the next image
        imwrite(g_globalPath +"Image " + std::to_string(i + 1)+".jpg", imageWithText); // Color image write
        cv::waitKey(0);

   // END OF THE FOR INT CONDITION

}

I note that your script uses the following lines twice in different parts of the script.

That code was set up only to help debug this problem and nothing more.
I needed code that would first collect 6 frames and then display the 6 that were collected.
The actual application where we use wait_for_frames() is below (and where we first started noticing frames coming from the past).
It runs when a signal is received (upto ~twice per second).  All it does is align the depth to color frame and save both images out via open CV:
else if (!debugMode) // STANDARD- Captures and saves out Color Image and Aligned Depth Image
    {
        rs2::frameset data = g_pipe.wait_for_frames(); // Wait for next set of frames from the camera

        // Check for Color Alignment Boolean and make appropriate changes
        if (g_colorAlignedDepth)
        {
            // Change Global
            g_output_color = "_Aligned_Color.png";
            g_output_depth = "_Aligned_Depth.png";

            rs2::frameset aligned_frames = align_to_color.process(data); // Align the depth frame to color frame

            color_img = aligned_frames.get_color_frame(); // Get the aligned color frame
            depth = aligned_frames.get_depth_frame();     // Get the aligned depth frame
        }
        // Query frame size (width and height)
        w = depth.as<rs2::video_frame>().get_width();
        h = depth.as<rs2::video_frame>().get_height();

        wc = color_img.as<rs2::video_frame>().get_width();
        hc = color_img.as<rs2::video_frame>().get_height();

        // Create OpenCV matrix of size (w,h) from the colorized depth data
        // doing depth frame to meeters to get the output scaling factor
        // Mat depth_imageM=depth_frame_to_meters(depth);

        Mat depth_image = frame_to_mat(depth);

        Mat color_image = frame_to_mat(color_img);

        // Path Output

        imwrite(appendTimecode(g_output_depth, g_globalPath), depth_image); // Color image write
        imwrite(appendTimecode(g_output_color, g_globalPath), color_image); // Depth image write

}

Hello. I also made an alternate  function using poll for frames and saw similar results.

I needed code that would first collect 6 frames and then display the 6 that were collected.

The 'for int' instruction directly before the wait_for_frames() line would likely not be collecting 6 frames.  It would instead cause the program to skip past the first several frames after the camera pipeline starts.  Such a mechanism is usually used to avoid frames having bad exposure in the short time period whilst the auto-exposure is still settling down after the stream is activated.
This mechanism is demonstrated at the C++ / OpenCV official example program at the link below.
https://github.com/IntelRealSense/librealsense/blob/master/doc/stepbystep/getting_started_with_openCV.md
  // Camera warmup - dropping several first frames to let auto-exposure stabilize
    rs2::frameset frames;
    for(int i = 0; i < 30; i++)
    {
        //Wait for all configured streams to produce a frame
        frames = pipe.wait_for_frames();
    }

I needed code that would first collect 6 frames and then display the 6 that were collected.

The 'for int' instruction directly before the wait_for_frames() line would likely not be collecting 6 frames. It would instead cause the program to skip past the first several frames after the camera pipeline starts. Such a mechanism is usually used to avoid frames having bad exposure in the short time period whilst the auto-exposure is still settling down after the stream is activated.
This mechanism is demonstrated at the C++ / OpenCV official example program at the link below.
https://github.com/IntelRealSense/librealsense/blob/master/doc/stepbystep/getting_started_with_openCV.md
  // Camera warmup - dropping several first frames to let auto-exposure stabilize
    rs2::frameset frames;
    for(int i = 0; i < 30; i++)
    {
        //Wait for all configured streams to produce a frame
        frames = pipe.wait_for_frames();
    }

How would you recommend I go about collecting 6 frames in a row once a signal is sent?

The genlock hardware sync system allows the number of frames sent after a trigger signal is received to be defined.  This feature is called a burst count.
My understanding is that the number of frames to produce is calculated by 4 + the number of frames required.  So to produce 6 frames when the trigger signal is received, the camera's Inter Cam Sync Mode hardware sync option would be set to '10' (which is 4 + 6 frames).
Once the required number of frames have been generated, the camera will then wait for the next trigger signal before it produces another set of frames.
Intel no longer provide technical support for genlock mode and the online documentation for it was removed.  However, genlock is still supported within the RealSense SDK if you need to use it.  You can access an archived PDF document version of the removed documentation at the link below.
External Synchronization.pdf

I'll note this down as a potential alternate option.  Does this method also do the valid frame checking that poll_for_frames() and wait_for_frames() conduct?
I'd also like to focus back on the original issue..... Is there no wait to use wait_for_frames() or poll_for_frames() and ensure its not grabbing a previous set of "good" frames?
I want to make sure that is the case before I have to change the whole structure of our code.

As far as I am aware, genlock sync does not check whether a frame is valid when generating 'burst' frames.
With poll_for_frames, new frames arrive instantly without a wait period and are not subject to checks to confirm if the frame is complete before it becomes available.
According to https://github.com/IntelRealSense/librealsense/issues/1686#issuecomment-388606174 a condition under which the SDK can return to the last known good frame is if frame drops on the stream occur, suggesting that the chances of going back to a previous frame are reduced if frame drops are minimized.  A way to do this is to increase the frame queue size of a stream so that it can hold a greater number of frames simultaneously.

As far as I am aware, genlock sync does not check whether a frame is valid when generating 'burst' frames.
With poll_for_frames, new frames arrive instantly without a wait period and are not subject to checks to confirm if the frame is complete before it becomes available.
According to #1686 (comment) a condition under which the SDK can return to the last known good frame is if frame drops on the stream occur, suggesting that the chances of going back to a previous frame are reduced if frame drops are minimized. A way to do this is to increase the frame queue size of a stream so that it can hold a greater number of frames simultaneously.

Oooh I had not heard of this before.  Is there a link to any examples of implementing the frame queue, and are there detrimental effects to increasing it?

There is a official C++ example script for setting the queue size at the link below.  The default value for the queue is '1', and this script sets it to '10'.
https://github.com/IntelRealSense/librealsense/wiki/Frame-Buffering-Management-in-RealSense-SDK-2.0#frame-buffering-examples-in-the-sdk
The main detrimental side-effect of increasing the frame queue size is that the program consumes a higher amount of the computer's available memory capacity due to having to hold a greater number of frames in memory simultaneously.
By default when the capacity is '1', the queue can hold 16 frames of each stream type at a time, with the oldest frames dropping out the queue as new frames enter, like a continuously moving conveyor belt.

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

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

I'm still testing things, but I am curious about the syncer... Is it possible to use with the D405 and if that is the case is there an example showing where the color sensor is referenced from?

If you mean hardware sync then no, the D405 model does not have a set of physical 'sync pin' connectors that is required for hardware sync,

If you mean hardware sync then no, the D405 model does not have a set of physical 'sync pin' connectors that is required for hardware sync, My apologies for overlooking that you had a D405 when suggesting it.

I'm Refering to this sync acquisition method:

Thanks very much for the clarification.
I do not see any reason why you could not use Syncer code with a D405.  However, the D405 does not have a separate RGB sensor and instead obtains its RGB image from the depth sensor.  So when calling RGB options in a script, you use depth_sensor instead of color_sensor (you do not need to define a color sensor).
As depth and RGB are provided by the same sensor, stopping depth will also stop color, so you do not need a color stop command either.

Hmmm I seem to only be getting the depth frame when I try this modification to the sample code (for configuration specification):
Configuration:
std::string globalPath = "IMG/";
// Create a context object
    rs2::context ctx;
    auto list = ctx.query_devices();
    if (list.size() == 0) {
        std::cerr << "No RealSense device connected." << std::endl;
        return EXIT_FAILURE;
    }

    // Get the first device
    rs2::device dev = list.front();

    // Access the sensors
    rs2::sensor depth_sensor;
    rs2::sensor color_sensor;

    for (auto& sensor : dev.query_sensors()) {
        if (sensor.get_info(RS2_CAMERA_INFO_NAME) == std::string("RGB Camera")) {
            color_sensor = sensor;
        } else if (sensor.get_info(RS2_CAMERA_INFO_NAME) == std::string("Stereo Module")) {
            depth_sensor = sensor;
        }
    }

    // Desired settings
    int width = 848;   // Set desired width
    int height = 480;   // Set desired height
    int fps = 30;       // Set desired frame rate

    // Open depth stream with specific resolution and frame rate
    bool depth_opened = false;
    for (auto& profile : depth_sensor.get_stream_profiles()) {
        if (auto vid_profile = profile.as<rs2::video_stream_profile>()) {
            if (vid_profile.width() == width && vid_profile.height() == height &&
                vid_profile.fps() == fps && vid_profile.format() == RS2_FORMAT_Z16) {
                depth_sensor.open(vid_profile);
                depth_opened = true;
                break;
            }
        }
    }

    if (!depth_opened ) {
        std::cerr << "Failed to open streams with specified resolution, format, or frame rate." << std::endl;
        return EXIT_FAILURE;
    }

// Create new syncer and set it’s capacity, by default the capacity is 1
rs2::syncer sync(10);

//In order to begin getting data from the sensor, we need to register a class to handle frames,
//in our case we provide the syncer at the sensor initialization.
depth_sensor.start(sync);
//color_sensor.start(sync);

Frame Retreival:
s2::frame depth, color_img;
    int w, h, wc, hc;

        // Debug Variable Init
        Mat image_holder,imageWithText;

        int imageQuantity=10;

        // Initialize an array (vector) of cv::Mat images
        std::vector<cv::Mat> debugImages(imageQuantity);

        // For loop  based on imageQuantity to add images to debugimage array
        for (int i = 0; i < 10; ++i)
        {
            rs2::frameset data = sync.wait_for_frames(); // Wait for next set of frames from the camera
            //rs2::frameset aligned_frames = align_to_color.process(data); // Align the depth frame to color frame

            //color_img = aligned_frames.get_color_frame(); // Get the aligned color frame
            depth = data.first_or_default(RS2_STREAM_DEPTH);     // Get the aligned depth frame
            color_img = data.first_or_default(RS2_STREAM_COLOR); // Get color frame

            // Query frame size (width and height)
            w = depth.as<rs2::video_frame>().get_width();
            h = depth.as<rs2::video_frame>().get_height();

            wc = color_img.as<rs2::video_frame>().get_width();
            hc = color_img.as<rs2::video_frame>().get_height();

            image_holder = frame_to_mat(color_img);

            debugImages[i]=image_holder;

        }

         // For loop  based on imageQuantity to click through and view images in debugimage array
        for (int i = 0; i < imageQuantity; ++i)
        {
            // Copy the image to avoid modifying the original
            imageWithText = debugImages[i].clone();

            // Define the text to display (image number)
        std::string text = "Image " + std::to_string(i + 1);

        // Define the position of the text
        cv::Point textPosition(10, 30); // (x, y) coordinates for the upper-left corner

         // Define font properties
        int fontFace = cv::FONT_HERSHEY_SIMPLEX;
        double fontScale = 1.0;
        cv::Scalar fontColor(255, 255, 255); // White color for the text
        int thickness = 2;

        // Add the text to the image
        cv::putText(imageWithText, text, textPosition, fontFace, fontScale, fontColor, thickness);

        // Display the image with the text
        cv::imshow("Debug Images", imageWithText);

        // Wait for a key press before displaying the next image
        imwrite(globalPath +"Image " + std::to_string(i + 1)+".jpg", imageWithText); // Color image write
        cv::waitKey(0);

        }
 // Close all windows
    cv::destroyAllWindows();

// To stop streaming, we simply need to call the sensor's stop method
// After returning from the call to stop(), no frames will arrive from this sensor
depth_sensor.stop();
//color_sensor.stop();

// To complete the stop operation, and release access of the device, we need to call close()
//per sensor
depth_sensor.close();

I get a frame_ref error when it tries to get the color frame from the captured frameset.

@MartyG-RealSense  I think we can rule out a settings issue as well.  I enabled the pipeline recording functionality and stepped through the result step by step.  At least when it comes to writing out the ROSBAG file, all frames show the time on the phone increasing as expected (Settings and a few sequential frames seen below):

I do not have any further suggestions about this out of order frames issue at this time, unfortunately.  I see that you reposted this issue on the Intel RealSense Help Center support forum, so a member of the team there may be able to offer advice.

I do not have any further suggestions about this out of order frames issue at this time, unfortunately. I see that you reposted this issue on the Intel RealSense Help Center support forum, so a member of the team there may be able to offer advice.

Thats understandable.  Are there any examples of using the syncer to get color and depth frames on the D405?  Even Python will suffice if it exsits.
Concerning the frame grabbing, I'll delve further in to the source code to see if I can figure out what the enable recording flag is doing differently than the wait_for_frames()/poll_for_frames() approach.

D405-specific scripts are rare, with the D405 version of the Python depth-color alignment script at https://github.com/IntelRealSense/librealsense/issues/11329 (which is not a syncer script) being the main example of one made specially for D405.
https://github.com/IntelRealSense/librealsense/issues/774 advises that both syncer and pipeline match frames using the same logic.  There is typically not a performance advantage from using syncer instead of pipeline.  It is also recommended to the RealSense user in that case to build librealsense from source code with the **-DCMAKE_BUILD_TYPE=release ** flag included in the CMake build instruction if it has not been used already.

D405-specific scripts are rare, with the D405 version of the Python depth-color alignment script at #11329 (which is not a syncer script) being the main example of one made specially for D405.
#774 advises that both syncer and pipeline match frames using the same logic. There is typically not a performance advantage from using syncer instead of pipeline. It is also recommended to the RealSense user in that case to build librealsense from source code with the **-DCMAKE_BUILD_TYPE=release ** flag included in the CMake build instruction if it has not been used already.

other issues are coming up but I was able to get the color/ depth sensors up by adding the configurations at the same time as mentioned here:
https://github.com/IntelRealSense/librealsense/issues/7010#issuecomment-668093225
 // Open depth stream with specific resolution and frame rate
    bool depth_opened = false;
    for (auto& profile : g_depth_sensor.get_stream_profiles())
    {
        if (auto vid_profile = profile.as<rs2::video_stream_profile>()) {
            if (vid_profile.width() == width && vid_profile.height() == height &&
                vid_profile.fps() == fps && vid_profile.format() == RS2_FORMAT_Z16) {
                // Depth Stream Profile
                vid_profile_depth=vid_profile;

                break;
            }
        }
    }

    std::cout << "Opening Color Stream with Specified Settings" << std::endl;
    // Open color stream with specific resolution and frame rate
    // No color sensor in D405, comes from depth
    bool color_opened = false;
    for (auto& profile : g_depth_sensor.get_stream_profiles())
    {
        if (auto vid_profile = profile.as<rs2::video_stream_profile>()) {
            if (vid_profile.width() == width && vid_profile.height() == height &&
                vid_profile.fps() == fps && vid_profile.format() == RS2_FORMAT_BGR8&& vid_profile.stream_type() == RS2_STREAM_COLOR) {
                    //This code is failing on the open.
                    //It seems like you can only open the sensor for color OR depth.
                    //This needs to be resolved before the frame queue test can be implemented as well.
                //Color Stream Profile
                vid_profile_color=vid_profile;
                break;
            }
        }
    }

    //Construct the const vector
//Create Compound Color Depth Profile Holder
    const std::vector<rs2::stream_profile> & profilesColorDepth={vid_profile_depth,vid_profile_color};

    //Open Depth Sensor with Combination of Depth and Color Profiles

    g_depth_sensor.open(profilesColorDepth);
                depth_opened = true;
                color_opened = true;

      //Set Specific Depth Sensor Settings
    g_depth_sensor.set_option(RS2_OPTION_ENABLE_AUTO_EXPOSURE, false);
    g_depth_sensor.set_option(RS2_OPTION_EXPOSURE, 1732);
    g_depth_sensor.set_option(RS2_OPTION_GAIN, 23);
    g_depth_sensor.set_option(RS2_OPTION_WHITE_BALANCE, 4120);

    ```

Thanks so much @ndaley7 for sharing your solution to the configuration issue!

Case closed due to no further comments received.


badges: improve test coverage.

Signed-off-by: Andreas Stenius<EMAIL_ADDRESS>Hey, I just made a Pull Request!
More badge tests.
Actually found two minor things to address looking at lines that wasn't covered by the tests.
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks for adding more tests! 💯
I guess we don't need an additional changeset since the current badge plugin aren't released yet.

Yeah, I even got to remove the initial changeset, as that is only needed to actually bump a package version, so not needed for new packages/plugins.
Although, @freben @Rugvip, as there were changes to the catalog plugin, maybe we need a changeset for that..?
or that was what we wanted to address before next release, to decouple it in a more generic way, so we don't have that inter-plugin dependency..?
https://github.com/backstage/backstage/pull/4581#pullrequestreview-614090814


Added sources for where to interact and hangout with all the best people cough Pitt CSC PLUG

Added sources for where to interact and hangout with all the best people cough Pitt CSC PLUG

@Zmwang622 write a guide on getting involved with the Pitt community. Obviously should have links to CSC + WiCS stuff, but add what you want

@Zmwang622 this would be good one to do next

Im tireddddd
On Sun, Jul 5, 2020 at 1:25 AM Mathew Varughese<EMAIL_ADDRESS>wrote:

@Zmwang622 https://github.com/Zmwang622 this would be good one to do
next
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653844235,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIYCF7UBL66OSQESRQNOAUDR2AFGHANCNFSM4LT6IZEA
.

I can do it?
On Sun, Jul 5, 2020 at 10:05 AM Ming<EMAIL_ADDRESS>wrote:

Im tireddddd
On Sun, Jul 5, 2020 at 1:25 AM Mathew Varughese<EMAIL_ADDRESS>wrote:

@Zmwang622 https://github.com/Zmwang622 this would be good one to do
next
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<
https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653844235
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AIYCF7UBL66OSQESRQNOAUDR2AFGHANCNFSM4LT6IZEA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653893002,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKKYL652UMH3C65TTDJ3P3R2CCCRANCNFSM4LT6IZEA
.

Nah i will
On Sun, Jul 5, 2020 at 10:07 AM Mathew Varughese<EMAIL_ADDRESS>wrote:

I can do it?
On Sun, Jul 5, 2020 at 10:05 AM Ming<EMAIL_ADDRESS>wrote:

Im tireddddd
On Sun, Jul 5, 2020 at 1:25 AM Mathew Varughese <
<EMAIL_ADDRESS>wrote:

@Zmwang622 https://github.com/Zmwang622 this would be good one to do
next
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<

https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653844235

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AIYCF7UBL66OSQESRQNOAUDR2AFGHANCNFSM4LT6IZEA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653893002
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ADKKYL652UMH3C65TTDJ3P3R2CCCRANCNFSM4LT6IZEA
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PittCSWiki/pittcswiki/issues/24#issuecomment-653893313,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIYCF7WEZ62EA22LAHM3YGDR2CCLRANCNFSM4LT6IZEA
.


[Relay] Port param dict save/load from NNVM

This PR addresses #2413 by porting the nnvm.compiler.save_param_dict and nnvm.compiler.load_param_dict functions to Relay as tvm.relay.save_param_dict and tvm.relay.load_param_dict, respectively.
To serialize NDArrays, we wrap them in TensorValues, which have serialization functions defined on them.  Let me know of any concerns about this approach.
While porting, I found that ClosureNode, TupleValueNode, and TensorValueNode were not registered with TVM_REGISTER_NODE_TYPE.  This PR also addresses this issue.
The test_bigendian_rpc_param test has not yet been confirmed to pass, so I still need to wait for the results from CI.
@jroesch @tqchen @srkreddy1238
Apologies for being late on this one.  Let me know of anyone else I should @.

test_bigendian_rpc_param seems to be passing, when it shouldn't be.
I think this path
host = os.environ.get("TVM_POWERPC_TEST_HOST", None)
port = os.environ.get("TVM_POWERPC_TEST_PORT", 9090)
if host is None:
    return

is still being taken.

@weberlo we should use the original function that actually saves the ndarray dict(as in NNVMv1), otherwise the binary format won't be readable by graph_runtime.load_params

@tqchen Do you mean these functions?  If all of the tests are passing without using those functions, does that mean we need a new test?

Yes, I do mean these functions. A more general test is to use these save_dict function and then call graphruntime.load_params to load them in.

@weberlo please update the PR

@tqchen I'm having some weird problems with includes.  Maybe my approach is wrong, but I'm trying to take the functions from nnvm/src/compiler/graph_runtime.cc and put them in src/runtime/graph/graph_runtime.cc.  These functions require this code snippet in the header though:
/*!
 * \brief wrapper node container for exchange.
 */
struct NDArrayWrapperNode : public ::tvm::Node {
  std::string name;
  tvm::runtime::NDArray array;

  void VisitAttrs(tvm::AttrVisitor* v) final {
    v->Visit("name", &name);
    v->Visit("array", &array);
  }

  static constexpr const char* _type_key = "NDArrayWrapper";
  TVM_DECLARE_NODE_TYPE_INFO(NDArrayWrapperNode, Node);
};

TVM_DEFINE_NODE_REF(NDArrayWrapper, NDArrayWrapperNode);

.  But when I try to put #include <tvm/node/node.h> in the header, it says it can't find it.
Is there a different header I should be including, or is this struct definition using outdated types?

@tqchen: @jroesch suggested to move the functions to src/relay/backend/param_dict.[h/cc].  Any objections?

that works you can move the nnvm impl there, and use the new exposed packfubc

@weberlo some final comments


[Documentation] Offline Install Instructions: Ubuntu, Debian, Raspbian

Currently the project has no documentation or instructions on how to install Homebrewery on Ubuntu or Raspbian. As these are popular distributions to run on the Raspberry Pi as a cheap computer to act as a standalone server, improving the documentation in this area should reduce the barrier to entry, especially for users who want to maintain complete control over their content.
The existing FreeBSD install instructions (and possibly the Docker YAML configuration) should serve as a useful starting point.

Target OSes:

[x] Ubuntu
[ ] Debian
[ ] Raspbian
[ ] MacOS

Ubuntu (x64):
After a lot of mucking about with UEFI on the machine I was trying to use, I finally got Homebrewery running on Ubuntu x64. Testing beyond getting to the expected homepage has not yet been conducted.
The terminal commands are as follows:
Package install
sudo apt update
sudo apt install git nodejs npm mongodb

Update Node to v16
Ubuntu's packaged NodeJS was only version 10, which had issues with things like optional chaining. The following commands updated it to v16 for me:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Clone Homebrewery & Install Node Packages
git clone https://github.com/naturalcrit/homebrewery
cd homebrewery/
npm install
npm audit fix
npm run postinstall

Set Environment Variable
A simple NODE_ENV=local only creates a Shell variable, which is not detected when the server is started. It must be promoted to an Environment variable via export.
NODE_ENV=local
export NODE_ENV

Start Homebrewery
node ./server.js

All having worked correctly, you should now receive the message server running on port:8000 and be able to navigate to the Homebrewery page at http://<IP_ADDRESS>:8000.
Potential issues:

When I run node server.js, I get a "Unexpected token" message about a "."???
Your version of Node is outdated, so does not support optional chaining. Update to a newer version of Node.

When I go to http://<IP_ADDRESS>:8000, I get a SSL error???
Your NODE_ENV environment variable is not set to local, so you are being redirected to the https page. Correct your NODE_ENV variable.

Initial pass at a Ubuntu install script: https://raw.githubusercontent.com/G-Ambatte/homebrewery/addInstallDocs-%231896/install/ubuntu/install.sh
To do:

[ ] more install testing
[ ] ensure MongoDB is running as a service and will start at boot
[ ] get Homebrewery running as a service and start on boot


volume name is not shown in container "volume" tab for mounts.

Rancher Version: Build from master
Server version - Build from master
rancher/storage-nfs:v0.2.0
Steps to reproduce the problem:
Create a service using volumes from rancher-nfs volume driver with the following yml
version: '2'
services:
nginx1:
image: nginx
volumes:
- foo1:/tmp
nginx2:
image: nginx
volumes:
- foo2:/mydata1
volumes:
foo1:
driver: rancher-nfs
external: false
foo2:
driver: rancher-nfs
external: false
once the service is started , go to container details page and go to volumes tab.
volume name is not shown in container "volume" tab for mounts.

Tested with 1.2.0-pre4-rc9.
Volume name is shown in container "volume" tab for mount points.


Generate meaningful class names

Is your feature request related to a problem? Please describe.
The problem is that supported styling/theming options are insufficient for our needs. To extend the range of elements we can style, we inject a custom CSS file in the Redocly output. Regrettably, elements generated by Redocly do not have meaningful class names and therefore we are not able to come up with reliable CSS selectors to style the majority of elements.
Describe the solution you'd like
My request is to add an option in the Redocly configuration file that would ensure meaningful class names are generated in the output.
Additional context
Our current solution is based on a fork of Redoc CE. We were able to modify it to make the output generate meaningful class names.
Here is how we modified it: https://github.com/Kontent-ai-Learn/kontent-ai-learn-redoc/commit/1a10ced2ee8c7c19ed30a98b5023dbe112106f68
Here is the current solution. Inspect the DOM to check the class names: https://kontent.ai/learn/reference/delivery-api/
Now, we are switching to the Redocly API Registry and we are really missing this.

We have this feature in our next major product.

Hi @adamaltman, thanks for your response. Could you be more specific? What product? Is it going to be part of the Redocly API registry? When are you planning to release it?
Do you have any roadmap you could share?

Hi @MilanLund , our products are made of various components. We are planning to release a new developer portal (it's a complete rewrite). One of the features it has is CSS variables as styles. It uses a component which renders the API docs (we call it API docs or reference docs), and that component has been rewritten and that also includes support for CSS variables as styles. The current plan is to release it in Q2'23 (hopefully May 5th). I will publish a web page with a form for early access request within the next month. Some early adopters get early access. The web page will explain the roadmap too.

Thank you for your efforts, @adamaltman.
My understanding is that this new feature will be:

available in the Developer Portal only (not in the API registry that we are actually using),
based on defining CSS variables only. From my technical knowledge of CSS variables, this will be just a different way of defining a selected (and limited) number of properties (like colors, paddings, font sizes, etc.) which is currently possible through theming. My goal is to have meaningful CSS class names in the markup in order to target them with CSS selectors and style them using my custom CSS.

I hope the above-stated points are understandable. IMO my feature request is still valid as the new feature does not cover the proposed use case and will be available in a different product that we are using.

As Adam says, this is coming in a future version of the docs tools that will replace the current documentation generated by the CLI. Since there's nothing to do in the CLI project, I'll close this issue and ask you to look out for new releases (I don't want to sound like a marketing person, but the newsletter would keep you updated about releases including the open source releases once we have them - so just sharing that in case it's interesting.)


[WIP] MudDatePicker: Fix FluentValidation on render

NOTE: This Pull Request is a work in progress

Description

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] The PR is submitted to the correct branch (dev).
[ ] My code follows the code style of this project.
[ ] I've added relevant tests.

It looks similar to the problem I had. See : https://github.com/MudBlazor/MudBlazor/pull/3943


Could not load file or assembly: Microsoft.Data.Tools.Schema.Sql.resources.dll

SqlPackage or DacFx Version: 160.6296.0
.NET Framework (Windows-only) or .NET Core: .net 6.0
Environment (local platform and source/target platforms): Windows 10

Steps to Reproduce:

Use DacServices.Deploy

I am using Microsoft.Data.SqlClient v4.1.1 and DacFx v160.6296.0
Below are the messages the deploy feeds back before failing:
Initializing deployment
Analyzing deployment plan
Updating database
Creating deployment plan
Verifying deployment plan
Deploying package to database
Creating deployment plan
Initializing deployment
Message SQL73001: Initializing deployment (Start)
And then after a decently long pause, I get the error:
System.IO.FileNotFoundException: 'Could not load file or assembly: Microsoft.Data.Tools.Schema.Sql.resources.dll'

I created a new project in the same solution, copied the code over from the old one. I then removed the Micorosft.Data.SqlClient dependency and have DacFx as my only NuGet reference and still get the same error.

This is a duplicate of #148. We'll be using that issue to track. Thanks for the new info @Phylum123!


dynamodb_table_tags and s3_bucket_tags cause remote state to always reinitialize

#488 introduced the helpful fields dynamodb_table_tags and s3_bucket_tags. Unfortunately, they cause remote state to always reinitialize, since the fields that they set are not retained for comparison.
The log message is:

Backend config has changed from map[bucket:my-bucket dynamodb_table:my-lock-table encrypt:true key:path/terraform.tfstate region:us-east-1] to map[dynamodb_table:my-lock-table s3_bucket_tags:[map[created_by:terragrunt name:Terraform remote state]] dynamodb_table_tags:[map[name:Terraform lock table created_by:terragrunt]] bucket:my-bucket key:path/terraform.tfstate region:us-east-1 encrypt:true]

For comparison, previous (as retrieved) and desired configuration:
map[bucket:my-bucket dynamodb_table:my-lock-table encrypt:true key:path/terraform.tfstate region:us-east-1]
map[bucket:my-bucket dynamodb_table:my-lock-table encrypt:true key:path/terraform.tfstate region:us-east-1 s3_bucket_tags:[map[created_by:terragrunt name:Terraform remote state]] dynamodb_table_tags:[map[name:Terraform lock table created_by:terragrunt]]]

For now, the workaround is to delete dynamodb_table_tags and s3_bucket_tags after first setting up remote state.

Ah, good catch! Hopefully fixed in https://github.com/gruntwork-io/terragrunt/pull/502.

New binaries should show up here soon: https://github.com/gruntwork-io/terragrunt/releases/tag/v0.15.1


Enable intercom for self hosted instances

Test coverage results :test_tube:
:red_circle: Total coverage has decreased
// Code coverage diff between base branch:release and head branch: intercom-self-hosted

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
total
53.73 (0)
35.7 (0)
32.31 (0)
54.3 (-0.01)

:red_circle:
app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx
58.11 (-0.33)
32.35 (0.41)
7.14 (0)
59.09 (-2.02)

@rishabhsaxena we also need to inject our intercom app id into the docker image env variables

/ok-to-test sha=b38f50d

/ok-to-test sha=276f837

/ok-to-test sha=84d19ab


24px - Eye

We have a 24px eye but it doesn't match the 16 px version.

From left to right:

original 24px icon with fill / without border
original 24px icon with fill + border
Adapted pupil (small)
Adapted pupil (medium)

I'd say the 3rd one is the one which looks more consistent with the 16px version, but if the pupil is too small we can go for the 4th version.
https://www.figma.com/file/2rjsQp42uKvzPXzLZIqOeA/Octicons-v2-Source?node-id=746%3A1582

The slash version will depend on which eye we pick
https://www.figma.com/file/2rjsQp42uKvzPXzLZIqOeA/Octicons-v2-Source?node-id=746%3A2045

I prefer Adapted pupil small. It feels the most balanced and least intimidating 😂
@colebemis what do you think?


[WIP] Add submit method to primitives

Summary
Notebook: https://gist.github.com/ikkoham/8da241f47c2145c1be61704c6ac9193d
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

100 of 216 (46.3%)  changed or added relevant lines in 5 files are covered.
11 unchanged lines in 6 files lost coverage.
Overall coverage decreased (-0.1%) to 83.848%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit/primitives/primitive_future.py
18
23
78.26%

qiskit/primitives/estimator.py
18
29
62.07%

qiskit/primitives/sampler.py
22
41
53.66%

qiskit/primitives/base_sampler.py
18
47
38.3%

qiskit/primitives/base_estimator.py
24
76
31.58%

Files with Coverage Reduction
New Missed Lines
%

qiskit/primitives/estimator.py
1
81.18%

qiskit/primitives/sampler.py
1
72.29%

qiskit/extensions/quantum_initializer/squ.py
2
80.9%

qiskit/primitives/base_estimator.py
2
60.12%

qiskit/primitives/base_sampler.py
2
64.22%

qiskit/pulse/library/waveform.py
3
89.36%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
55950

Relevant Lines:
66728

💛  - Coveralls

I'm wondering which is appropriate, concurrent.Future or asyncio.Future. I feel we might be able to simplify the code using async features, but I'm not sure yet.

@t-imamichi If my understanding is correct, asyncio is non blocking but single thread. concurrent.futures supports multi thread (or process) prfgramming. In our case, it is nice to run the computation concurrently. So, I choose the multithreading.

I'm wondering which is appropriate, concurrent.Future or asyncio.Future. I feel we might be able to simplify the code using async features, but I'm not sure yet.

asyncio.Future would be fine as is, except it requires the user to use await which then requires you to use async functions, which then require using asyncio loops. asyncio is more intrusive to the user's programming model.

@rathishcholarajan suggested somewhere that we should use run() instead of submit() to be consistent with backend.run(). I think that's a good idea if you all agree.

@rathishcholarajan @jyu00 Thank you for your review. I improved codes according to your comments.

LGTM. I have just a few minor comments.

@jyu00 @t-imamichi Can we merge this PR? or do we have other discussion points?

@mergify refresh


feat: better unwrapping of java exception

What type of PR is this?

Check the PR title.

[ ] This PR title match the format: <type>(optional scope): <description>
[ ] The description of this PR title is user-oriented and clear enough for others to understand.
[ ] Attach the PR updating the user documentation if the current PR requires user awareness at the usage level. User docs repo

(Optional) Translate the PR title into Chinese.
(Optional) More detailed description for this PR(en: English/zh: Chinese).

en:
zh(optional):
(Optional) Which issue(s) this PR fixes:

(optional) The PR that updates user documentation:

Will review after updates to kitex & codec-dubbo.


Allow disabling of automatic error logging #102

I've created a PR towards main repository 🤞 🚀

Thanks @jalooc 👍  Do you think we should switch to patch-package in this case?

I think it's a good idea any time we make a fork with changes that we want to use in our project right away, to eliminate those 2 disadvantages.

Closing since it's merged in main repository.


Run tfhe-rs tests in CI

Fixes https://github.com/google/heir/issues/248

Not totally sure why rust-toolchain action is mising the toolchain when it should be optional... maybe it needs a version bump

It's because I pinned to a commit hash. If you use @stable it will read that and infer the rust toolchain version.


feat(startup): show CPU/GPU information with --debug

Description
This PR adds debug information about the system when --debug is enabled, allowing to have a slightly more information about the system, which can be especially useful when sharing logs.
Besides, it is an exercise to start laying down the functionalities we need in order to load the correct backends variants given the CPU/GPU capacity. We could for instance also have gpu variants pre-compiled for amd and gpu in the same binary (partly related to #1888)

I think in the future we can use this for a lot more, but let's start with the debug logs!


Remove short-names for gateways with all-numeric Top Level Domains

Fixes #7742 in Knative Serving
While exposing short-names for cluster local gateways, validate that the trimmed domain name does not have an all-numeric Top Level Domain.

/lgtm

/approve


Network Manager & Bluetooth Dongle

Using an M2Pro Mac Mini with your script and got it up and running on no time, but having some small errors
Receiving an unconfined network manager error and it's unable to find any of my USB dongles for Zigbee and Bluetooth previously being used on my pi. Any suggestions for a fix?

Happy to hear that the setup went well so far.
Can you provide logs showing the network manager error?
Regarding USB devices, there is currently no support for this in Lima VMs of type qemu nor for type vz.
But for longer times there is interest in adding such USB support to the Lima project. Looks like something is currently happening here, see https://github.com/lima-vm/lima/issues/2224.
Once this is a supported feature in the Lima project, it should be possible to use such USB dongles in this setup.


window.panelsRendered not updated with Zabbix Problems panel

Description
Using Zabbix Problems panel should update "panelsRendered" var in order to use it with rendering functions, which uses this variable to check if dashboard if fully loaded or not (https://github.com/grafana/grafana-image-renderer/blob/master/src/browser/browser.ts)
Expected behavior
window.panelRendered should be incremented once panel has finished loading.
Screenshots
Here you can see if the panel is the only present in dashboard, variable is "undefined"

If we add another panel, it is just 1 but should be 2

Software versions

Grafana
Zabbix
Grafana-Zabbix Plugin

7.0.4
5.0.2
3.12.2

Ok, it looks like I should use profiler.renderingCompleted() method to increase this counter.
// This is only done to increase a counter that is used by backend
    // image rendering to know when to capture image
    const loading = data.state;
    if (loading === LoadingState.Done) {
      profiler.renderingCompleted();
    }


Feedback Revision related to SQLpackage.exe command line

[Enter feedback here]
the latest SqlPackage.exe "I.e. SqlPackage .NET 6 Windows" defaults to the use of encryption.
Reference https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/dbmovement-scenario-exportuat#import-the-database
Specifically, "SqlPackage.exe /a:import /sf:D:\Exportedbacpac\my.bacpac /tsn:localhost /tdn: /p:CommandTimeout=1200"
the above command line throws an error

reference inline error message https://aka.ms/dacfx-connection
Also reference SQLPACKAGE troubleshooting guide.  https://learn.microsoft.com/en-us/sql/tools/sqlpackage/troubleshooting-issues-and-performance-with-sqlpackage?view=sql-server-ver16#connection

Suggested revision
include note on "New Sqlpackage.exe Encryption" feature
And links to SQLPACKAGE troubleshooting guide

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 7c5e8701-e1d4-25f8-d76a-ee7870b915e1
Version Independent ID: 624211c7-2eb4-7154-d38f-236dc6f8f7a9
Content: Export a copy of the standard user acceptance testing (UAT) database - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/database/dbmovement-scenario-exportuat.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @laneswenka
Microsoft Alias: laswenka

Bug 778387 has been logged to address this issue.

Reached out to PM for guidance.


Broken link to latest edition on README

The link in the README for Contributing To Sway seems to be broken - perhaps it's due to the recent change with the redirects in #2025 ?

Ah good point, it should be changed to point to master


[on namespace2 branch] Pass old post and modifier to "postEdit" and "postEditAsync" callbacks

On postEdit callback we need old post to compare fields. For example on embedly package we can check whether url changed or not.
Also modifier and old post parameters removed from postEditAsync callback. We need those for same reason.

You're right. I'll pass {postId: postId, post: post , modifier: modifier} as argument instead then.


The engine strength has dropped drastically

@escapias
That's not a bug - engine was not changed. It increases its strength with time - that was made for speed. I have plan to integrate another engine (Stockfish) and have issue for it (#9), but I will do it after I will have more time to improve it.
For now (and in the past) I don't recommend to use this extension for bullet games. By the way, you can always use any of past releases, (this stable for example https://github.com/recoders/chessbot/releases/tag/v0.4.4) and install it as development extension.


Translate MKVmergeBatcher in Russian

Hello. I want to translate MKVmergeBatcher in Russian. What do I have to do?

@p1zrv Hi, thx to reach me put. I have to handle the russian language into the app and provide you an excel with the blank russian translation! Unfortunately I'm leaving my house for a week so I don't know if I can provide it to you in the short period!

@p1zrv Hi, thx to reach me put. I have to handle the russian language into the app and provide you an excel with the blank russian translation! Unfortunately I'm leaving my house for a week so I don't know if I can provide it to you in the short period!

No problem, thanks for letting me know. I'll just wait for it.

Hi @p1zrv, sorry for the delay.
I added the Russian language selection to the code and made a new excel. You can find here: https://github.com/Bazzu85/MKVmergeBatcher/blob/master/Translactions/2022_07_27_00_11.xlsx
Download it, populate the Russian column and attach the new file here.
After that I can try to import it into the project hoping there's no special characters problems!
ty

Guess it's done tho I'm not sure about some lines. Can't test it myself cause MKVmergeBatcher uses dlls for translations. Hope everything will be ok.
2022_07_27_00_11.xlsx

@p1zrv Don't worry. I'll update the app ASAP and attach a build for you to test the translation!

Hi @p1zrv .
Can you please try this version?
MKVmergeBatcher 2.0.44.zip
If you find bug or graphical glitchs please report here with a screenshot!  ty

@Bazzu85 Thanks.
screenshots_ru_translation.zip
Untitled 01 and Untitled 04 - 93 and 99,85 respectively. I translated them but they don't seem to be used.
Untitled 06 and Untitled 07 - not sure if they can be translated cause there are no lines for them.
Untitled 02 03 05 - graphical glitchs (?)
Do I have to translate lines 260 and 266? They are written as if they aren't used (fileNameWithoutExtension, fileFullPath)
Made some changes, is it possible to get new dll for this translation?
2022_07_27_00_11.xlsx

Hi,
I made the majority of the fix.
I found some bugs and thx to your screens I fixed the translation on all languages (screens 1 and 4)
Some missing translation are based on your system UI language (screens 6 and 7) so I can't donanything.
About the screen 5 I don't know how to fix because this is a dynamic text placed on a grid table cell and usually the column width adapt by itself.
Screen 8 is not a glitch, the Russian text is long so the label is placed in two rows.
If you need to add other translation please start from this:
2022_08_02_17_25.xlsx
Here's the last compiled version of the app:
MKVmergeBatcher <IP_ADDRESS>8.zip
Let me know if now can be ok!

@Bazzu85 Hello/
Thanks, fixed some lines in xlsx file - 2022_08_02_17_25.xlsx
screenshots_ru_translation 2.zip
01: View - Models - Add model (somehow it shifted a bit now).
02: Changed translation, needs to be fixed a little bit.
Guess translation is finished, everything seems to be ok.

@Bazzu85

about the discord link, I tried right now and it's ok... idk sorry

I mean in app discord link is expired. Link in app - https://discord.gg/ptZSVtAq (? - About - Discord server).

I suppose it should be changed to this link https://discord.gg/Eztf8tQWdt (link from README.md).

Can you validate that's all ok?

Yeah, everything is ok.

@p1zrv Sorry for the misunderstanding. Thx, I'll update it before the next release.

Hi, @p1zrv here https://github.com/Bazzu85/MKVmergeBatcher/releases/tag/2.0.44
you can find the last stable release with all fixes!
thx for you contribution!

@Bazzu85 Thanks!


implementation discussion: why to use dispatch_group_async along with dispatch_group_enter/leave?

I dug into the source, and found that you use dispatch_group_async along with dispatch_group_enter/leave, is this the right way to use GCD group?

I googled it and find an blog explaining the concept: Using dispatch groups to wait for multiple web services, it says use either dispatch_group_async OR dispatch_group_enter/leave.
Anyone can explain it?
If it is not appropriate to ask there, sorry for that, I will close it.

Thank you for digging into the code, Josscii!
We're always happy to clarify any non-trivial aspects.
The docs mention that dispatch_group_async is just a convenience wrapper for dispatch_group_enter/leave, so the two are not mutually exclusive.
We use dispatch groups primarily to facilitate testing with FBLWaitForPromisesWithTimeout.
Hope that helps.

Thanks for your information.
It seems that I didn't understand your intention to use dipatch_group, sorry for the stupid question.
Now it becomes more clear, I will read your code and learn more from it.


test(build-infrastructure): Add vitest snapshot tests

Converts the setVersions test in build-infrastructure to use vitest and snapshots.

I'll note I'm not entirely sure what to think of the need of snapshot tests for this

I tend to agree. Unless we expect the snapshots to evolve regularly over time, it seems like this particular case would be better as a standard unit test. But I similarly don't feel super strongly about this.


Feature request: set text color

My latest has a black background and I can't see how to change the text color so it shows. If we could pick from the list of standard colors that would be excellent.

I could begin implementing this if it's ok.


Generation Get/Set Error

When getting a book created through iBooks, I will always receive "Invalid Book Tag" error.
When creating a new book, there is an error in the processed book.yml file as per below:
name: test
title: test
author: test
generation: !!org.bukkit.inventory.meta.BookMeta$Generation {}
open_command: ''
pages:
  '1':
  - ''

This will happen when running command 'ibooks create test test test test original'
Running paper1.16.5-567
This also happens with paper<IP_ADDRESS>7
Confirmed this happens when selecting other Generation types (copy_of_original, etc.)

Try setting field accessibility before accessing the field on line 42 BookUtils.java I noticed you try accessing the declared field but its naturally protected.


Gaps in Gridmap when moving camera

Godot version
3.5
System information
Windows 10
Issue description
Lines between gridmap cells. theyre are not always there but flicker when moving.

-The window display properties are 1920x1080, viewport, keep.
-The camera is orthogonal, 45 angle, the mesh is a 1x1x1 cube, the texture used in the albedo has no filter, gridmap cellsize is 1x1x1.
-This is the box texture (66x44).

-I noted the lines are the same color as the surrounding pixels of the top square, so making the white square 1 pixel wider and taller kinda fixes the problem.
I've tried changing the gridmap cell scale property to something like 1.002, maybe helps a bit but the lines are still very obvious.
I tried pixel snap in the project settings, does not help.
I tried all viewport stretch settings, different resolutions, lines wont go away!
Is there a way around this?
Steps to reproduce
Spatial.
Gridmap.
Meshlib, 1 box with a texture (top different than walls) so lines are different color and visible, and no filter.
Orthogonal Camera (but it happens aswell in perspective, just less obvious).
Move the camera, and there they are!
Minimal reproduction project
GridmapTest.zip

I've tried changing the gridmap cell scale property to something like 1.002, maybe helps a bit but the lines are still very obvious.
I tried pixel snap in the project settings, does not help.

You need to decrease the cell size or make meshes larger instead.

Related to https://github.com/godotengine/godot/issues/16337 (possible duplicate?).

MSAA and FSAA are both disabled.

You need to decrease the cell size or make meshes larger instead. Otherwise, you're actually increasing the gap's size.

I dont mean the cell size, there is a property in Gridmap that scales the cells, I think its called cell scale.

I can confirm this issue.
I spend more than two hours, going through everything in OPs project. Checking all transforms, checking all project settings, checking the meshlibrary and camera ...
I also made new Gridmaps and new Meshlibrary from scratch with 1x1x1 cubes, 1.01 x 1.01 x 1.01 cubes and 1.1 x 1.1 x 1.1 cubes.
These visual horizontal and vertical lines keep appearing no matter what I do. I am convinced at this point the issue is not with the project, but with with Godot.
It only seems to appear with Gridmaps and Cameras in Orthographic mode.

It only seems to appear with Gridmaps and Cameras in Orthogonal mode.

In the minimal reproduction project that I uploaded here (and in my project too, at least on my end), perspective camera show lines aswell.

I noticed it even happens on the editor, just preview the camera and move it around with the inspector.
Im assuming ppl know about this but its very hard to fix or even unsolvable right now, cuz this is a very obvious problem and not hard at all to come across (most of the properties of the few nodes used to replicate it are left at default).
Hopefully 4.0 fixes this.

Then I created yet another MeshLibrary, again with the same 1x1x1 cube, but with OPs texture:
And the issue appears!

This is a mipmap/linear filtering bleeding issue. You need to pad your texture with at least 1 pixel (if you have mipmaps disabled), or more pixels if you have mipmaps enabled. How much padding you need depends on the texture's size and the maximum mipmap level you expect to be viewed in practice.

Then I created yet another MeshLibrary, again with the same 1x1x1 cube, but with OPs texture:
And the issue appears!

This is a mipmap/linear filtering bleeding issue. You need to pad your texture with at least 1 pixel of the same color (if you have mipmaps disabled), or more pixels if you have mipmaps enabled. How much padding you need depends on the texture's size and the maximum mipmap level you expect to be viewed in practice.
Duplicate of #27837.

Is this a duplicate? I'm having the same issue when the camera moves:

I figured out that the issue is actual only for .gltf format exported from Blender.
I switched to dae and the gaps has dissapeared. But dae has other blending issues.


Default Search Paths: GUI does not update with user-selected path

To reproduce:

spin up vapor with any dataset
In Settings->Default Search Paths, pick a directory via the Select button, for either the "Session file path" or the "Data set path".  The QLineEdits that correspond to these selections will not register the change until an Update is triggered through another params mechanism.

This bug is no longer there, thus closing it.


:bug: fix(steps): controls on mobile

Current Behavior
The bal-steps had an issue where the controls would show up on desktop even when the steps had enough space. This has since been fixed but the issue remains on mobile for us.
See screenshot

Expected Behavior
Mobile controls not showing up when enough space for the steps
Steps to Reproduce
We have a container is-compact wrapping the bal-steps component.
The bal-steps has 4 steps.

Version
13.4.0
Browsers
No response
Device
No response
Code Reproduction URL
No response
Additional Information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

/cib


0.0.8

Summary :memo:
Updated readme and handles PyPI deployment

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

Project coverage is 100.00%. Comparing base (dbebb1d) to head (3caf5ef).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main       #27      +/-   ##
===========================================
+ Coverage   99.72%   100.00%   +0.27%
===========================================
  Files           6         6
  Lines         364       420      +56
===========================================
+ Hits          363       420      +57
+ Misses          1         0       -1

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


Add dashboard logo to user detail

Description
Add dashboard logo to user detail.
Todo

[x] Add new column dashboard_logo to User table. The column type is Long / bigint and a foreign key to File table (file id).
[x] Add dashboard_logo (Long) to update user details.
[ ] Implement update user details with dashboard_logo. It should verify that the file sent is already uploaded or exists in both the database (SQL) and the storage (minio/s3).

untuk point 3, apakah harus apa pengecekan isObjectExist di minio/s3 ketika update dashboard_logo ?


[Bug]  Error while building mlc  from source using https://llm.mlc.ai/docs/deploy/cli.html#option-2-build-mlc-runtime-from-source

🐛 Bug
Building mlc_chat from source as the purpose is to use new model architecture not in mlc_llm/python/complier/model.
To Reproduce
As given in   https://llm.mlc.ai/docs/install/mlc_llm.html#option-2-build-from-source
Steps to reproduce the behavior:

make sure to start with a fresh environment
conda env remove -n mlc-chat-venv
create the conda environment with build dependency
conda create -n mlc-chat-venv -c conda-forge
"cmake>=3.24"
rust
git
enter the build environment
conda activate mlc-chat-venv

cmake .. && cmake --build . --parallel $(nproc) && cd ..
clone from GitHub
git clone --recursive https://github.com/mlc-ai/mlc-llm.git && cd mlc-llm/
create build directory
mkdir -p build && cd build
generate build configuration
python3 ../cmake/gen_cmake_config.py
build mlc_chat_cli
cmake .. && cmake --build . --parallel $(nproc) && cd .

Expected behavior

Environment

Platform (e.g. WebGPU/Vulkan/IOS/Android/CUDA): Vulkan
Operating system (e.g. Ubuntu/Windows/MacOS/...): Arch
Device (e.g. iPhone 12 Pro, PC+RTX 3090, ...)
How you installed MLC-LLM (conda, source):  source
How you installed TVM-Unity (pip, source):  source
Python version (e.g. 3.10): 3.11.6
GPU driver version (if applicable): driverVersion     = 23.2.1 (96477185)
driverID        = DRIVER_ID_MESA_RADV
driverName      = radv
driverInfo      = Mesa 23.2.1-arch1.2
CUDA/cuDNN version (if applicable):
TVM Unity Hash Tag (python -c "import tvm; print('\n'.join(f'{k}: {v}' for k, v in tvm.support.libinfo().items()))", applicable if you compile models): Traceback (most recent call last):
File "", line 1, in
AttributeError: module 'tvm' has no attribute 'support'
Any other relevant information:

Additional context
(1) [munusairam@ArchLinuxKDE build]$ python3 ../cmake/gen_cmake_config.py
Enter TVM_HOME in absolute path. If not specified, 3rdparty/tvm will be used by default:
Use CUDA? (y/n): n
Use CUTLASS? (y/n): n
Use CUBLAS? (y/n): n
Use ROCm? (y/n): n
Use Vulkan? (y/n): y
Use Metal (Apple M1/M2 GPU) ? (y/n): n
Use OpenCL? (y/n) n
Writing the following configuration to config.cmake...
set(TVM_HOME 3rdparty/tvm)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
set(USE_CUDA OFF)
set(USE_CUTLASS OFF)
set(USE_CUBLAS OFF)
set(USE_ROCM OFF)
set(USE_VULKAN ON)
set(USE_METAL OFF)
set(USE_OPENCL OFF)
(2) I did not install tvm using mlc-ai-nightly  as  in  https://llm.mlc.ai/docs/install/mlc_llm.html#option-2-build-from-source it is mentioned "TVM Unity compiler is not a dependency on MLCChat CLI. Only its runtime is required, which is automatically included in 3rdparty/tvm."
(3) (mlc-chat-venv) [munusairam@ArchLinuxKDE mlc-llm]$ cd 3rdparty/
(mlc-chat-venv) [munusairam@ArchLinuxKDE 3rdparty]$ ls
argparse  googletest  tokenizers-cpp  tvm
(mlc-chat-venv) [munusairam@ArchLinuxKDE 3rdparty]$ cd tvm/
(mlc-chat-venv) [munusairam@ArchLinuxKDE tvm]$ ls
3rdparty         KEYS      NEWS.md    apps   conda        docker   golang   licenses        python  tests       web
CMakeLists.txt   LICENSE   NOTICE     ci     configs      docs     include  mypy.ini        rust    version.py
CONTRIBUTORS.md  Makefile  README.md  cmake  conftest.py  gallery  jvm      pyproject.toml  src     vta
(mlc-chat-venv) [munusairam@ArchLinuxKDE tvm]
(4) Looks like tvm does not detect vulkan.  But when we install prebuild using mlc-ai-nightly, Vulkan is detected
import tvm
device_str = "vulkan"
device = tvm.runtime.device(device_str)
if device.exist:
print(f"{device_str} device found")
else:
print(f"{device_str} device not found")
gives vulkan device found
 Error
(mlc-chat-venv) [munusairam@ArchLinuxKDE build]$ cmake .. && cmake --build . --parallel $(nproc) && cd ..
-- Hide private symbols
-- TVM_HOME: 3rdparty/tvm
-- Hide private symbols...
-- Forbidding undefined symbols in shared library, using -Wl,--no-undefined on platform Linux
-- Didn't find the path to CCACHE, disabling ccache
-- VTA build with VTA_HW_PATH=/home/munusairam/softwares/programs/python_projects/tvm-framework/source-build-support/mlc-llm/3rdparty/tvm/3rdparty/vta-hw
-- Build VTA runtime with target: sim
CMake Error at 3rdparty/tvm/cmake/modules/Vulkan.cmake:23 (message):
Cannot find Vulkan, USE_VULKAN=ON
Call Stack (most recent call first):
3rdparty/tvm/CMakeLists.txt:542 (include)

when building with vulkan you need to install vukan sdk https://www.lunarg.com/vulkan-sdk/, which is different from vulkan runtime that is available


Cannot run program "ng.cmd"  from Java program using java.lang.ProcessBuilder

1.7.3
Versions
<!--
Output from: `ng --version`.
If nothing, output from: `node --version` and `npm --version`.
  Windows (7/8/10). Linux (incl. distribution). macOS (El Capitan? Sierra?)
-->

run ng.cmd from Java program using java.lang.ProcessBuilder
Repro steps

Step 1
run ng.cmd from Java program using java.lang.ProcessBuilder

Step 2

Step 3

Observed behavior
<!-- Normally this includes a stack trace and some more information. -->

Cannot run program "ng.cmd" (in directory "C:\App\angularExample"): CreateProcess error=2, The system cannot find the file specified.
Added npm,ng cli to user path variables.
Desired behavior

Mention any other details that might be useful (optional)

@kyyash If, when you open command line you can run ng command so your issue is not cli related, sorry!
I guess you must investigate on java side ...

I'm sorry to say that I also think this isn't related to Angular CLI per se. We don't do anything special for Java compatibility one way or another. There should be a way to invoke system commands on through Java, but I cannot help you much there. A good place to ask is Stack Overflow.


Clarifying SVN vs version.

This PR updates framework_svn and api_svn to be named framework_version and api_version, respectively. The original names were to represent a semantic version number, which was confusing in this context where SVN more commonly means security version number. Accordingly, the minimum_svn and svn fields for fragments will remain with the existing naming scheme but their support has been expanded to allow these strings to also be monotonically increasing integers, to be more in line with expectations around SVNs.
To provide a smooth transition, support for semantically versioned fragments and the *_svn naming scheme remain in the framework, but in a deprecated state. As part of this, the policy engline will provide a new error when the type of SVN is different between the SVN of the fragment and the minimum_svn property of a fragment policy object: fragment svn and the specified minimum are different types.

There is not so much I can check yet, but LGTM and I could run the go run . successfully.
I have some questions:

In test/cri-containerd/policy-v0.1.0.rego, still api_svn and framework_svn are used, and I didn't find equivalent test data with framework_version and api_version. Is it fine?

So that file is explicitly included as a old, out of date policy as a test for the backwards compatibility code, so that is by design. All the other tests automatically generate policies (see all the calls to marshalRego) which have the latest syntax and semantics.

There are some massive changes on files like .rego files under samples/ and  commands.json. Are they updated by some tool?

Yes, those files are created by the command extractor tool, which is a tool that exists in a branch whose PR was stalled. I keep it up to date, and at some point we need to get it merged.

changes look good to me


4-up Template Brought MK to a standstill

This is a REAL project, that I have been working towards running
Printing each of these wire gauges separately is a PAIN.
So I built this 4-up that supposedly fits on the bed
Tried to bring it into MK.... Brought it to it's knees.... A "Translate" redraw was taking over a minute.  It was faster to move the material and update via the camera.
It "lost" the camera several times.  Had to close it and open it again.
It also "paused" several times to catch it's breath... just stopping and NOTHING responding, and then a minute later it just picked up and kept going... Not a printer pause, this was a full STOP, get its breath, and keep on going....
4-up Wire Guage.zip
Stopped the job, reset the Step to 4 so it wouldn't take all night, don't need the resolution... this is a test run on 3mm chip
Not sure what was going on behind the scenes, but this will be a test of memory management and optimization, it had PAGES of Raster stuff that it brought in, and the estimated CUT time was over 8min.  Don't know the raster time, its s still running...

Question:  Since this thing is being treated as ONE BIG RASTER, with a complicated cut afterwards, why are there a gazillion things clogging up the operations menu, and probably memory??

I may try to do that after this test run finishes.... it going to be a while....

Ok....  30 min run, wow,
When it was finished, I brought it BACK into Inkscape and exported it as a PNG....
NOW MK can deal with it...
BUT, I lost the CUT lines...
I will need to take the PNG and combine it with the SVG to Keep the CUT....
More Pre-Press, lots more... Luckily once done the tweaks will be minor, like adding someones logo in the middle

I am going to close this as a "user education" item.  It has work arounds, basically simplifying the drawing and reducing the total number of elements that MK has to try to Render.  This drawing overwhelmed the engine... Converting ALL of the text to a single PNG BEFORE bringing it in seems to reduce the Operations count to manageable levels.
Also documentation... and comments about complex drawings


Enable target subscription and bridge mode

Enable target subscription: client can subscribe/unsubscribe targets (optionally based on target type) from server.
Enable bridge mode: if client calls NewSession for a target that is remote to the server, the server will initiate a new session with the corresponding target and perform a continuous bidirectional copy between the two sessions.
Updated the doc for the recent changes.

Separating the change of the grpctunnel_design.md into a different PR.


Allow to configure locale for docker builds

Fixes #388

Merged. Thank your @dominikb and @RedDevilus for this!


benches/coprocessor: add some benchmark cases

What have you changed? (mandatory)
Add some benchmark cases to ensure whether we need to introduce some optimizations from Go.
In Go, I found that using BigEndian to read u16 is faster than comparing table prefix. And sometimes, using a map is faster than switch-case.
But in Rust, seem that we don't need these optimizations.
What are the type of the changes? (mandatory)
No
How has this PR been tested? (mandatory)
No need
Does this PR affect documentation (docs/docs-cn) update? (mandatory)
No
Does this PR affect tidb-ansible update? (mandatory)
No
Refer to a related PR or issue link (optional)
Benchmark result if necessary (optional)
test coprocessor::dag::expr::scalar::bench_get_scalar_args_with_map   ... bench:       7,700 ns/iter (+/- 1,349)
test coprocessor::dag::expr::scalar::bench_get_scalar_args_with_match ... bench:       2,811 ns/iter (+/- 220)
test coprocessor::codec::bench_table_prefix_check                     ... bench:         555 ns/iter (+/- 24)
test coprocessor::codec::bench_table_prefix_start_with                ... bench:         563 ns/iter (+/- 31)
test coprocessor::codec::bench_record_prefix_bigendian_check          ... bench:         595 ns/iter (+/- 54)
test coprocessor::codec::bench_record_prefix_equal_check              ... bench:         671 ns/iter (+/- 23)
test coprocessor::codec::bench_record_prefix_littleendian_check       ... bench:         529 ns/iter (+/- 20)
test coprocessor::codec::bench_record_prefix_start_with               ... bench:         514 ns/iter (+/- 12)
Add a few positive/negative examples (optional)
/cc @AndreMouche @breeswish

use little endian to check may be faster, because memory layout is little endian.

@breeswish
You are right, little endian is faster than big endian.

@AndreMouche
em, where is the repeated code? do you mean public the check_args functions?

yes @siddontang


Fix #17342 - Fix indentation / markdown formatting.

Fixes #17342

@sftim

@lojies  - The code snippet starts from 1st char, breaking the alignment and the numbering sequence. The sequence breaks if any line starts before 5th char.
Also, that code (yaml file) is inconsistent with the following command (command is using the yaml file via http instead of local).

Also
/lgtm

@miteshskj could you rebase this against master, squashing your commits?
See https://kubernetes.io/docs/contribute/intermediate/#work-from-a-local-clone for tips

@sftim  - Thanks for the review and suggestions. My branch got messed up, so created a new PR - https://github.com/kubernetes/website/pull/17465


Improve handling of manually changed configurations.

Fixes #1019
Things I've done:

[x] My pull request fixes an issue, I referenced the issue.

@robertohuertasm @jens1o @ksvitkovsky @g-plane @iFun @mariotsi @sabinrimni
Please provide translation for configuration.dontShowConfigManuallyChangedMessage.description configuration property.

Si 'true', no se mostrará el mensaje 'reiniciar' al cambiar manualmente las configuraciones.

Wenn auf 'true' gesetzt, wird bei manuellen Änderungen an der Konfiguration keine "Neu starten"-Nachricht angezeigt.

Если установлено значение true, сообщение с просьбой перезапуска больше не будет отображаться при ручном изменении настроек

As another note, I was expecting a button (like in the Project Detection feature) that would change my user settings automatically. I mean, now the only way to disable this feature is to manually add the configuration. It would be nice to have the option in the same prompt that asks you for a restart. What do you think?

如果

如果设置成 true，手动修改配置后不提醒「重启后生效」

As another note, I was expecting a button (like in the Project Detection feature) that would change my user settings automatically. I mean, now the only way to disable this feature is to manually add the configuration. It would be nice to have the option in the same prompt that asks you for a restart. What do you think?

The concept was to use the existing message and the underlying functionality to achieve the implementation of this feature. Although I thought about it, I didn't investigate it further. I'll have a look if this can be achieved without heavy refactoring.

Disabling button added.

We are now only missing the Italian translation to complete this feature.

Se 'true', il messaggio di 'riavvio' non verrà mostrato quando si cambiano le configurazioni manualmente.

Speak of the devil. lol

Yeah 😸 ...sorry for the delay just saw it this morning

@robertohuertasm Have a look at the proposed changes to the documentation of README and adjust accordingly if you like so.

@JimiC Thanks for doing this! 👏 🎉  Very happy to see my suggestion get picked up and land in 7.10.0 this morning 🙂


Expose internal parse APIs

Hey, and thanks for your work on swc!
I'm trying to build a parser for a superset of JavaScript. Basically, it would allow import and export statements in a function context which can yield (and other features).
For now, this isn't possible. Context fields are not exposed, and thus a parser cannot be in an is_generator / module state simultaneously. Also, for more advanced changes (for instance, adding new top-level declarations), nothing is possible.
It would be great if the internal parsing APIs were exposed (e.g., parse_import, handle_import_export, ...) to allow extended syntax. Custom parsers could work on the existing Parser structure, and return existing AST nodes (possibly transformed or Marked for later processing in a visitor). Alternatively, a trait like ParseWith implement for all expressions would work.

Parse<T> sounds great, yep!
As for Context, it makes sense that it wouldn't be completely exposed as it probably needs to uphold some internal invariants. I also like the idea of having methods that return new Contexts, since those methods could validate invariants internally and possibly return Result<Context, E>.
In any case, if you want I can try submitting a PR adding these features.

Can you make a PR?
I don't know the exact feature set you need, and exposing all would take lots of time.

Closing as it's a feature request but author did not respond


Checking PC validity performance improvement

Description
This PR include changes related to validation of PreparedCertificate messages. Earlier there were separate functions for checking height,round,senders and proposal hash. Now they are merged into  AreValidPCMessages to avoid iterating 5 times instead of once. We decided to do this because the code will still remain readable.
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[ ] Hotfix (change that solves an urgent issue, and requires immediate attention)
[ ] New feature (non-breaking change that adds functionality)
[ ] Breaking change (change that is not backwards-compatible and/or changes current functionality)

Checklist

[x] I have assigned this PR to myself
[x] I have added at least 1 reviewer
[ ] I have added the relevant labels
[ ] I have added sufficient documentation in code

Codecov Report

Merging #89 (2b25997) into main (628065c) will increase coverage by 1.00%.
The diff coverage is 87.50%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main      #89      +/-   ##
==========================================
+ Coverage   88.53%   89.54%   +1.00%
==========================================
  Files           7        7
  Lines        1527     1502      -25
==========================================
- Hits         1352     1345       -7
+ Misses        134      118      -16
+ Partials       41       39       -2

Files
Coverage Δ

core/ibft.go
86.30% <100.00%> (+0.95%)
:arrow_up:

messages/helpers.go
95.90% <86.95%> (+5.46%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[V2 core-data] Post Event API return 400 not 207 Multi-Status response when any request can't pass the validation

🐞 Bug Report
Affected Services

 The issue is located in: core-data
Is this a regression?
No
Description and Minimal Reproduction
Execute api/v2/event Post API with a bad request in the array
🔥 Exception or Error
It returns 400 error directly, and not process other good requests in the request array.
According to the V2 API design, it should return 207 with 400 status code in the response array
🌍  Your Environment
EdgeX Version:
master

Core WG decision 10/1 - we will change the design.  400 will be returned if there is any invalid object in the request array


Windows start menu shortcut does not start powershell

When you install the ChefDK on Windows, a Start Menu shortcut is created with no icon and which does not run powershell.
Some people are also reporting that it's not being installed at all.

Fixed.


Build failure (missing symbols) for iOS

Hi,
I'm trying to use your toolkit to add AWS auth to a new iOS project.  It looks like it might be the better tool (though young) for the task, but iOS isn't building with some undefined symbol errors.

Showing Recent Errors Only

Build target CJWTKitBoringSSL of project aws-cognito-authentication-kit with configuration Debug

Ld /Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Products/Debug-iphoneos/CJWTKitBoringSSL.framework/CJWTKitBoringSSL normal arm64 (in target 'CJWTKitBoringSSL' from project 'aws-cognito-authentication-kit')
    cd /Users/william.dillon/Documents/source/racepoint/aws-cognito-authentication-kit
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios8.0 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk -L/Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Products/Debug-iphoneos -F/Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Products/Debug-iphoneos -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -filelist /Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Intermediates.noindex/aws-cognito-authentication-kit.build/Debug-iphoneos/CJWTKitBoringSSL.build/Objects-normal/arm64/CJWTKitBoringSSL.LinkFileList -install_name @rpath/CJWTKitBoringSSL.framework/CJWTKitBoringSSL -Xlinker -rpath -Xlinker /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx -dead_strip -Xlinker -object_path_lto -Xlinker /Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Intermediates.noindex/aws-cognito-authentication-kit.build/Debug-iphoneos/CJWTKitBoringSSL.build/Objects-normal/arm64/CJWTKitBoringSSL_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fembed-bitcode-marker -Xlinker -dependency_info -Xlinker /Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Intermediates.noindex/aws-cognito-authentication-kit.build/Debug-iphoneos/CJWTKitBoringSSL.build/Objects-normal/arm64/CJWTKitBoringSSL_dependency_info.dat -o /Users/william.dillon/Library/Developer/Xcode/DerivedData/aws-cognito-authentication-kit-dpfwwoteavphsseamybdgruuvkal/Build/Products/Debug-iphoneos/CJWTKitBoringSSL.framework/CJWTKitBoringSSL

Undefined symbols for architecture arm64:
  "_CJWTKitBoringSSL_gcm_gmult_v8", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_gcm_init_neon", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_sha256_block_data_order", referenced from:
      _CJWTKitBoringSSL_SHA256_Update in sha256.o
      _CJWTKitBoringSSL_SHA256_Final in sha256.o
      _CJWTKitBoringSSL_SHA256_Transform in sha256.o
      _CJWTKitBoringSSL_SHA256_TransformBlocks in sha256.o
  "_CJWTKitBoringSSL_gcm_ghash_neon", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_vpaes_cbc_encrypt", referenced from:
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_aes_hw_ctr32_encrypt_blocks", referenced from:
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_aes_hw_cbc_encrypt", referenced from:
      _CJWTKitBoringSSL_AES_cbc_encrypt in mode_wrappers.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_bn_mul_mont", referenced from:
      _CJWTKitBoringSSL_BN_mod_mul_montgomery in montgomery.o
      _CJWTKitBoringSSL_bn_mod_mul_montgomery_small in montgomery.o
  "_CJWTKitBoringSSL_aes_hw_set_decrypt_key", referenced from:
      _CJWTKitBoringSSL_AES_set_decrypt_key in aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_vpaes_set_decrypt_key", referenced from:
      _CJWTKitBoringSSL_AES_set_decrypt_key in aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_sha1_block_data_order", referenced from:
      _CJWTKitBoringSSL_SHA1_Update in sha1.o
      _CJWTKitBoringSSL_SHA1_Final in sha1.o
      _CJWTKitBoringSSL_SHA1_Transform in sha1.o
  "_CJWTKitBoringSSL_gcm_ghash_v8", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_vpaes_ctr32_encrypt_blocks", referenced from:
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_aes_hw_set_encrypt_key", referenced from:
      _CJWTKitBoringSSL_AES_set_encrypt_key in aes.o
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_aes_hw_decrypt", referenced from:
      _CJWTKitBoringSSL_AES_decrypt in aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_sha512_block_data_order", referenced from:
      _CJWTKitBoringSSL_SHA512_Update in sha512.o
      _CJWTKitBoringSSL_SHA512_Final in sha512.o
      _CJWTKitBoringSSL_SHA512_Transform in sha512.o
  "_CJWTKitBoringSSL_gcm_gmult_neon", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_aes_hw_encrypt", referenced from:
      _CJWTKitBoringSSL_AES_encrypt in aes.o
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_vpaes_decrypt", referenced from:
      _CJWTKitBoringSSL_AES_decrypt in aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_vpaes_set_encrypt_key", referenced from:
      _CJWTKitBoringSSL_AES_set_encrypt_key in aes.o
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_vpaes_encrypt", referenced from:
      _CJWTKitBoringSSL_AES_encrypt in aes.o
      _CJWTKitBoringSSL_aes_ctr_set_key in e_aes.o
      _aes_init_key in e_aes.o
  "_CJWTKitBoringSSL_gcm_init_v8", referenced from:
      _CJWTKitBoringSSL_CRYPTO_ghash_init in gcm.o
  "_CJWTKitBoringSSL_ChaCha20_ctr32", referenced from:
      _CJWTKitBoringSSL_CRYPTO_chacha_20 in chacha.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

At first I thought it was just that those functions were locked behind #ifdefs, but I think those paths aren't really common (there are other errors that pop up that give me the impression that people don't actually use them.
Anyway, I'm wondering if you've tried this or have had any luck with it.  Also, it's a little weird that there are apparently two copies of BoringSSL in the packages; one from NIO and one from JWTKit.
Thanks.

I did try and failed. I think this is something you would have to bring up on the JWTKit repo. Not totally sure why it causing issues. I have seen versions of BoringSSL included in packages that compile on iOS. Maybe it is the sections of BoringSSL they are including

Definitely.  Thanks Adam!


Read Timeout occurring frequently when fetching documents from Cosmos using CosmosClient

Hi,
I have azure functions where I am using azure cosmos python SDK to fetch documents using SQL API, Please find the following piece of code that we I am using:
client = CosmosClient(host, credential=masterKey,
                              retry_total=15,
                              retry_backoff_max=30,retry_connect=4,retry_status=4,retry_read=4)
database = client.get_database_client(databasename)
container = database.get_container_client(collection)
items = container.query_items(query=query,enable_cross_partition_query=True)

This is the error I am facing:
HTTPSConnectionPool(host='XXXXX.documents.azure.com', port=443): Read timed out. (read timeout=60.0)

Please note that this issue used to occur randomly in our Data factory pipelines, but sometimes frequency is increasing.
What can we do here? Please suggest.
Version Information
Python 3.8
azure-appconfiguration==1.1.1
azure-batch==9.0.0
azure-cli==2.14.0
azure-cli-core==2.14.0
azure-cli-telemetry==1.0.6
azure-common==1.1.25
azure-core==1.8.2
azure-cosmos==4.2.0
azure-datalake-store==0.0.51
azure-functions==1.4.0
azure-functions-devops-build==0.0.22
azure-functions-durable==1.0.0b10
azure-graphrbac==0.60.0
azure-keyvault==1.1.0
azure-keyvault-administration==4.0.0b2
azure-loganalytics==0.1.0
azure-mgmt-advisor==2.0.1
azure-mgmt-apimanagement==0.2.0
azure-mgmt-appconfiguration==0.6.0
azure-mgmt-applicationinsights==0.1.1
azure-mgmt-authorization==0.61.0
azure-mgmt-batch==9.0.0
azure-mgmt-batchai==2.0.0
azure-mgmt-billing==0.2.0
azure-mgmt-botservice==0.2.0
azure-mgmt-cdn==5.0.0
azure-mgmt-cognitiveservices==6.3.0
azure-mgmt-compute==14.0.0
azure-mgmt-consumption==2.0.0
azure-mgmt-containerinstance==1.5.0
azure-mgmt-containerregistry==3.0.0rc15
azure-mgmt-containerservice==9.4.0
azure-mgmt-core==1.2.0
azure-mgmt-cosmosdb==1.0.0
azure-mgmt-datalake-analytics==0.2.1
azure-mgmt-datalake-nspkg==3.0.1
azure-mgmt-datalake-store==0.5.0
azure-mgmt-datamigration==0.1.0
azure-mgmt-deploymentmanager==0.2.0
azure-mgmt-devtestlabs==4.0.0
azure-mgmt-dns==2.1.0
azure-mgmt-eventgrid==3.0.0rc7
azure-mgmt-eventhub==4.1.0
azure-mgmt-hdinsight==1.7.0
azure-mgmt-imagebuilder==0.4.0
azure-mgmt-iotcentral==3.0.0
azure-mgmt-iothub==0.12.0
azure-mgmt-iothubprovisioningservices==0.2.0
azure-mgmt-keyvault==7.0.0b3
azure-mgmt-kusto==0.3.0
azure-mgmt-loganalytics==0.7.0
azure-mgmt-managedservices==1.0.0
azure-mgmt-managementgroups==0.2.0
azure-mgmt-maps==0.1.0
azure-mgmt-marketplaceordering==0.2.1
azure-mgmt-media==2.2.0
azure-mgmt-monitor==0.11.0
azure-mgmt-msi==0.2.0
azure-mgmt-netapp==0.12.0
azure-mgmt-network==12.0.0
azure-mgmt-nspkg==3.0.2
azure-mgmt-policyinsights==0.5.0
azure-mgmt-privatedns==0.1.0
azure-mgmt-rdbms==3.1.0rc1
azure-mgmt-recoveryservices==0.4.0
azure-mgmt-recoveryservicesbackup==0.6.0
azure-mgmt-redhatopenshift==0.1.0
azure-mgmt-redis==7.0.0rc2
azure-mgmt-relay==0.1.0
azure-mgmt-reservations==0.6.0
azure-mgmt-resource==10.2.0
azure-mgmt-search==2.1.0
azure-mgmt-security==0.4.1
azure-mgmt-servicebus==0.6.0
azure-mgmt-servicefabric==0.5.0
azure-mgmt-signalr==0.4.0
azure-mgmt-sql==0.21.0
azure-mgmt-sqlvirtualmachine==0.5.0
azure-mgmt-storage==11.2.0
azure-mgmt-synapse==0.3.0
azure-mgmt-trafficmanager==0.51.0
azure-mgmt-web==0.48.0
azure-multiapi-storage==0.5.2
azure-nspkg==3.0.2
azure-search-documents==11.0.0
azure-servicebus==0.50.3
azure-storage-blob==12.5.0
azure-storage-common==2.1.0
azure-storage-file-datalake==12.1.1
azure-synapse-accesscontrol==0.2.0
azure-synapse-artifacts==0.3.0
azure-synapse-spark==0.2.0

@absognety I'll take a look, we've seen similar issues in the JS SDK that seemed transient and went away

Do you have any data for how frequently these requests occur per thousand requests? Even an estimate is helpful

we are hitting one of our cosmos DB containers very repeatedly like in last 12 hours there are about 98.5k requests, followed by another container which has 43.5k requests

Using singleton pattern in C# for the client connection fixed this.. what's the best way to address this in python?
https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips-dotnet-sdk-v3-sql
Use a singleton Azure Cosmos DB client for the lifetime of your application
Each CosmosClient instance is thread-safe and performs efficient connection management and address caching when it operates in Direct mode. To allow efficient connection management and better SDK client performance, we recommend that you use a single instance per AppDomain for the lifetime of the application.
When you're working on Azure Functions, instances should also follow the existing guidelines and maintain a single instance.

@zfoster https://docs.microsoft.com/en-us/azure/azure-functions/manage-connections#static-clients

Also, what does "Max degree of parallelism" do? does it have to anything concurrent open connections to a cosmos db/collection from a client?

Update on this... the problem was cosmos account itself.

@TissonMathew @absognety Looks like you got this resolved, but FYI there was a service side SSL issue that we believe was causing this. A fix was rolled out yesterday. Please do let us know if you run into more issues.

Yes. Thanks @southpolesteve

Thank you team.
On Sat, Dec 12, 2020, 3:06 AM Tisson Mathew<EMAIL_ADDRESS>wrote:

Yes. Thanks @southpolesteve https://github.com/southpolesteve
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-sdk-for-python/issues/15609#issuecomment-743439199,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGCTNYSUJRK7JNRLLRLDDJ3SUKGE7ANCNFSM4UKTY7ZA
.

Going off of what @TissonMathew mentioned, is there a best practice to for creating a static cosmosClient in a python azure function?
https://docs.microsoft.com/en-us/azure/azure-functions/manage-connections#static-clients
only provides examples for c# and javaScript

Hi Team, Similar to the issue mentioned above, i am also getting the timeout error from 16-06-2022 in cosmos db. Do you think its the same SSL error again?
(, 'Connection to .documents.azure.com timed out. (connect timeout=60.0)')

Hi, me too, I'm receiving the same error since a few days ago
I'm already using the singleton pattern, and creating a new cosmos account is not an option
Does anyone know how to solve the problem?