Make TypeAccelerators public

Summary of the new feature / enhancement
As a user I want to be able to define my own TypeAccelerators to allow shorter names of long types in my scripts.
Proposed technical implementation details (optional)
There are quite a few blog posts out there that show how access the TypeAccelerators class through reflection as it is currently an internal scoped class:

https://4sysops.com/archives/using-powershell-type-accelerators/
https://powershellmagazine.com/2012/04/27/a-day-in-the-life-of-a-poshoholic-creating-and-using-type-accelerators-and-namespaces-the-easy-way/
https://adamtheautomator.com/powershell-data-types/
https://learn-powershell.net/2013/10/10/quick-hits-finding-creating-and-removing-powershell-type-accelerators/
I could keep on going

The fact that the reflection method is so pervasive has made an internal API into something that is somewhat part of the stable interface. I propose making the class public as well as a type accelerator itself to make it easier for people to define their own type accelerators. The docs and class structure even seems to indicate that this is meant to be a public API with lines such as this.  There is a tentative PR for this at https://github.com/PowerShell/PowerShell/pull/19481.
Unfortunately due to the caching of types the PR had to remove the caching if the value was a type accelerator which could have a performance impact. It's worth having a conversation as to whether we need type accelerators for types that are in the System namespace as they are already accessible directly due to the implicit using namespace System that pwsh has during the type lookup.

I would like to see this made public especially as it seems that there was design scope to allow it when it was originally implemented

That does sound like a better solution, this issue and PR was mostly just a way to get closure on the whole TypeAccelerator and why it isn't public. If that's the direction that the pwsh team want to move towards I'll be happy with that.

WG-Engine discussed this today.
We think that the design of this API currently is not sufficient for it to be a public API. There are thread-safety concerns and general usability concerns about the current form of this code. We do however think it could be quite useful to add some cmdlets to expose a more complete interface to interact with it, although we would require some safeguards to be added around the internal backing storage used here to make that work.
@JamesWTruher is looking at some initial exploratory work stubbing out what this might look like. Given the API they'll need to interact with will remain internal, the cmdlets will likely have to be builtins.
We agree there is some potential overlap with the using type = syntax, but feel the use cases are sufficiently different enough that there is likely space for both to exist and complement each other.


Error when adding arg --slist in analyze.py

Dear developers of BirdNet-Analyzer,
I recently installed BirdNET-Analyzer from the github repository on MacOS (M1) as described in the help on the github page of BirdNet-Analyzer.
When running one of the examples of analyze.py that included the argument for providing a species list --slist to the function the script file produced an error. Below I copied the example code and the corresponding error.
Code:
python3 analyze.py --i example/ --o example/ --slist example/ --min_conf 0.5 --threads 4

Error message:
Traceback (most recent call last):
  File "/Users/joerg/BirdNET-Analyzer/analyze.py", line 583, in <module>
    cfg.SPECIES_LIST_FILE = os.path.join(script_dir, args.slist)
                                         ^^^^^^^^^^
NameError: name 'script_dir' is not defined

I followed the error and found that line 583 of the script file analyze.py (NOTE: on the github repository it is line 587) contains a BUG, because the constant script_dir should be replaced by SCRIPT_DIR. I modified line 583 of the script file analyze.py on my system to
cfg.SPECIES_LIST_FILE = os.path.join(SCRIPT_DIR, args.slist)

After the modification, the script ran without errors.
All the best,
Jörg

I was having the same issue and this resolved it. Thanks!
Kevin

Thanks for reporting! If you want to you can always commit a PR for stuff like this, but no worries.


Hack Invalid File Type

Hack is the next generation of PHP by Facebook. It uses .hh as it's extension, but Atom detects it as a C++ file, which means the syntax highlighting is not appropriate.
So .hh extension should be associated with PHP or Hack in the Next Release. and until then, how can I force PHP as the filetype to all of my .hh files? At the moment Atom only allows me to temporarily change it by Clicking C++ on the footer and Selecting PHP from the list.

I've created a package language-hack for it.


fix issue that amp bf16 does not work for cpu in env with cuda.

and num_cpu_threads_per_process is not reset for better performance in cpu only case
Signed-off-by: Wang, Yi A<EMAIL_ADDRESS>

@sgugger @yao-matrix  @jiqing-feng  please notice the issue

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Add Support for Production Database Storage

Add Support for Production Database Storage
Current State
LightRAG stores vectors and documents locally, which limits production deployment capabilities.
Request
Add support for production databases:

PostgreSQL + pgvector for vector storage
Document storage with proper DB backend
Connection pooling and async support
Basic monitoring

Use Case
We're building a legal research tool and need to:

Handle large document collections
Support concurrent users
Enable cloud deployment
Ensure data persistence

Questions

Would you be interested in this feature?
Any preferences for database backends?

Happy to contribute to implementation if there's interest.

We actually really need this feature, but since we're not familiar with databases, we haven't implemented it yet. We truly appreciate your offer to help!

Add Support for Production Database Storage
Current State
LightRAG stores vectors and documents locally, which limits production deployment capabilities.
Request
Add support for production databases:

PostgreSQL + pgvector for vector storage
Document storage with proper DB backend
Connection pooling and async support
Basic monitoring

Use Case
We're building a legal research tool and need to:

Handle large document collections
Support concurrent users
Enable cloud deployment
Ensure data persistence

Questions

Would you be interested in this feature?
Any preferences for database backends?

Happy to contribute to implementation if there's interest.

I'm looking into using Neo4J to replace NetworkX.  Happy to contribute as well.  Just need some advice on directed vs undirected graphs.  Looks like we should require directed for a production scenario using this algo.  Any feedback is helpful.


Upgrading via deploy_latest_release doesn't seem to run pip

The last two times I've upgraded redash, for some reason pip install -r requirements.txt wasn't run. Here's the output when I upgraded from 0.6.3.b901 to 0.7.0.b977:
$ fab -Hredash -uredash deploy_latest_release
[redash] Executing task 'deploy_latest_release'
Deploying version: redash.0.7.0.b977
Downloading latest version...
Unpacking...
Changing ownership to redash...
Linking .env file...
No new migrations in this version.
[redash] run: sudo ln -nfs /opt/redash/redash.0.7.0.b977 /opt/redash/current
[redash] run: sudo /etc/init.d/redash_supervisord restart
[redash] out:  * Restarting process supervisor supervisord
[redash] out:    ...done.
[redash] out:

It doesn't look like it's attempting to run pip here. I've done some debugging of the script, but everything seems right; I can't seem to figure how this could have happened. It's almost as though link_to_current was called before the diff check.
Also, is there a reason why fabfile.py isn't just checked into the repo?

Strange. You're right that the only way this can happen is if the new version will be already linked. Is it possible the fabric task was run twice somehow?
Also, you're right that the file should be part of the repo. The reason why I didn't commit it yet, was that I wanted to change it to run locally before doing so.


BUG - incorporate source_relation into the unique_key for incremental models

Are you a current Fivetran customer?

fivetran made issue
Describe the bug

i haven't come across an error yet, but i just realized we missed a spot where we need to add source_relation. so in the incremental model configs, we provide event_id as the unique key, but we should really be making a surrogate key hashed on event id and the source relation for proper merging and such.
https://github.com/fivetran/dbt_klaviyo/blob/main/models/intermediate/int_klaviyo__event_attribution.sql#L4
and
https://github.com/fivetran/dbt_klaviyo/blob/main/models/klaviyo__events.sql#L4
Please indicate the level of urgency

not super urgent i suppose, but it would be a very quick fix
Are you interested in contributing to this package?

[x] Yes, I can do this and open a PR for your review.
[ ] Possibly, but I'm not quite sure how to do this. I'd be happy to do a live coding session with someone to get this fixed.
[ ] No, I'd prefer if someone else fixed this.  I don't have the time and/or don't know what the root cause of the problem is.

This fix has been merged into the latest release of the package!


Support for Windows instances?

How hard do you think it would be to add support for Windows instances? Either yourself or someone else.

There isn't anything Linux-specific about the way we spawn instances. The tricky part is connecting to them and issuing commands; Windows servers don't currently provide SSH access, but instead just allow RDP connections (which aren't create for automation). There are ways to set up SSH access on Windows machines, but it requires some work. There may already be AMIs available with this support built-in though.
I think it's fairly unlikely that this crate will get RDP support, and images with SSH support should work out of the box, so I'm tempted to close this issue. Unless you have an alternative proposal in mind?

There's powershell, but I don't know of a rust library for it, or even whether the protocol is open.

You can configure it with Enable-PSRemote and some additional steps. Windows users generally don't understand ssh and are likely going to be very hesitant to install it. I don't know how common it is for people to use windows on aws, just that that's what the culture is like where I'm working now.

I think enabling remote PowerShell is outside the scope of this crate, so let's assume that the user chooses a Windows AMI that already has it enabled. In that case, what we'd want is an alternative to ssh::Session that instead runs commands using the remote PowerShell. Judging from this page, we should be able to use std::process:Command and execute commands using something like:
Invoke-Command -ComputerName INSTANCE_IP -ScriptBlock { COMMAND } -credential USERNAME

The equivalent of spawning a session (in ssh2) would be
Enter-PSSession -ComputerName INSTANCe_IP -Credential USERNAME

and then feeding commands on STDIN using
Invoke-Command -Session $s {$h = Get-HotFix}

We'd also need to set up authentication somehow. This page suggests
winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'

but I don't know if that works with just giving IP addresses. Some more documentation is given here, but nothing that gives further detail on authentication. There's SkipNetworkProfileCheck:
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

but that seems to have no security. I don't know how to fix that. Maybe this SO question holds some more answers for more Windows-savvy users?
Unfortunately, all this also requires the user's machine to be running Windows (to have access to PowerShell locally).

Actually it looks like PowerShell is open source now...
https://github.com/PowerShell/PowerShell
So it might be feasible to package it somehow, and it looks like it's feasible to point users at a package for their particular system from that page.


Added CNN, micro train data, and install instructions

Added notebook for CNN baseline. Added micro dataset for developing baseline modes. Added install to Readme

We are not merging the model script to main since we decided to keep each baseline in a separate branch.


+Online: missing check of "Git clone URL" already used in another Online Project?

Context why I came to ask for this new check
I wanted to define a special configuration: one Git repository but two Online projects, because I have two systems S1 and S2. In S1 there is the development of the package P1 and in S2 there is the development of the package P2. In S1, P1 is pushed and P2 is pulled. and in S2, P2 is pushed and P2 is pulled (all automatically).
So, my idea was to define these Online projects (package - root folder) :
Package P1  -  /src/p1/
Package P2  -  /src/p2/
"Unfortunately", impossible to make it work (essentially because there's only one .abapgit file at the root of the Git repository, which defines only one root folder and abapGit in both systems changes it alternatively after each pull/push, and that messes up everything.
Conclusion: I understand now that the only solution is to create a second Git repository. Okay, no problem.
So my question is
Is it possible to add a check if one tries to create an Online project whose "Git clone URL" is already used in another existing Online projet, so that to avoid wasting time? (of course I can change the code if you think it's OK)

There have been a number of issues posted, where people came up with some let's say "innovative" ideas to map their existing package hierarchies to git repositories.
There are already some checks in place to prevent shooting yourself in the foot, like checking for if a super package is already contained in another repository. So it should be fine to add another one.
Another option would be to just add a chapter in the documentation. One theoretical use case for having the same remote in multiple online repositories on the same system would be if there were entirely different objects in different branches.

IMHO we can skip the first option because the missing check and the possibility to add repos redundantly by its urls is nothing game-breaking as far as I see it at the moment. It would only add some new logic without real added value for the stability of the report. If the user thinks he needs the redundant repos he can add it, if not he won't use it. Or is there any function within abapGit which would fail if it would have to deal with duplicate repos?

I think its okay to add this check for same url already used in other repo.
If users really want to do this anyhow, they can comment out the code, add query parameter to the url.

we check if URL is used already (https://github.com/abapGit/abapGit/blob/8555d1a0da6400fc04dbb0e3851e69bf76e5b720/src/repo/zcl_abapgit_repo_srv.clas.abap#L651)


DROOLS-3978 Move codegen unit tests to kogito-codegen

submarine -> kogito renaming leftovers

Examples need some alignment. I will submit a PR with that.

@mswiderski yes, I will submit the PR soon.

Cloud PR: https://github.com/kiegroup/kogito-cloud/pull/17
Examples PR: https://github.com/kiegroup/kogito-examples/pull/27


Memory leak using asynchronous receiving from multiple streams

Hello guys,
I am working with your library and try to push a lot of data from different processes to different ports, which works fine. But as soon as I am trying to receive the data in one process I get a memory leak. I think it has something to do with the size of the data I am pushing but the sender doesn't seem to have problems sending the information, only the receiver process results in adding up a lot of memory until the ram is full. Below I attached the code which creates the problem, I compiled using "g++ -o  _main.cpp -luvgrtp -lpthread -lcryptopp". Most probably I am just using your library incorrectly...
Best regards
receiver_main.cpp:
#include <uvgrtp/lib.hh>
#include <thread>
#include <iostream>
#include <vector>

void receive_hook(void *arg, uvgrtp::frame::rtp_frame *frame)
{
    /* Now we own the frame. Here you could give the frame to the application
     * if f.ex "arg" was some application-specific pointer
     *
     * arg->copy_frame(frame) or whatever
     *
     * When we're done with the frame, it must be deallocated manually */
    memcpy(arg, frame->payload, frame->payload_len);
    std::cout << "payload: " << frame->payload << std::endl;
    (void)uvgrtp::frame::dealloc_frame(frame);
}

int main(void)
{
    /* See sending.cc for more details */
    uvgrtp::context ctx;

    /* See sending.cc for more details */
    uvgrtp::session *sess = ctx.create_session("<IP_ADDRESS>");

    /* See sending.cc for more details */
    // these implementations didn't work properly either...
    // std::vector<uvgrtp::media_stream*> media_streams;
    // uvgrtp::media_stream* media_streams[4];
    std::vector<char*> buffer;

    for (int i = 0; i < 4; ++i) {
        // these implementations didn't work properly either...
        // media_streams.push_back(sess->create_stream(51000+i+1, 9, RTP_FORMAT_H265, 0));
        // media_streams[i] = sess->create_stream(51000+i+1, 9, RTP_FORMAT_H265, 0);
        buffer.push_back(new char[200000]);
    }

    uvgrtp::media_stream* media_stream1 = sess->create_stream(51001, 9, RTP_FORMAT_H265, 0);
    uvgrtp::media_stream* media_stream2 = sess->create_stream(51002, 9, RTP_FORMAT_H265, 0);
    // some dummy streams which don't receive anything
    uvgrtp::media_stream* media_stream3 = sess->create_stream(51003, 9, RTP_FORMAT_H265, 0);
    uvgrtp::media_stream* media_stream4 = sess->create_stream(51004, 9, RTP_FORMAT_H265, 0);
    /* Receive hook can be installed and uvgRTP will call this hook when an RTP frame is received
     *
     * This is a non-blocking operation
     *
     * If necessary, receive hook can be given an argument and this argument is supplied to
     * the receive hook every time the hook is called. This argument could a pointer to application-
     * specfic object if the application needs to be called inside the hook
     *
     * If it's not needed, it should be set to nullptr */
    // these implementations didn't work properly either...
    // for (int i = 0; i < 4; ++i) {
    //     media_streams[i]->install_receive_hook((void*)buffer.at(i), receive_hook);
    // }
    media_stream1->install_receive_hook((void*)buffer.at(0), receive_hook);
    media_stream2->install_receive_hook((void*)buffer.at(1), receive_hook);
    media_stream3->install_receive_hook((void*)buffer.at(2), receive_hook);
    media_stream4->install_receive_hook((void*)buffer.at(3), receive_hook);

    while(true){}
    /* Session must be destroyed manually */
    ctx.destroy_session(sess);

    return 0;
}

sender1_main.cpp:
#include <uvgrtp/lib.hh>

#define PAYLOAD_MAXLEN 200000

int main(void)
{
    /* To use the library, one must create a global RTP context object */
    uvgrtp::context ctx;

    /* Each new IP address requires a separate RTP session */
    uvgrtp::session *sess = ctx.create_session("<IP_ADDRESS>");

    /* Each RTP session has one or more media streams. These media streams are bidirectional
     * and they require both source and destination ports for the connection. One must also
     * specify the media format for the stream and any configuration flags if needed.
     *
     * See configuration.cc for more details about configuration.
     *
     * First port is source port aka the port that we listen to and second port is the port
     * that remote listens to
     *
     * This same object is used for both sending and receiving media
     *
     * In this example, we have one media stream with the remote participant: H265 */
    uvgrtp::media_stream *hevc = sess->create_stream(51000, 51001, RTP_FORMAT_H265, RTP_NO_FLAGS);

    char* buffer = new char[PAYLOAD_MAXLEN];
    std::string blabla;
    for (int i = 0; i < 40000; ++i) {
        blabla.append("Brrr1");
    }
    memcpy(buffer, &blabla.front(), PAYLOAD_MAXLEN);

    while(true) {
        for (int i = 0; i < 10; ++i) {
            if (hevc->push_frame((uint8_t*)buffer, PAYLOAD_MAXLEN, RTP_NO_FLAGS) != RTP_OK)
                fprintf(stderr, "Failed to send RTP frame!");
        }
    }

    /* Session must be destroyed manually */
    delete[] buffer;
    ctx.destroy_session(sess);

    return 0;
}

sender2_main.cpp:
#include <uvgrtp/lib.hh>

#define PAYLOAD_MAXLEN 200000

int main(void)
{
    /* To use the library, one must create a global RTP context object */
    uvgrtp::context ctx;

    /* Each new IP address requires a separate RTP session */
    uvgrtp::session *sess = ctx.create_session("<IP_ADDRESS>");

    /* Each RTP session has one or more media streams. These media streams are bidirectional
     * and they require both source and destination ports for the connection. One must also
     * specify the media format for the stream and any configuration flags if needed.
     *
     * See configuration.cc for more details about configuration.
     *
     * First port is source port aka the port that we listen to and second port is the port
     * that remote listens to
     *
     * This same object is used for both sending and receiving media
     *
     * In this example, we have one media stream with the remote participant: H265 */
    uvgrtp::media_stream *hevc = sess->create_stream(51009, 51002, RTP_FORMAT_H265, RTP_NO_FLAGS);

    char* buffer = new char[PAYLOAD_MAXLEN];
    std::string blabla;
    for (int i = 0; i < 40000; ++i) {
        blabla.append("Brrr2");
    }
    memcpy(buffer, &blabla.front(), PAYLOAD_MAXLEN);

    while(true) {
        for (int i = 0; i < 10; ++i) {
            if (hevc->push_frame((uint8_t*)buffer, PAYLOAD_MAXLEN, RTP_NO_FLAGS) != RTP_OK)
                fprintf(stderr, "Failed to send RTP frame!");
        }
    }

    /* Session must be destroyed manually */
    delete[] buffer;
    ctx.destroy_session(sess);

    return 0;
}

Hi,
I can't dedicate any more time for this issue but I found was the following:
When a new participant joins a session (a media stream is created and a packet is sent), the participant is put on probation and 3 packets with consecutive sequence numbers must be received from the participant before it is fully accepted to the session. Each time a packet is received, this check along with other RTCP-related stuff [1] is done where the update_participant_seq removes the probation flag from a participant. I guess in theory this would mean that the packets should be buffered instead of dispatched to the next handler. If I'm reading the code correctly, because of a programming mistake, the first 3 packets are rejected for each stream because update_participant_seq returns RTP_GENERIC_ERROR [2] if the participant is on a probation, which is obviously incorrect. What I don't understand is how this bug was discovered only now given that it seems to have been lurking there for quite some time.
Now, for your case it would mean that the first three packets of your first 200KB frame are rejected but because all other packets of that frame are received, the frame is left incomplete and because uvgRTP doesn't have garbage collection capabilities (it is/was on the roadmap), the memory is leaked. That is, the frame is put on a frame queue and uvgRTP waits to receive those three packets which are obviously never received because the sender doesn't know to resend them. This is my explanation as to why memory is leaked, but there may be other issues also. I want to emphasize that I may be mistaken given that I don't have the time to double-check.
Fixing this is a little trickier. Firstly, RTCP receive handler would have to return RTP_OK to indicate to the packet dispatcher that is has taken ownership of the packet and that it should not be forwarded to any other handler. Then, after three valid packets have been received, it should give all the buffered packets back to the packet dispatcher which would then forward them to H.256 handler. Currently, uvgRTP doesn't have capabilities of forwarding multiple packets between different handlers so this would require some architectural changes. Although this change would also allow the implementation of receive-side system call clustering which would provide performance improvements. I don't know the current status of that feature or whether it's even on the roadmap.
If you want a quick fix to the problem, just convert the RTP_GENERIC_ERROR to RTP_OK on line 721 in src/rtcp.cc. It should fix this issue but if there are other memory leaks in uvgRTP, it won't fix those. If I'm correct about this RTCP issue, the first frame should be received without issues. Now I see "Received a corrupted frame" in the logs.
[1] https://github.com/ultravideo/uvgRTP/blob/master/src/rtcp.cc#L720
[2] https://github.com/ultravideo/uvgRTP/blob/master/src/rtcp.cc#L598

When I was looking at the code earlier, the error conditions don't always have a proper memory management so there might be some small memory leaking. However, I'm not aware of any continuous memory leaks.
The plan is to change uvgRTP internals to use smart pointers for memory management where possible. At the same time other memory issues should be taken care of. I would estimate this would happen in release some 2.x release later this year. This is a high priority.

Thank you very much for your replies!

I pulled the current version and changed line 721 in src/rtcp.cc to "return RTP_OK;" but it didnt't help with the memory leak. The testing program above is still leaking.

You're sending a lot of data per second, is this a real use case or are you just testing? There exists an upper bound for much data uvgRTP can process per second and you may be hitting that. Some of the packets of a frame may be received while others aren't which causes uvgRTP to accumulate a lot of unused memory because it's waiting for all those dropped packets to be received. This is a known bug but it doesn't manifest often when the data rates aren't absurdly high. Obviously the fact that the memory is not released is an issue but are you able to provide a more realistic use case where this issue still happens?
If this is a real problem you're facing, you can try alleviating the packet loss by increasing UDP socket buffers (RCC_UDP_RCV_BUF_SIZE/RCC_UDP_SND_BUF_SIZE) or disabling SCC which is known to cause packet loss at very high data rates (RCE_NO_SYSTEM_CALL_CLUSTERING)

@lubertRoft the problem is with the lack of manual deletions all over uvgRTP so changing the return value does not change this since the deletion is not based on return value.
You can check https://github.com/ultravideo/uvgRTP/blob/762a85da95134d61c58ca1b140493eeaf2c147b4/docs/examples/configuration.cc for how to change those buffer sizes mentioned in previous answer.
@altonen I feel the use case (whether realistic or not) is irrelevant when it comes to memory leaking. Is there an error print if frame is dropped due to small buffer?
As for the design decision for what should happen when user sends a very high bit rate stream... I think the current solution of manually adjusting buffers is fine as long as there are clear indications when the buffers are not enough. One could consider a more adaptive solution, but then the user would lose control over the size of the buffers and that might be a problem in some cases. Both could also exist at the same time via configuration, but it is not a high priority at this point (pull requests are still welcome if this is needed).

@polusto Yes it's a bug and should be fixed, but if there are more pressing issues, this may not deserve the highest of priorities. uvgRTP is not able to detect if the receive UDP buffer is too small, it only sees the effects of it which are dropped packets. If the frame expires because uvgRTP is still waiting packets for it and no packets are received after the frame deadline is over, the memory of those packets that were already received is not release, no prints either.

I need to send multiple images simultaneously over the network, as fast as possible, while keeping the quality as good as possible, the size of each image is around 3MB.
When I tried to use the polling method of receiving I ran into the issue that as soon as I started to poll from multiple ports in one process one of the receiving streams is delayed. When I switched to the asynchronous mode I didn't have that issue.

@lubertRoft In that case you definitely need to increase those buffers.

@lubertRoft
What kind of network equipment you have and are you able to figure out the MTU size used by Gstreamer? We were able to reach ~600 MB/s over a 10 Gbps link using a 1500-byte MTU. If your whole network equipment supports larger MTU sizes, you may try increasing that using RCC_MTU_SIZE.
Where is the memory leak exactly? I believe valgrind/ASAN is able report even the line where the leak happens, that would help debugging this issue.

Valgrind doesn't help that much because it only tells where the memory is allocated.
It seems that the memory is not actually lost, it's just the number of frames waiting for more data is increasing.
It might help to add this kind of simple garbage collection around here at the end of packet_handler():
https://github.com/ultravideo/uvgRTP/blob/master/src/formats/h265.cc#L451
    static auto last_execution = uvgrtp::clock::hrc::now();
    auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()-last_execution);
    if(uvgrtp::clock::hrc::diff_now(last_execution) > 100) {
        uint32_t total_cleaned = 0;
        std::vector<uint32_t> to_remove;
        for(auto& gc_frame: finfo->frames) {
            if(uvgrtp::clock::hrc::diff_now(gc_frame.second.sframe_time)>500) {
                to_remove.push_back(gc_frame.first);
            }
        }
        for (auto & old_frame : to_remove) {
            for (auto& fragment : finfo->frames[old_frame].fragments) {
                total_cleaned+=fragment.second->payload_len + sizeof(uvgrtp::frame::rtp_frame);
                (void)uvgrtp::frame::dealloc_frame(fragment.second);
            }
            finfo->frames[old_frame].fragments.clear();

            for (auto& temporary : finfo->frames[old_frame].temporary) {
                total_cleaned+=temporary->payload_len + sizeof(uvgrtp::frame::rtp_frame);;
                (void)uvgrtp::frame::dealloc_frame(temporary);
            }
            finfo->frames[old_frame].temporary.clear();
        }
        if(total_cleaned > 0) {
            LOG_INFO("Garbage collection cleaned %d bytes!", total_cleaned);
        }

        last_execution = uvgrtp::clock::hrc::now();
    }

Your code snippet omitted the problem with the bloating memory @fador, thanks a lot!

You're welcome @lubertRoft!
One note about the snippet, since static variable is used, it's not safe for multi-threaded environment. In this case it might randomly clean up memory in different threads so not really a big issue either 😅
But it's a reason we cannot just commit this to master right now, have to do some changes..

@fador The static packet_handler function seemed like it only affects the local variables which it gets as a parameter, so it may not actually be a problem in multi-stream applications.
@lubertRoft I created an issue which might help in your use case (#76). I will try to document it better when I have time, but in essence, there are configuration parameters that should be adjusted in these kinds of use cases and the configuration example demonstrates this.
I'm currently working on refactoring the code in formats and I will try to include the code snippet hopefully during this week.

The garbage collection for lost frames has now been merged to master in b808c465c98048dfc3b67138b1e129c963d35640
Haven't tested it, so feedback is welcome.
Is this issue solved?

Sorry for the late reply, the garbage collection works properly, thanks guys!

The fact that frames were lost at all is discussed in #88. Closing this issue.


Support localized problem detail messages

The problem RFC 9457 allows for localized problem title and detail.
Belgif guidelines state the problem title should be in English (why?).
The requested language can be specified in an Accept-Language HTTP request header (see https://www.belgif.be/specification/rest/api-guide/#i18n-negotiation).
The rest-problem-java library could support localized problem (and issue) detail messages.

The reason was that the problem title is meant for technical support people. They don't necessarily use the same language as the end user, and it's probably more beneficial to have a single recognizable message then.
The schema provides a bit more explanation:  Written in English and readable for engineers (usually not suited for non technical stakeholders and not localized).


Disable or change radix eslint rule

As per the rule description, it is intended for applications targeting pre-ES5 environments. If we only care about ES5+, then it is actually recommended to use the opposite setting, which warns when redundant radix 10 is passed.
In code that uses LOTS of parseInt's, adding an extra argument every time makes the code less readable.

My bad, I see the rule is already removed, and my issue is with custom-react-scripts.


Deprecate LIVEBOOK_APPS_PATH_HUB_ID

Instead, we will build the ID from LIVEBOOK_TEAMS_AUTH.

Note: we want to default to personal hub id, if teams auth is not specified.

The default today is nothing, no? So we don't check the hub id at all. Shouldn't we stick to that?

When generating the Dockerfile for airgapped deployment with personal hub we set ENV LIVEBOOK_APPS_PATH_HUB_ID "personal-hub". If we get the id from LIVEBOOK_TEAMS_AUTH, then there is no option to set it for personal hub.

Right, but I am not sure we would be losing anything here. Personal-hub does not identify a particular individual, so it does not exclude you from running a third party notebook. And enforcing everything to be "personal-hub" may break some deployments. So I think it is easier and more straight-forward to say there is no filtering unless you use teams.

And enforcing everything to be "personal-hub" may break some deployments.

WDYM?

so it does not exclude you from running a third party notebook

It skips teams notebooks in the same directory (deploying which would fail anyway), though we still warn. So yeah, I think making it teams specific is fine :)


More language updates

What does this PR do and why?
DONE

Address feedback from @tomquirk on #3130
Update language in Create flow.
Clarify "Payments: Paused". New term: "Payments to this project: Paused".
Add to balance -> Transfer ETH to project.
Issue ERC-20 -> Deploy ERC-20
Miscellaneous fixes

TODO

Further update language for NFTs.
Final proofreading & clarity fixes.

Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

@tomquirk Vercel deploy not working on this branch for some reason, so I haven't been able to take a look at these changes in context. Otherwise, they should be good to go.


feat: build action

https://anaconda.atlassian.net/browse/CR-45

This is temporary until everything with the action gets sorted, but I guess we can use it to become familiar with it.


Kpt Fn Catalog Doc Umbrella Issue

We need to finish the followings for the new kpt fn catalog doc site

[ ] The site should be served at catalog.kpt.dev subdomain
[ ] We only support 2 categories: mutators and validators. Older categories should be merged with these 2 or removed.
[ ] We should use the new registries (kpt-fn, kpt-fn-contrib) instead of the old registry (kpt-functions).
[ ] Random functions in the existing catalog site should be removed.
[ ] Every function should have an example.
[ ] CD pipeline for the site.

Please feel free to update the list.

Question: why do we want to have a subdomain here?  Why not just have the catalog as one of the pages?  My concern here is that we are creating infrastructure for what is now a fairly limited set of functions (I'd say anything less than 50 is probably OK to be updated by hand).
We need to de-risk the layout and ability to find the right functions with the small amount of functions that we have.

We want to use a subdomain since these 2 sites are independently managed and deployed. Using a subdomain can make things much easier.
What I imagine is that:
When visiting kpt.dev site, in the vertical sidebar navigation menu, we have a top level item called Function Catalog that points to the subdomain while we will NOT have any subitems. The layout looks like this:
Home
Command Reference
  cfg
  fn
  live
  pkg
Tutorials
  Deploy CockroachDB
  Set up Kafka with Helm-inflator
  Integrate with CI/CD pipeline
Function Catalog # No subitems here. It points to the subdomain.
Guides
About
  Design
FAQ
Contact Us

When visiting catalog.kpt.dev site, in the vertical sidebar navigation menu, only Function Catalog will have subitems, others will only have top level item. The layout looks like this:
Home   # these top level items points to the right location in kpt.dev site
Command Reference
Tutorials
Function Catalog
  Mutators
  Validators
Guides
About
FAQ
Contact Us

In this way, the 2 sites looks like one site. And the discoverability should also be good enough.

@mengqiy As part of this, we should do a quick UI mock for a function.


Alt. ID limitations

Hello, it is mentioned in this article the following warning:
"Using an Alternate ID is not compatible with all Office 365 workloads. For more information, refer to Configuring Alternate Login ID."
I can't find any relevant information with regards to what workloads are not compatible, even by looking at the link provided in the warning (I'd need a single example to get started).
Additionally, we're currently on ADFS using alt. ID and are about to move to another 3rd party IDP such as PingFederate. Are the limitations stated only regarding the use of that Alt. ID with ADFS?

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

ID: 21fa537d-81fc-ccc9-f7f8-1486e71dea62
Version Independent ID: 8e578d88-8bcb-a229-95f6-10b760d6f563
Content: Azure AD Connect: Custom installation
Content Source: articles/active-directory/hybrid/how-to-connect-install-custom.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

Thanks for the ask  . At this time we are reviewing the ask and we will reply back as soon as we can .

@qu0vad1s I don't believe that there is any existing documentation specifically covering this. I'm assigning this issue to the content author to look into. I've also created an internal work item to track this.

@qu0vad1s Thank you for the issue.  You can find additional information on Alternate ID here: https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configuring-alternate-login-id
This is specific to AD FS.
Thanks!
#please-close


Added FAQ anchor to url

Adressing Issue #2668 by @MikeMcC399
The browser address bar shows only https://www.coronawarn.app/en/faq/results/ after accessing a specific FAQ article.
I´ve added it back, so it behaves like the old FAQ.

@MikeMcC399 Thanks for feedback/review.


Homebrew cask versions not tracked (incorrect) for casks with auto update

Verification

[X] This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

Provide a detailed description of the proposed feature
When you install any given casks with 'auto_udpate: true' the casks populates brew manifest with a the correct version number. However, as time goes by, and the cask uses its auto-updater tool to install a new version, such version is no longer tracked by Homebrew. This generates a very unpleasant behavior by which the users looses track of the currently installed version.
What is the motivation for the feature?
Although it might seems irrelevant, brew was born to be THE macOS missing package manager and, as such, it should always be able to keep an updated inventory (casks manifests) that reflect the currently installed version, even after a specific cask has been updated by its self updater.
How will the feature be relevant to at least 90% of Homebrew users?
It is relevant as per point above. As a user I leverage 'brew list --casks --versions' to list installed packages and their current versions. This currently is not that meaningful as the list will be reflect correct versions only on casks that do not have auto_update, therefore the user does not have a real visibility of the update status with this command.
What alternatives to the feature have been considered?
The propose solution is to implement a function that, upon execution of brew update, it could scan / cat all the manifests of the app with auto_update: 'true' and parse their correct version with the correct value and possibly update it's internal manifest (of brew) as that will reflect the correct version of the casks installed.
This will allow better version monitoring.

Passing on this. These are always going to drift because they are updated outside of Homebrew. brew upgrade --greedy allows you to keep these in sync if desired.

@MikeMcQuaid I beg to differ in regards of version drifting. My reasoning was to implement a script/function to work as follows:

at the end of the brew update, once brew has updated formulas and casks by getting the updated manifest, all packages with auto_udpate may be listed and stored in an array with their brew last known version

brew info --cask --json=v2 $(brew list --cask) | jq -r '.casks[]|select(.auto_updates==true)|.token'

based on that list of app, the actual (currently installed) version could be retrieved, e.g. via

defaults read /Applications/App.app/Contents/Info.plist CFBundleShortVersionString

Recursively in this list the current version from app bundle is checked against the last known of brew. If actual >= known then it might be possible to instruct brew to consider the package as finale and base all future action on the updated formula/manifest.

I'm not sure about the implication of such workflow in homebrew, however, I recently stumbled upon a possible use-case.
I recently installed WhatsApp app via its cask and this app is about to be completely updated as a new macOS silicon version has just been released. This app change entirely the folder used and "zap" files and folders structure. I'm afraid that if I download the latest version by auto updated (from the app) and, at a later stage, uninstalled the cask via brew the zap instruction would have been incorrect as. brew would have used the reference from the previous version (not knowing which was the actual version installed on disk).
Again, I realize that this is more a exercise of style rather than a real issue and there are ways and workaround for these (i.e. --greedy), however, it would be a real nite to have feature that might make homebrew more elegant and convenient.
Hope you might reconsider. Unfortunately, I'm not able to create a PR for such a feature.
Thanks for the great work!

uninstalled the cask via brew the zap instruction would have been incorrect as. brew would have used the reference from the previous version (not knowing which was the actual version installed on disk).

If this is the case and it's a reproducible bug: please report it. That's not what you're describing here, though, and it sounds like worries about a hypothetical bug rather than an actual one.

Again, I realize that this is more a exercise of style rather than a real issue and there are ways and workaround for these (i.e. --greedy), however, it would be a real nite to have feature that might make homebrew more elegant and convenient.

--greedy is not a workaround: it's the functionality you want. The functionality you describe is not one that e.g. I want.

Hope you might reconsider. Unfortunately, I'm not able to create a PR for such a feature.

This was unlikely to be accepted even if you created the PR and without it: it seems to just be something you'd like to see that we do not. Sorry!

Please do not consider this message as a complaint. I believe the whole homebrew team is doing an amazing job.

If this is the case and it's a reproducible bug: please report it. That's not what you're describing here, though, and it sounds like worries about a hypothetical bug rather than an actual one.

I was actually referring to whatsapp cask, which was recently changed (at least in the alpha release, which will soon become mainstream for apple silicon) - this has been already addressed by a PR.
Instead, --greedy is not actually the functionality I was looking for as this would forcefully installed a fresh cask - but in I'm only tying to align the installed version reference inside homebrew without changing anything in the installed packages. I do not want to forcefully reinstall each cask, I'm ok with apps autoupdate functionality.
That said, I understand why this may not be consider as a feature in homebrew and that would not be pursued.

Please do not consider this message as a complaint. I believe the whole homebrew team is doing an amazing job.

Thanks for the kind words ❤

Instead, --greedy is not actually the functionality I was looking for as this would forcefully installed a fresh cask - but in I'm only tying to align the installed version reference inside homebrew without changing anything in the installed packages. I do not want to forcefully reinstall each cask, I'm ok with apps autoupdate functionality.

The problem is casks are stored in e.g. /opt/homebrew/Caskroom/1password/8.10.1/1Password.app/. By the time you're altering these paths and moving them around: it doesn't seem to be much different to me to be doing what ---greedy does.
I understand what you'd like to have work: I just don't quite see a situation where it can be easily implemented and get you what you want. If you were willing to take a stab at a PR: that might swing things but as you're not: I'm afraid it doesn't.

That said, I understand why this may not be consider as a feature in homebrew and that would not be pursued.

Thanks for your understanding 🙇🏻

Thanks @MikeMcQuaid !
I now have a better understanding of how Caskroom is implemented (did some rearming around in homebrew) and I get why this is not easy to implement given the cask folder structure.
Perhaps, in the future, I might take a attempt a PR.
Thanks for now.


upgrade to @nuxtjs/auth-next v5 + dependency updates

Provide a working example for the recommended version v5 🔥
Check https://auth.nuxtjs.org/providers/auth0
Beware: To deploy this as a working review app, please provide the correct AUTH0_AUDIENCE ENV variable on the target machine 💥

@Atinux This looks great. Can we merge it?


feat(cronjob): introduce CronJob construct

This PR adds the Kubernetes CronJob Resource L2 to cdk8s-plus. This is part of the effort to make cdk8s+ GA.
Having this L2 abstraction would enable the customer to provision Kubernetes CronJob Resource using cdk8s+ and that would generate/add it to the Kubernetes manifest.
Resolves https://github.com/cdk8s-team/cdk8s-plus/issues/376
Resolves https://github.com/cdk8s-team/cdk8s-plus/issues/813
Resolves https://github.com/cdk8s-team/cdk8s-plus/issues/814
Next Steps
Since timezone is behind a feature gate and works with K8s-24, we would need to fix the backport PR.
DCO
Signed-off-by: Vinayak Kukreja<EMAIL_ADDRESS>

@vinayak-kukreja Let me know when you ready for another review, just re-request the review on the top right.

💚 All backports created successfully

Status
Branch
Result

✅
k8s-22/main

✅
k8s-23/main

Questions ?
Please refer to the Backport tool documentation

@vinayak-kukreja As you predicted, the backport PR's are failing with:
' is not assignable to type 'CronJobSpec'.
  Object literal may only specify known properties, and 'timeZone' does not exist in type 'CronJobSpec'.

I guess just remove the timeZone property?


Added table with some style to account setup, add background sections…

… add other potentially uneccessary stuff

@dylanavery720 @bekahlundy --  I don't know if going with a table inside a form is the right way to go for account setup, what do you think?
I used the vh's to try and soften the differences between different mobile displays but it's still not as crisp or responsive as it should be- I wonder if we need to go all responsive (em or vh) or all pixels- what concerns me about using pixels is how sections won't lay flat against each other in the same way on different devices...  but switching it all seems like it might be overkill...
Also, I left the user prop being passed to header in the application as a reminder to talk about how to display the h2 as a conditional- I was struggling with getting it to work and didn't want to forget about it- so that's just there as a reminder.


New sponsor meetup

We now have a new sponsor so amended the page accordingly.

Nice removing of trailing spaces!


Not possible open configuration for Asterisk

Hi!!
It can may be it is wrong, but when I try open configuration page by address localhost:5038 and i get error message:
Asterisk Call Manager/7.0.0
Response: Error
Message: Missing action in request
and in log file for Asterisk I see error:
[Jan 28 21:56:14]   == Client from <IP_ADDRESS>, failed to authenticate in 30 seconds
[Jan 28 21:56:14]   == Connect attempt from '<IP_ADDRESS>' unable to authenticate
[Jan 28 21:56:16]   == Client from <IP_ADDRESS>, failed to authenticate in 30 seconds
[Jan 28 21:56:16]   == Connect attempt from '<IP_ADDRESS>' unable to authenticate

Hi @TimpP-Spb,
Asterisk does not have a GUI. Only with FreePBX.
To configure the add-on, you can edit the files in /config/asterisk in HA and restart the add-on.

@TimpP-Spb are you still having problems?

No response. Reopen if you are still having problems.


Enable statistics for distance sensor

Sets state_class for distance sensor to measurement, enabling Home Assistant to create long-term statistics.
See New sensor properties for long-term statistics and Sensor Entity / Available state classes for reference.
This fixes #77

Great, thanks for your first contribution!

https://github.com/mrk-its/homeassistant-blitzortung/issues/101


Add Hemi mainnet and 1.4.1 contracts

Make sure these boxes are checked! 📦✅

[ ] You ran ./run_tests.sh
[x] You ran pre-commit run -a
[ ] If you want to add your network to setup_service.py, provide a link to your
safe-deployments PR and check network name
exists in safe-eth-py

What was wrong? 👾
Closes #2
How was it fixed? 🎯
Hemi Sepolia contracts v1.4.1, Hemi Network contracts v1.3.0 and v1.4.1 were all added to the patchfile.
web3 had to be updated to 6.20.2 as it fixed a bad dependency range setting for eth_typing in prior versions. That was breaking the tests and would most probably also break the service.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
14095

Relevant Lines:
15007

💛  - Coveralls


improve wording around jemalloc

IMHO this can be clearer that jemalloc is the default allocator on FreeBSD and has major support from Facebook. For server side Ruby it's very low risk :)

Looks good, thanks for this change. :)


Relax torch and transformers versions

Description of changes: This PR relaxes torch and transformers versions to allow for older versions that were used during original training. This is needed in light of recent torch/transformers versions being slower with DDP.
Relevant issues (but the problem may be deeper than these):

https://github.com/huggingface/transformers/issues/30840
https://github.com/pytorch/pytorch/issues/127077
https://github.com/NVIDIA/nccl/issues/1298

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@abdulfatir could you just link in the OP all the issues related to performance regressions?

@abdulfatir could you just link in the OP all the issues related to performance regressions?

Done.


Unexpected "starts with" col class selector

The following screenshot has the latest version on the left, with the older version on the right:
https://jross.me/l/v836m
As you can see, all of the classes on the left use a starts with operator, which triggers unexpected styling on classes such as colorBand, etc. This also causes another issue with elements that have col as a class, but not the first class. For example, using someClass col inside of a grid-6 won't trigger the latest rule in 2.3.1 as it does not start with col.
Is this intended behaviour, or a regression from the previous version?

This looks to have been caused by https://github.com/devlint/gridlex/commit/180bc6639a44f88d3bfdcb7da9863a27802c8c64#diff-0be8c604249748f90aea17a7a44878d3L125

Thank you for the issue @Cherry !!
This is now fix in the new version 2.3.4.


Hive table with ES storage lose column comments

when create a hive table by ES storage, the comment for each column is lost, that is when re-query the table schema, the comments by each column is missed. Wonder is there  anyway to support storage the comment?
e.g. hive scripts:
drop table online.user_gps_record_es;
CREATE EXTERNAL TABLE IF NOT EXISTS online.user_gps_record_es (
user_id STRING COMMENT 'user id',
active_time STRING COMMENT 'user spot time',
longitude DOUBLE COMMENT 'longitude',
latitude DOUBLE COMMENT 'latitude',
app_type STRING COMMENT 'user app type',
pdate STRING COMMENT 'pdate'
)
COMMENT 'user gps history, [ES:resys_user_gps_db/user_gps_record]'
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'resys_user_gps_db/user_gps_record','es.nodes'= 'es.xxx.com',
'es.port'= '9200','es.mapping.id' = 'id','es.index.auto.create' = 'true',
'es.batch.size.entries' = '1000','es.batch.write.retry.count' = '10000','es.batch.write.retry.wait' = '10',
'es.batch.write.refresh' = 'false','es.nodes.discovery' = 'true','es.nodes.client.only' = 'false'
);

This is a side-effect due to the way Hive saves/serializes comments in a table - typically through the 0 character which caused the serialized Hive job configuration to be invalid. In an effort to prevent this from happening (see #322 and #359) (note this is Hive specific, it has nothing to do with ES), the connector removed these lines which might explain why the comments are stripped as well.
You can modify this behaviour which is enabled by default by setting
es.hive.disable.columns.comments.fix to true in your ES-Hadoop configuration.
For more information about the problem, see this main Hive issue.
Hope this helps,

Closing this out as there doesn't seem to be anything actionable.


Support dynamic badge plain string responses

At least for json a string response (wrapped in quotation marks) should be selectable by the query argument.
The service returns "text" and that should be the label when using $ as jsonpath selector.
Currently the badge errors out with: "needs to be object or array"
Maybe a general fallback could be to render as label what the service returns (200 OK) (excluding multi line responses).

It's not entirely clear what you're saying, and I think some real examples would be illuminating.
However, if you're in need of a badge where upstream service  isn't well formed/isn't queryable, then you may want to consider taking a look at the Custom Endpoint Badge instead

In JSON, a single literal value is technically valid JSON. e.g:
> JSON.parse('"abc"')
'abc'

> JSON.parse('1')
1

so I think the feature request here is that this should be parseable by the dynamic JSON badge.
The thing is, although we throw the error here https://github.com/badges/shields/blob/1b871a97b450d54e82b71f444930ae8533c06142/services/dynamic/json-path.js#L46-L52 this is really a feature or limitation (depending on how you look at it) of the jsonpath library we use https://github.com/dchester/jsonpath which we've inherited, rather than a choice we have explicitly made
> const jp = require('jsonpath');

> jp.query("text", '$')
Uncaught AssertionError [ERR_ASSERTION]: obj needs to be an object
...

Exactly, @chris48s thanks for doing my work of explaining the issue thoroughly myself ;)
You hit every point I would have made plus you added some insights into the library.
The service in question returns a version string "1.2.3", which is as you explained @chris48s, valid JSON.
The website https://jsonpath.com/ can also evaluate it just fine.
Would it be possible to switch out the JSON Path library?

Out of curiosity, what is the service?

In principle I don't think we're married to https://github.com/dchester/jsonpath specifically.
In practice, my concern in adopting a new lib would be compatibility for existing users. There are a lot of existing dynamic json badges out there in the wild.  Of course, in principle JSONPath is JSONPath but if there are any minor differences in the implementation between the 2 libs there is the potential to cause a breaking change for existing users with no warning. I'd want to have a high level of confidence that isn't going to happen in order to commit to a switch (and that is a non-trivial thing to be sure of).

Out of curiosity, what is the service?

An internal private service of a company. They can't easily change the returned value, as it would break other contracts. Does shields request a particular content-type maybe? I couldn't see any specific Accept header on the requests. The User-Agent is shields but could the service rely on that?

@chris48s I understand your back compatibility concerns.
Kind of sad, that while JSONPath seems to be a standard, one has to worry to switch out a faulty library with a working one because who knows which other quirks this faulty library has hidden underneath.
One non-breaking change I would like to propose:
Instead of throwing an "invalid response" exception lets give another lib a try with the response instead. That way all the old badges still work because they never hit this code-path (in the past) and only responses that are potential valid JSON (but miunderstood by the current JSON Path lib) would be handed to the new, more compatible lib. It would mean another dependency on an external package though.
What do you guys think?

I'm still not 100% convinced that the dynamic badge is the best fit for this scenario, and am not terribly keen on having to swap out the underlying lib and all the uncertainties that would entail, nor having to utilize two separate jsonpath libs for this one use case.
Functionally, this feels very much like a "get badge message from string" use case which I'd again suggest could be handled today pretty easily via a custom Endpoint badge, or perhaps even as its own standalone badge. Why have the complexity in route, code, and processing for querying something that doesn't need to be queried, as we would in the dynamic json/jsonpath approach?

one has to worry to switch out a faulty library with a working one because who knows which other quirks this faulty library has hidden underneath

I think this is probably a bit of a stretch to blanket label one implementation "faulty" and one "working". As this comparison table show https://cburgmer.github.io/json-path-comparison/ there is some room for manoeuvre in the spec and every JSONPath library (including JSONPath-Plus) comes with its own selection of quirks.

Why have the complexity in route, code, and processing for querying something that doesn't need to be queried, as we would in the dynamic json/jsonpath approach?

We don't know how many endpoints where changed just because shields JSON parser was unable to parse a valid JSON response properly.
So instead of slightly modifying an existing endpoint, which would work just fine with the $ query and an alternative jsonpath lib instead of throwing an exception, you rather would introduce a new route, code and processing?
Sure its your project and I love it for what it does. That's why I didn't implement an image/svg response on the endpoint but rather used shields directly.
But this little limitation (caused by a somewhat-working JSONpath implementation) already has me on the edge of deploying a jq lambda function to pipe the shields request through ;)
https://img.shields.io/badge/dynamic/json?query=%24&url=https://json.stream/shields.io/https://faulty-response-server
Maybe I should really add an image/svg response which would just redirect to the standard shield plain text badge composer.

We don't know how many endpoints where changed just because shields JSON parser was unable to parse a valid JSON response properly.
So instead of slightly modifying an existing endpoint, which would work just fine with the $ query and an alternative jsonpath lib instead of throwing an exception, you rather would introduce a new route, code and processing?

I appreciate that you might be frustrated by the current state of affairs, but let's tone down the sarcasm as it isn't very constructive.
Yes, as I said previously, I do think it's worth considering a new Dynamic* badge if we want to support this natively.
Please keep in mind that we're not starting from a clean slate here. We're regularly serving up more than 100k dynamic json badges per day and we have to be careful and thoughtful about any change that impacts, or has the potential to impact, our existing users. Swapping out the jsonpath lib absolutely carries a non-zero risk of impacting our existing users, so that's not something we're going to stumble into haphazardly.
Additionally, I don't think trying to interoperate between two jsonpath libs is a good idea for us either, especially when it comes to ongoing maintenance and troubleshooting, all to support a jsonpath query for something that doesn't actually need to be queried.
When I speak about the route, I'm really talking about the user experience and the corresponding badge urls. I'm not sure why we'd want to force users to provide a ?query=$ which we then run through a jsonpath processor, all for what was a literal value to begin with. Trying to do that with the current jsonpath lib (for BC), which we know will throw an exception, only to then go and do again with a second jsonpath path lib, or having to inspect the response data and query contents to conditionally select the lib to use, all seem like unnecessary runtime churn to me.
It takes very little code (typically tens of lines) to make a service class, so yes, I absolutely think a separate class/handler has the potential to be a better option which would make for a cleaner badge route, avoids extra runtime work in our environment, and avoids the risk of having to switch out the existing lib, especially since we could easily augment our docs to help point folks to it should they find themselves in a similar situation.

Perfectly understanding the reasoning here.
I think I will just add a little proxy route to make it work for now with the json endpoint.
And since I do not want to redirect attention away from more important bugfixes & features, I will close this issue. When the new endpoint is implemented eventually a little note into this issue would be appreciated.
Thanks again for this great service!

Circling back to an old issue here, but it came up on discord. Although our JSONPath lib requires an object, an endpoint that just returns a literal value will work with the dynamic XML badge, so https://img.shields.io/badge/dynamic/xml?query=/text()&url=... can be used in this case. H/T to @RedSparr0w for this one :tophat:


Opp Payment Field mappings limits source fields too much

We currently only allow custom fields from Opp, and the following standard/npsp fields:
'amount', 'closedate', 'expectedrevenue', 'probability', 'totalopportunityquantity', 'npe01__membership_start_date__c', 'npe01__membership_end_date__c'
should we just include all standard/npsp fields?  or specifically add to this list.
hub thread: https://powerofus.force.com/0D58000002UhKrj
user wanted to use the Opportunity Type field.

**lurch: add

Tracking W-009307

As it works to add them directly from Custom Settings, I don't think we necessarily have to add all the fields but I do think Opportunity Type might be a good one to consider.

What is interesting to me, however, is why you would want to copy these fields to the payment, when the payment could just have a formula field getting the value from the Opp.

I'm guessing, but it's likely that as there's no Payment Type picklist (Check, Cash, Credit Card, etc) on Opportunity, an implementation repurposed the standard field for this. As Record Type defines the Type of Opportunity, and the Account's Record Type determines whether it's Household or Organization, the standard Opportunity Type field isn't heavily leveraged. Therefore, this would want to be updated for each payment rather than stay consistent across all payment records.

It would be nice if the error thrown on Opp creation when Opp.Type is mapped could be more specific than 'SObject row was retrieved via SOQL without querying the requested field: Opportunity.Payment__c'.  Took me an hour to isolate the cause.  (I didn't even really need Type mapped that much!).  Thx for considering.

Another request for this

Another request for this

Closing this issue as it is a feature limitation rather than a bug, and has a workaround.
A request for the current behaviour to be changed van be logged via an Idea: https://trailblazer.salesforce.com/ideaSearch?filter=Nonprofit+>+Nonprofit+Success+Pack

Closing this issue as it is a feature limitation rather than a bug, and has a workaround.
A request for the current behaviour to be changed van be logged via an Idea: https://trailblazer.salesforce.com/ideaSearch?filter=Nonprofit+>+Nonprofit+Success+Pack


kinesis_video_gstreamer_audio_video_sample_app gets stuck

I am running this command:
GST_DEBUG=4 AWS_ACCESS_KEY_ID=xx AWS_SECRET_ACCESS_KEY=yy AWS_KVS_AUDIO_DEVICE=hw:1,0 ./kinesis_video_gstreamer_audio_video_sample_app test
And it gets stuck with the last message being:

Setting video_encode state from Idle to Executing

I do see these 2 warn messages

audiosrc gstaudiosrc.c:197:audioringbuffer_thread_func: failed to set thread priority
audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps

Also I can confirm that running the sample app which records just video, works fine - kinesis_video_gstreamer_sample_app
I can also confirm that i do have the audio recording device at hw:1,0 by doing
arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

I can also confirm that the microphone works by recording and playing the audio with command:
arecord -D plughw:1,0 -d 3 test.wav

Also when i run gst-device-monitor-1.0 it doesnt detect the audio recording device. Here is its output
gst-device-monitor-1.0
Probing devices...

Device found:

	name  : mmal service 16.1
	class : Video/Source
	caps  : video/x-raw, format=(string)YUY2, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)UYVY, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)I420, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)YV12, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        image/jpeg, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        image/jpeg, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)BGRx, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)BGR, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)RGB, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)NV21, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)NV12, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-raw, format=(string)YVYU, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	        video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 32, 3280, 2 ], height=(int)[ 32, 2464, 2 ], framerate=(fraction)[ 1/1, 90/1 ];
	properties:
		udev-probed = true
		device.bus_path = /sys/devices/virtual/video4linux/video0
		sysfs.path = /sys/devices/virtual/video4linux/video0
		device.subsystem = video4linux
		device.product.name = "mmal\ service\ 16.1"
		device.capabilities = :capture:video_overlay:
		device.api = v4l2
		device.path = /dev/video0
		v4l2.device.driver = "bm2835\ mmal"
		v4l2.device.card = "mmal\ service\ 16.1"
		v4l2.device.bus_info = platform:bcm2835-v4l2
		v4l2.device.version = 267074 (0x00041342)
		v4l2.device.capabilities =<PHONE_NUMBER> (0x85200005)
		v4l2.device.device_caps = 85983237 (0x05200005)
	gst-launch-1.0 v4l2src ! ...

I am using Raspian Buster.
Attached are the logs.
kinesis_audio_video_sample_app_logs.txt

can you try export AWS_KVS_VIDEO_DEVICE="/dev/video0" too?

@chehefen same results. it gets stuck at

Setting video_encode state from Idle to Executing

You have asked me to set the video device variable.
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

@chehefen do you have any ideas/hints I could pursue?

I was able to resolve this issue by replacing the microphone/camera setup I had with a Logitech C920e Webcam. This indicates that perhaps there is a compatibility issue with the old microphone I was using.
Hopefully this helps someone else in the future.


fix(Sources): update empty state texts to be more informative

closes #764
//cc @dlabrecq @dayleparker

Codecov Report

Merging #806 into master will increase coverage by 0.17%.
The diff coverage is 86.66%.

@@            Coverage Diff             @@
##           master     #806      +/-   ##
==========================================
+ Coverage   73.94%   74.12%   +0.17%
==========================================
  Files         209      209
  Lines        3712     3702      -10
  Branches      650      650
==========================================
- Hits         2745     2744       -1
+ Misses        871      862       -9
  Partials       96       96

Impacted Files
Coverage Δ

src/pages/sourceSettings/noSourcesState.styles.ts
100% <100%> (ø)

src/pages/sourceSettings/sourceSettings.tsx
51.85% <100%> (ø)
:arrow_up:

src/pages/sourceSettings/noSourcesState.tsx
81.81% <81.81%> (ø)

...onents/state/noProvidersState/noProvidersState.tsx

.../state/noProvidersState/noProvidersState.styles.ts

src/pages/sourceSettings/rowCell.tsx
63.63% <0%> (+22.72%)
:arrow_up:

Continue to review full report at Codecov.

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

Looks good @boaz0 👍

Hey @boaz0 and @dlabrecq,
It looks like this issue (#806) and #802 are for the same empty screen -- I apologize if my creating issues in GitHub has caused duplication. I'll double check the other ones I created last week...
Either screen is fine with me - @nlcwong, do you think one flow/wording is preferable over the other?
Cheers,
Dayle

I think the overview and the source settings empty screens should be different. Nevertheless, I don't mind using overview empty screen as that's what we have right now.
@dayleparker @nlcwong

Thanks @boaz0 ! Apologies, I thought they were the same screen. If Natalie and Dan are OK with it, I say let's use them both in their respective spots in the UI, and review again later.

@dayleparker #806 and #802 are different screens. #802 is when shown when the user navigates to the overview and there are no providers. We don't show the tabs here, but an empty state which has a "view all sources" link, which navigates the user to the sources page.
They could be the same message, but only the sources page launches the providers modal.

Thanks @dlabrecq

@dayleparker what @dlabrecq said is true.  The two screens are coming from two different places.  The settings section is really "platform" level, so the wording on the Cost Mgmt. overview page should redirect the user to the settings' cost sources page to then launch the wizard from there.  If we launched the wizard straight from the overview page, there would be no guidance for the user to know how to navigate to the sources page, they need to see that it in order to add any sources, they have to navigate to the settings section first (which makes it feel that it is "outside" of the cost application).  This will help setup the next phase of sources where we are all joined, outside of any one particular application.


Add notes for mariadb

Awesome @viglesiasce, just one comment on the client command :)

Updated to use single line command

sweet! thanks @viglesiasce


Adding nodeclick signal

For my application, a single click on the node should emit a signal so that I could handle some interface functionalities.

Looks good and useful to me. Could this be considered?


Citation

Adds a citation file

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

Project coverage is 94.66%. Comparing base (5a4bf3f) to head (0e26643).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #430   +/-   ##
=======================================
  Coverage   94.66%   94.66%
=======================================
  Files          38       38
  Lines        3057     3057
=======================================
  Hits         2894     2894
  Misses        163      163

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


Update Theme: Drop Shadow

Adjusted the highlight border to show up on splitting tabs which it wasn't highlighted
(Conflicts solved)

Solved the glitchy pixel in the corners for the panel

Before:

After:

Thanks!

Thanks!


Launchpad integration

I would like to see Launchpad integration, it would be great for devs to receive tips, and it would be great for others to discover Gittip.
Note by Changaco: Launchpad apparently supports OAuth: https://help.launchpad.net/API/SigningRequests

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Re-ticketed to https://github.com/gratipay/inside.gratipay.com/issues/983 for further discussion and planning. After deciding on concrete implementation plan and dev work starts, this will be reopened for tracking purpose.


How to debug cause of "ImportError when running Container"

I am a bit stuck: I'm trying to deploy a pytorch model which runs fine on my local computer but hangs when trying to deploy it. The model's docker container gives me this error log:
$ docker logs 4437076d479c
Starting PyTorchContainer container
Connecting to Clipper with default port: 7000
Encountered an ImportError when running container. You can use the pkgs_to_install argument when calling clipper_admin.build_model() to supply any needed Python packages.

It seems like it is not able to import some dependency. I installed the same model in a clean anaconda environment on my computer and checked exactly which dependencies I needed to install. I listed these in pkgs_to_install. I have inspected all the log files of the docker containers and I can't find the actual error message which could give me a hint as to which dependency is missing. May some error log be getting swallowed somewhere?
The model I'm trying to run is the xinntao/ESRGAN for image super-resolution.
Dependencies:
Python 3
PyTorch >= 0.4.0
Python packages: pip install numpy opencv-python
The command to deploy the model:
deploy_pytorch_model(
    clipper_conn,
    name="superresolution-model",
    version=1,
    input_type="bytes",
    func=image_enhance,
    pytorch_model=model,
    pkgs_to_install=['opencv-python','numpy','six', 'Pillow','wheel',]
    )

the clipper_service.py is where I define the model and try to deploy.

Hi Thanks for raising this issue.
The import error is because the script is importing architecture.py and architecture.py is importing block.py. Cloupickle (package we use to serialize function) is not able to pick up and bundle these scripts directly. Basically, when we deserialize the script in container, it will run something like import architecture as arch and then architecture will import block as B.
If you consolidate all three files architecture.py, block.py, and clipper_service.py into a single clipper_service file, you should be good to go.
In few days, we will add a feature where you can directly deploy a onnx model (which you can directly export from pytorch using on line of code). This will be much easier.

Hello, @voodoohop. Happy new year!
First of all, thank you for your error report. Clipper installs the PyTorch library from pypi, but pypi has not been updated since Mar 11, 2017 and the 0.1.2 version is the last. Because xinntao/ESRGAN has 'PyTorch >= 0.4.0' dependency, you have to create Clipper has to create custom model container to support the latest PyTorch. Please refer to this link.
For example, if you prefer Python 3.6, no CUDA environment,

Create a Dockerfile like this,

FROM clipper/python36-closure-container:0.3

RUN pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-linux_x86_64.whl torchvision

Build a image

$ docker build -t custom-model-image .

Deploy your model with base_image,

deploy_pytorch_model(
    clipper_conn,
    name="superresolution-model",
    version=1,
    input_type="bytes",
    func=image_enhance,
    pytorch_model=model,
    base_image='custom-model-image',
    pkgs_to_install=['opencv-python','numpy','six', 'Pillow','wheel',]
    )

Also
http://clipper.ai/tutorials/custom_model_container/
On Fri, Jan 4, 2019 at 10:33 AM Sungjun.Kim<EMAIL_ADDRESS>wrote:

Hello, @voodoohop https://github.com/voodoohop. Happy new year!
First of all, thank you for your error report. Clipper installs the
PyTorch library from pypi https://pypi.org/project/pytorch/, but pypi
has not been updated since Mar 11, 2017 and the 0.1.2 version is the last.
Because xinntao/ESRGAN has 'PyTorch >= 0.4.0' dependency, you have to
create Clipper has to create custom model container to support the latest
PyTorch. Please refer to this link
http://clipper.ai/tutorials/custom_model_container/.
For example, if you prefer Python 3.6, no CUDA environment,

Create a Dockerfile like this,

FROM clipper/python36-closure-container:0.3
RUN pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-linux_x86_64.whl torchvision

Build a image

$ docker build -t custom-model-image .

Deploy your model with base_image,

deploy_pytorch_model(
clipper_conn,
name="superresolution-model",
version=1,
input_type="bytes",
func=image_enhance,
pytorch_model=model,
base_image='custom-model-image',
pkgs_to_install=['opencv-python','numpy','six', 'Pillow','wheel',]
)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ucbrise/clipper/issues/611#issuecomment-451494953,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUI_gyOw2gzK-wt9_aargK2l_YtJMjrSks5u_4JLgaJpZM4Zp4fF
.

Hi Thanks for raising this issue.
The import error is because the script is importing architecture.py and architecture.py is importing block.py. Cloupickle (package we use to serialize function) is not able to pick up and bundle these scripts directly. Basically, when we deserialize the script in container, it will run something like import architecture as arch and then architecture will import block as B.
If you consolidate all three files architecture.py, block.py, and clipper_service.py into a single clipper_service file, you should be good to go.
In few days, we will add a feature where you can directly deploy a onnx model (which you can directly export from pytorch using on line of code). This will be much easier.

Thank you guys for your fast response... @simon-mo I had actually tried consolidating those 3 files into one and had not gotten any further. But it's good to know I need to do that.
I will try building a custom model container and consolidate the files into one and let you know if it works. Thanks!

To be a bit more clear, if you are building custom container, you don’t need to consolidate the files because when building custom containers, you can just copy the files over.

Ok so I created a Dockerfile
FROM clipper/python36-closure-container:0.3

RUN pip install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-linux_x86_64.whl torchvision opencv-python numpy six Pillow wheel certifi

Then created the custom-model-image.
I also consildated architecture.py and block.py into clipper_service.py
Tried deploying the model with this command:
deploy_pytorch_model(
    clipper_conn,
    name="superresolution-model",
    version=1,
    input_type="bytes",
    func=image_enhance,
    pytorch_model=model,
    base_image='custom-model-image',
    pkgs_to_install=['opencv-python','numpy','six', 'Pillow','wheel',]
    )

But still the same error. I also tried copying the 3 python files to the Docker container.
Is there no way to get a more verbose error output instead of the "ImportError"?

is it possible to push superresolution-model:1to the dockerhub? To do that,

`docker tag superresolution-model:1 <docker_user_name>/superresolution-model:1

The issue is opencv:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/cloudpickle/cloudpickle.py", line 908, in subimport
    __import__(name)
  File "/usr/local/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

opencv2 requires several native packages to be used. The fix is to add the following line to your custom model dockerfile
RUN apt-get update && apt-get install -y libsm6 libxext6 libxrender1 libglib2.0-0

That solved the problem! Thank you so much.
Is there any log file I could have found that error?

Not yet. I have to go inside the container and try to load the function myself to see the issue.
To do that, I did:
docker run -it --entrypoint "/bin/bash" superresolution-model:1

and then in a python shell
>>> import cloudpickle
>>> func = cloudpickle.load(open('/model/func.pkl','rb'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/cloudpickle/cloudpickle.py", line 908, in subimport
    __import__(name)
  File "/usr/local/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

We are adding more logging and debugging support in the next few release, there are people actively working on this.

Ok! Once I have a better understanding of how the containers work I could try and contribute a fix too but it will still take a little. Thanks again

Hi Thanks for raising this issue.
The import error is because the script is importing architecture.py and architecture.py is importing block.py. Cloupickle (package we use to serialize function) is not able to pick up and bundle these scripts directly. Basically, when we deserialize the script in container, it will run something like import architecture as arch and then architecture will import block as B.
If you consolidate all three files architecture.py, block.py, and clipper_service.py into a single clipper_service file, you should be good to go.
In few days, we will add a feature where you can directly deploy a onnx model (which you can directly export from pytorch using on line of code). This will be much easier.

What are the limitations of cloudpickle exactly? will from architecture import arch always cause it to fail? or will it only fail if architecture.py imports other blocks from another local file?
I'm trying to let data scientists deploy models from experiment repos and would like to avoid having the nn architecture definitions and clipper deployments in one giant file.

@simon-mo @withsmilo It is a little uncomfortable to handle some packages in the current Clipper. We can probably improve this part later? I will label this issue as check-again.

We are adding more logging and debugging support in the next few release, there are people actively working on this.

+1 for this feature


vendor: pin etcd to v3.1.8

Just ran make vendor on bootkube master and have this change.

Seems like etcd package isn't versioned in glide.yaml .
Pin it.

LGTM. Can this bump to v3.2.0 or not yet?

Per discussion in slack, we pin versions to whatever is in glide.lock right now to start with.

@diegs
Updated etcd dep to v3.1.8

coreosbot run e2e

coreosbot run e2e

coreosbot run e2e

coreosbot run e2e


Test for OsLocalDateTime property of Get-ComputerInfo.

PR Summary
Test for OsLocalDateTime property of Get-ComputerInfo.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[NA] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@kalgiz The test is part of a Describe which is tagged as Feature, so you need to add [Feature] to the last commit.


Maximum execution time of 30 seconds exceeded

Guzzle version(s) affected: 7.7
PHP version: 8.1.2
cURL version: 7.81.0
Description
After call post in loop, get exception.
{
"message": "Maximum execution time of 30 seconds exceeded",
"exception": "Symfony\Component\ErrorHandler\Error\FatalError",
"file": "/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
"line": 595,
"trace": []
}

I'm not too sure what the goal of the issue report is. Possibly you need to set a connect timeout lower than your max execution time.


Op-1565 improve packaging

Stripped out the unneeded parts from the base buildenv image.
Added U20.04 focal building to existing U18.04 bionic.

bors r+


2 typos in constructors-cpp.md

In Move constructors section: "The variable box returned by get_Box() is an xvalue (eXpiring value) which is about to go out of scope." Typos:

get_Box() declares and returns variable b;
return result of get_Box() is value, hence the expression get_Box() is prvalue, not xvalue.

@panikgit thanks for the feedback. The explanation in the topic was unclear and is now fixed. Should be public in 1-2 days.
Within the constructor, the value returned by get_Box() is in fact an expiring value. It is a "temporary" because the constructor does not assign that return value to any variable, and it will go out of scope as soon as the constructor returns. Therefore it is safe for the constructor to move the contents of the original vector without having to copy it.


JSON friendly representation of dictionaries

Adding an extension for [String : Any] dictionaries implements a String variable with a JSON representation of the dictionary, if it is possible.
This has been very handy for me to compare models in runtime with JSON files.
If this doesn't fit with the Framework philosophy or is more a "dongle" to the Wrap Framework than an useful feature this PR can be ejected. No hard feelings :)

Thanks for this @ssouzawallace! As you say, I think should should be considered an extension (or dongle 😝) of Wrap. I'd like to keep Wrap as thin as possible, so would like it to be soley responsible for generatating dictionaries or data from objects - not doing operations on directionaries like this. Thanks anyway, and keep the PRs coming 😄


Athame crashing from time to time

Title is self-explanatory...
This was observed in relation to using the arrow keys extensively, but it may be unrelated.
Possible solution: rollback to a more stable version?

This was fixed by building athame with vim, not neovim.


[Xpt] Title

Description to be added

Setup project in Rails
Install required gems
Install Postgres database
Setup linters
Gitflow
Setup RSpec and Capybara


Electra 模型增加对输入 past_key_values 和 inputs_embeds 的支持

Feature request
Electra 模型增加对输入 past_key_values 和 inputs_embeds 的支持。可以参考 ERNIE 中对应的代码
Motivation
通过 past_key_values 和 inputs_embeds 输入可以支持 Prefix-Tuning、P-Tuning这样一些工作。

Hi @guoshengCS. I'll be happy to take this. Would you assign this to me?

I will break past_key_values and inputs_embeds into two separate PRs for easy reviews.
The PR for inputs_embeds is ready for review at #3401

#3411 ready for review as well

I'll be happy to take this. Would you assign this to me?
I will break past_key_values and inputs_embeds into two separate PRs for easy reviews.

Good start and no problem !  And sorry for the missing of messages in holidays.


Unexpected consent prompt when adding Application Role without scope

If I create two app registrations (A and B) (in my case in different Azure ADs). Then add two roles to B's appRoles in the manifest (one application type restricted and one user type restricted). Then consent to B in A's AD (via admin prompt), and then add API Permission in A to B.ApplicationRole. Then use the button to grant admin consent. If I then try to auth with A's client ID with B as the resource, then I get a consent prompt which lists B.ApplicationRole. Each subsequent auth asks for consent.
If I then add a scope to B and add that in addition to the already added B.ApplicationRole to A's API Permissions, and grant admin consent. Then I don't get consent prompts anymore.
Why does the scope addition make a difference? That should probably be listed here as a cause.
This is exacerbated by the rather lacking definition of application roles (See, e.g., https://github.com/MicrosoftDocs/azure-docs/issues/26292 which unfortunately did not help improve the documentation due to what seems like a misunderstanding from neeleshray)

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

ID: 27339f6f-c63d-d2cc-ec02-8727b5587bf0
Version Independent ID: 8edacd13-bbd1-cfc7-e686-7ca7bf4cb2ad
Content: Unexpected consent prompt when signing in to an application
Content Source: articles/active-directory/manage-apps/application-sign-in-unexpected-user-consent-prompt.md
Service: active-directory
Sub-service: app-mgmt
GitHub Login: @CelesteDG
Microsoft Alias: celested

@LasseNisted Thanks for your question. We are checking on this and will respond to you soon.

Thoughts on this, @CelesteDG ?

#reassign:msmimart

@LasseNisted - thanks again for your feedback and apologies for the delay. We've reached out to the product team and are working on clarifying the guidance related to this scenario. Just wanted to let you know we're actively tracking this internally, so for now we'll close this issue but will update the article as soon as we have clarification.
#please-close

@msmimart - thanks for following up. Will you update this github issue when the internal issue is resolved, even though it is closed? Or how do I know when the documentation has been updated?

@LasseNisted - I'll update this github issue so you'll be notified. Thanks!


[Kiali][release-1.1] Tell kiali about the new Pilot /version endpoint used to obtain Istio version

This should address https://github.com/istio/istio/issues/11832 - this PR is required due to a recent change in Istio 1.1.0-snapshot.6

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

Needs approval from an approver in each of these files:

install/OWNERS

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

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

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio-integ-k8s-tests

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

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

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio-integ-k8s-tests

prow/e2e_pilotv2_auth_sds.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio_auth_sds_e2e

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

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

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio-integ-k8s-tests

prow/e2e_pilotv2_auth_sds.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio_auth_sds_e2e

prow/istio-pilot-multicluster-e2e.sh
27ea6863bc588b97ded69ae22abf52d0866899d8
link
/test istio-pilot-multicluster-e2e

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

@mandarjog @linsun what are the odds of getting this into Istio 1.1? For details, see https://github.com/istio/istio/issues/11832

@mandarjog @linsun pinging again so this doesn't fall through the cracks before 1.1 goes out the door.

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jmazzitelli, ymesika
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [ymesika]

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

/cc @wenchenglu


hardware platforms

Hi
I see from the documentation that the ARM NN SDK supports Cortex-A, Mali GPUs (ARM Compute Library).
I have below queries:

Does this SDK version in Github support Cortex-M CPUs as well (using the CMSIS Library)?

When we run the application (that makes use of ARM NN SDK), does it select the underlying hardware automatically (from Cortex-A/Mali GPU etc. available) and run on them?

Could you please suggest the hardware platforms (on which you might have already verified)
for testing functionality of applications using ARM NN SDK for

Cortex-A CPUs
Mali GPUs
Cortex-M CPUs

Could you please help clarify on the above.
Thanks
Kamesh

Hi @uu-kameshm,

Cortex-M support is not available in Arm NN at the moment. For running neural networks on Cortex-M you can use CMSIS-NN directly: https://github.com/ARM-software/CMSIS_5.

Currently, the hardware can be selected by specifying compute device, e.g. CpuAcc, GpuAcc.
Please follow the instructions: https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/deploying-a-tensorflow-mnist-model-on-arm-nn/optimize-and-load-onto-compute-device.
We are working towards having the compute device automatically selected.

The hardware platforms we've verified are but not limited to:
Cortex-A CPUs - A53, A73, A55
Mali GPUs - G71 & G72

I hope this clarifies your query,
Surabhi

Hi Surabhi
Thanks, for the reponse.
By hardware platforms, I meant the suggested h/w reference platforms on which the ARM NN might have been already tested (like Raspberry Pi for ARM Cortex-A etc.).
Could you please suggest few h/w reference platforms/boards for Cortex-A and Mali GPUs.
Kamesh

Hi @uu-kameshm, we have verified ArmNN on Mate9, Mate9-pro, Mate10, Samsung Galaxy S9 and Hikey960. We don't test it on Raspberry Pi regularly, but other people have used it without problems.
Surabhi

Hi @uu-kameshm I hope that answered your question. Please get back in touch if you need more information.

Hi Surabhi
Thanks for the information. I have few other follow up queries.
1.For the above h/w platforms, could you please mention on which ones ARM NN for Cortex-A CPUs  was tested and on which ones Mali GPUs was tested specifically.
2.I understand that the OS on the phones could be Android, but could you please let me know which OS was used for Hikey960?
Thank you
Kamesh

Hi Kamesh,
Here are the answers to your questions:

Cortex-A CPUs: A53, A73, A55
Mali GPUs: G71 & G72

The OS we test on the Hikey960 are:

Debian Linux 9.0
Android 8.1

Let us know if you require any more information.
Thanks.
Telmo

Hi @dizcza, ArmNN doesn't have any support for CMSIS-NN or Cortex-M at this time.
We're doing some investigations into how inference on Cortex-M can be supported with higher-level tools, and in the meantime you can use CMSIS-NN directly.
All the best,
Matthew