LuisDialog trying to match PromptDialog options to intent instead of calling resume method

I've run into what I think might be a bug with the LuisDialog and the PromptDialog.
In LUIS, I have a LastActionForUser intent which is setup to match firstname/lastname pairs, ie "when did craig last perform an action".
My dataset contains multiple "craig" users, so I show a PromptDialog to resolve the correct craig, which results in JSON with a text property "craig 1" or "craig 2".
The LuisDialog then seems to be trying to match this to an intent instead of the resume method being called so I can display data for the correct craig.
I'm not sure if this is a bug, expected behaviour or a lack of understanding on my part...
Using v3.0.1 in C#

Is it possible for you to post code snippets?

If it helps, below is how I am using a choice prompt in a LUIS dialog.
In your intent method you call your dialog as shown below. You need to make sure you use content.call so you pass off to a child dialog.
var dialog = new PromptDialog.PromptChoice<string>(new string[] { "Choice 1", "Choice 2" }, "Which one would you like?", "Sorry, that wans't a valid option", 3);
context.Call(dialog, AfterUserHasChosenAsync);

Then, you can get the result of the prompt like so in the method below.
private async Task AfterUserHasChosenAsync(IDialogContext context, IAwaitable<string> result)
        {
            string userChoice = await result;
            await context.PostAsync("You chose: " + userChoice);
            context.Wait(MessageReceived);
        }

Hope that helps.

Thanks for the suggestion, that's basically what I'm doing.
My MessagesController looks like this:
internal static IDialog<object> MakeRoot()
        {
            return Chain.From(() => new MemberDialog());
        }

        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
        {
            // check if activity is of type message
            if (activity != null && activity.GetActivityType() == ActivityTypes.Message)
            {
                await Conversation.SendAsync(activity, MakeRoot);
            }
            else
            {
                HandleSystemMessage(activity);
            }
            return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
        }

I then have my MemberDialog with a simple intent:
[LuisIntent("FindMember")]
        public async Task FindMember(IDialogContext context, LuisResult result)
        {
            EntityRecommendation firstNameRecommendation;
            EntityRecommendation lastNameRecommendation;

            var foundFirstName = result.TryFindEntity(EntityConstants.FirstName, out firstNameRecommendation);
            var foundLastName = result.TryFindEntity(EntityConstants.LastName, out lastNameRecommendation);

            if (foundFirstName || foundLastName)
            {
                //search DB, discover multiple, need to work out which one
                var members = _QueryDB(foundFirstName, foundLastName);

                PromptDialog.Choice(context,
                        _ResolveMemberResult,
                        members.Select(s => $"{s.FirstName} {s.LastName}"),
                        "Which one?");
            }
        }

private async Task _ResolveMemberResult(IDialogContext context, IAwaitable<string> memberId)
        {
            await memberId;

            await context.PostAsync("Member found!");

            context.Wait(MessageReceived);
        }

I don't seem to be able to get the _ResolveMemberResult method to be invoked, instead the response ends up at my None intent.
 [LuisIntent("")]
        public async Task None(IDialogContext context, LuisResult result)
        {
            string message = $"Sorry I did not understand: " + string.Join(", ", result.Intents.Select(i => i.Intent));
            await context.PostAsync(message);
            context.Wait(MessageReceived);
        }

The pizza example works as expected and I modeled my code based on it which is why I thought maybe it was something to do with the LUIS matching?

Try replacing
            if (foundFirstName || foundLastName)
            {
                //search DB, discover multiple, need to work out which one
                var members = _QueryDB(foundFirstName, foundLastName);

                PromptDialog.Choice(context,
                        _ResolveMemberResult,
                        members.Select(s => $"{s.FirstName} {s.LastName}"),
                        "Which one?");
            }

with something like this
            if (foundFirstName || foundLastName)
            {
                //search DB, discover multiple, need to work out which one
                var members = _QueryDB(foundFirstName, foundLastName);
var dialog = PromptDialog.Choice<string>(members.Select(s => $"{s.FirstName} {s.LastName}"), "Which one?", "Sorry, not a valid option, try again", 3);
context.call(dialog, _ResolveMemberResult);
}

The above will create a prompt choice dialog. The first param is your list of options for the user to pick from. The second is the prompt text.  The third is the text to display is the user doesn't pick a valid option and finally the forth is the number of times we should retry taking the choice from the user before failing out.
Once the dialog has been created the context.call adds it as a child dialog and this should ensure that when the user responds they are routed correctly to _ResolveMemberResult.
Let me know if that gets your any further.

Unfortunately that doesn't get me any further :/
Internally, the static method is calling context.Call with the dialog/resume method (see PromptDialog.cs) so it's basically doing the same thing as the code I posted, minus one layer of abstraction.

@craigomatic are there any thrown exceptions?  You may want to turn on "break on thrown exceptions" or look in your output window.

Ahhh, yes there is an interesting exception in there!
In Microsoft.Bot.Builder.Internals.Fibers.FormatterStore<T> Save method:

Type 'Framework.Cloud.Storage.MemberRepository' in Assembly Framework.Cloud, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

My dialog has some instance variables that access Azure Table Storage using the repository pattern, which aren't serializable.
Do the instance variables really need to be serializable?
In my case they are created in the constructor, so will be recreated when deserialized

There are a few options:

don't store that dependency so it won't be serialized (probably not helpful)
use the reflection serialization surrogate (may not work and risks serializing too much)
resolve the dependency through autofac and FiberModule.Key_DoNotSerialize (cleanest solution)
https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Fibers/FiberModule.cs#L59
Use [NonSerialized] and [OnDeserialized] attributes to restore the dependency on deserialization (simplest solution)
https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute(v=vs.110).aspx

I'm going to close this issue, but feel free to open a new issue for further discussions.

Thanks Will, I forgot to respond earlier, your suggestions were helpful and solved the problem for me :)


Macos memory consumption issue

Describe the bug

When using the latest eframe, a very abnormal memory usage issue happens.
Resizes the main window can affect the program memory consumption in macos
When you maximize the window, it will take about 160MB.
When you shrink the size to 100 * 100, it will only take about 30-40MB.
To Reproduce
Steps to reproduce the behavior:

Create a hello world app by using only eframe
cargo run -r
Open activity monitor in macos
Resize your window to maximium
Check the hello world program in activity monitor, let's assume the memory usage is A.
Resize your window to about 100 * 100
Check the hello world program in activity monitor, let's assume the memory usage is B.
You will find out that A is way bigger than B.

Desktop (please complete the following information):

OS: MacOS 12.5.1 M2 chip

Is this real memory consumption or perhaps some artifact of mmap() usage?

@adamierymenko it seems to be a graphic memory usage, macos with integrated graphic card will count the cpu memory and gpu memory together in activity monitor.


Remove unused import and commented out code

maybe leave the commented out code incase remove useful code.

Maybe we can remove the code that is written by ourselves and make sure they are useless like some CSS or log.


CI: run tests on pull request

Tests and checks shall be run on pull-request.
Pull-request shall be accepted only if all checks run successfully.
Possible checks:

[ ] cargo check
[ ] cargo test
[ ] cargo clippy
[ ] cargo fmt -- --check
[ ] code coverage
[ ] visual regression tests #51
[ ] build ui with mock feature enabled

Added "build ui with mock feature enabled" so issues as #95 are immediately catched


rcl_publish() seems to fail intermittently (with error code 1) and eventually causes a "CORRUPT HEAP" crash on ESP32

Issue template

Hardware description: ESP32
RTOS: arduino
Installation type: github + docker build + platformio
Version or commit hash: humble

Steps to reproduce the issue
I'm running firmware that periodicaly publishes a ROS message:
MyMessage:msg:
string<=150             something
string<=64[<=20]        items
float64[<=20]           levels

Expected behavior
Should work smoothly once the microros components are initialized.
Actual behavior
After publishing a large number of messages, the rcl_publish() API returns error code # 1. This happens intermittently.
After a few such intermittent error codes occur, the following crash occurs (immediately after the last error):
CORRUPT HEAP: Bad head at 0x3ffd40a4. Expected 0xabba1234 got 0x3ffcf264
assert failed: multi_heap_free multi_heap_poisoning.c:253 (head != NULL)

Backtrace:0x40083181:0x3ffdc1d00x4008cc15:0x3ffdc1f0 0x40091f6d:0x3ffdc210 0x40091bb3:0x3ffdc340 0x400837dd:0x3ffdc360 0x40091f9d:0x3ffdc380 0x401092c7:0x3ffdc3a0 0x40109323:0x3ffdc3c0 0x40109357:0x3ffdc3e0 0x4011a6b5:0x3ffdc400 0x401065a7:0x3ffdc420 0x401076e2:0x3ffdc460 0x4016d29d:0x3ffdc4c0 0x400e2062:0x3ffdc510 0x400f6213:0x3ffdc530 0x400f039c:0x3ffdc580 0x400f0530:0x3ffdc620 0x400f5b7e:0x3ffdc640 0x400f3faf:0x3ffdc690 0x400ea679:0x3ffdc700 0x400ea6c3:0x3ffdc740 0x400d3583:0x3ffdc760 0x400d3531:0x3ffdc790
  #0  0x40083181:0x3ffdc1d00 in panic_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c:402

Additional information
My publisher class wrapper is shown below:
        template <class MessageType>
        class Publisher {
        public:
            Publisher(const std::string& topic, rcl_node_t* node, const rosidl_message_type_support_t * type_support)
            : topic(topic), node(node), type_support(type_support) {

                // See: https://micro.ros.org/docs/tutorials/programming_rcl_rclc/pub_sub/
                Serial.printf("Initializing '%s' publisher...", this->topic.c_str());
                RCCHECK(
                        rclc_publisher_init_default(
                                &this->publisher_data,
                                this->node,
                                type_support,
                                topic.c_str()
                        )
                );
                Serial.println("DONE!");
            }

            void publish(const MessageType* const message) {
                RCSOFTCHECK(
                        rcl_publish(                 <====== Error code '1' intermittently returned from here
                                &this->publisher_data,
                                message,
                                NULL
                        )
                );
            }

            virtual ~Publisher() {
                RCSOFTCHECK(
                        rcl_publisher_fini(
                                &this->publisher_data,
                                this->node
                        )
                );
            }

        private:
            std::string                                 topic;
            rcl_node_t*                                 node;
            const rosidl_message_type_support_t*        type_support;
            rcl_publisher_t                             publisher_data;
        };

Where are you initializing const MessageType* const message?

I initialize it on the heap only once (using the default memory conf), and
then cache it for reuse on all subsequent publish invocations using a
shared pointer. There's no new memory allocation done for this message
after the first invocation.
On Thu, Aug 11, 2022, 11:03 PM Pablo Garrido @.***>
wrote:

Where are you initializing const MessageType* const message?
—
Reply to this email directly, view it on GitHub
https://github.com/micro-ROS/micro_ros_arduino/issues/1135#issuecomment-1212758006,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDKA4QL4CV5EZD6L7A6JLVYXSJZANCNFSM56KJNHWQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

But could you please share the code where you are initializing the message memory that is going to be published?

Sure. Here's my message wrapper class:
        const static int BUFFER_LENGTH = 5000;
        template <class MessageType>
        class Message {
        public:
            Message(const rosidl_message_type_support_t * type_support)
            : message(), type_support(type_support) {
                assert(type_support);

                // See: https://micro.ros.org/docs/tutorials/advanced/handling_type_memory/
                assert(BUFFER_LENGTH >= micro_ros_utilities_get_static_size(this->type_support, micro_ros_utilities_memory_conf_default));
                assert(micro_ros_utilities_create_static_message_memory(
                        this->type_support,
                        &this->message, micro_ros_utilities_memory_conf_default, this->message_buffer, BUFFER_LENGTH));
                Serial.println("DONE!");
            }

            virtual ~Message() = default;

            const MessageType* get_data_pointer() const {
                return &this->message;
            }

            const rosidl_message_type_support_t* get_type_support() const {
                return this->type_support;
            }

        private:
            MessageType                              message;
            const rosidl_message_type_support_t*     type_support;
            uint8_t                                  message_buffer[BUFFER_LENGTH];
        };

I initialize an instance of a Message class as below:
                using MyMessageType = my_message_package::msg::MyMessage;
                auto allocated_message = std::shared_ptr<Message<MyMessageType>>(
                        new Message<MyMessageType>(
                             ROSIDL_GET_MSG_TYPE_SUPPORT (my_message_package, msg, MyMessage)
                        )
                );

... and then I use the get_data_pointer() API to retrieve the raw ROS message that rcl_publish() requires.

In order to set data for any Sequence types, I have assertions that ensure the capacity is never crossed, and manage the size and data variables accordingly. For example, to set a string in the message, I use this code:
            assert(message.somestring.capacity >= (value.size() + 1));   // Since we need an extra character for the null character
            strcpy(message.somestring.data, value.c_str());
            message.somestring.size = value.size();

Same goes for other Sequence types.


[Idea]: Cycle Detection in Undirected Graph

Idea Title
Cycle Detection in Undirected Graph
Idea Description
NAME
New Algorithm :  Cycle Detection in Undirected Graph
Given an undirected graph with V vertices and E edges, check whether it contains any cycle or not.
Input:
The number of Vertex and edges
Output:

Cycle exist
Cycle doesnot exist.

Potential Benefits

[X] Improves user experience
[X] Enhances learning
[X] Adds a new feature
[X] Improves code quality
[X] Other

Implementation Suggestions (Optional)
No response

@ajay-dhangar Please assign the issue.


Draft proposal for Server Push messages

This is basically a skeleton proposal of how server push messages could look. Happily, with the design of ASGI as written here they're fairly simple: the application basically just pushes a request to the protocol server, which encodes it appropriately into a PUSH_PROMISE frame and then starts handling the channel for the pushed response as normal. This maps pretty neatly onto the HTTP/2 stream logic as well.
At some point we may need to address whether this is allowed to fail, e.g. because the remote peer doesn't support pushed responses. For now, this is just an idea for how this might look.

I figured that server pushes should always soft-fail if unsupported - the HTTP/2 spec says the client can just drop them, anyway. Of course, it might be nice to communicate to the application that it's not wasting cycles and something is actually getting it; there's a reason I kind of want to have some sort of supports_server_push key, but it might get a bit verbose.
I do like the idea of just re-embedding the Request message, though. The reply channel thing is a little strange, though, not sure I like applications having to invent reply channels.
Maybe say that it should also contain a Response message embedded inside, and then have Server Push Chunks for larger bodies?

I figured that server pushes should always soft-fail if unsupported

Yeah, but what I was unsure on is how this kind of soft-failure is communicated. This actually applies to ASGI more generally: for example, if a TCP connection falls over while the application is sending data, how does the application find that out? Does the channel just get closed? I don't have a strong preference or suggestion here, but whatever you want to do here should be consistent, and we can use that method to notify about the failure of server push.

The reply channel thing is a little strange, though, not sure I like applications having to invent reply channels.

That's fair enough, but I think a new channel does need to get created by something here: that way we keep a convenient isomorphism between HTTP/2 stream and channel. However, you've given me a much better idea:
What if, instead of the application creating the channel, the server did it? Specifically, what if, on receipt of a Server Push message, the application unpackages the Request sent in it and then treats it like a new request just received from the wire: creates the appropriate channels, fills them into the request object, and then sends the now-populated Request message back on the http.request channel? That means an application has to know relatively little about the server push: it 'pushes' a request for the resource, and from then on the application sees that as though it is entirely a real request.
This approach seems kind of neat to me, but I did come up with it, so what do you think?

Well, ASGI in general doesn't have the concept of channel closure or message rejection; everything is sending data into the void with no idea about delivery, which is deliberate, since it keeps things simple and much easier to optimise and load balance. If a protocol server loses a connection, you get sent a message saying it's gone, but you can't just take a channel name and ask an ASGI layer if it's open or not, so it seems the only option is just to let applications send into the void.
Server push is limited to being part of an overall HTTP/2 request, anyway, so it's not like there's a long-running connection to be aware of. It's possible some kind of "channel is open" state could be built in, but that's more state that a channel layer would need to take care of, and I've been trying to avoid that as much as I can.
As for the idea of the protocol server re-injecting the request, that is quite a neat way to do it considering that a server push response should match whatever a server would usually send. My concern is ordering, though; you have to keep all messages tied to the same original request on the one reply channel, as if you spread them over multiple ones, relative ordering isn't guaranteed.
I think the approach you describe would make sense inside Django - if you want to use Server Push, you annotate the response from the view with URLs, and Django runs them through the view framework internally and gets responses - but having that as something ASGI protocol servers would have to implement seems like too much.
Maybe, give each Server Push message its own unique ID - kind of like the reply channel, but only unique within the overall response - and then have Responses and Response Chunks have that optional ID as a key, so the protocol server can tie them with the appropriate initial request (or, if it doesn't care about server push, just drop any messages with that key)

My concern is ordering, though; you have to keep all messages tied to the same original request on the one reply channel, as if you spread them over multiple ones, relative ordering isn't guaranteed.

I don't follow: what's the ordering concern? From a H2 protocol level, the only bit of ordering that matters is when the PUSH_PROMISE frame is emitted, which the proposal satisfies. What ordering are you worried about?

Oh, you're right, for some reason I thought the promise responses had to come before the main one, but the only ordering concern the HTTP2 spec says is promises-before-responses, which makes sense.
In that case, it's quite possible the protocol server could just re-inject requests on the exact same pathway.

@andrewgodwin Would you like to see a draft that proposes that mechanism?

Yes, if you have the time to write it up!

Ok, that's done: how do you feel about the new content?

Yes, I like that a lot. OK if I merge it in?

Fine by me!


fixed bbox scaling adjustment during projection (#2921)

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Fixes #2921
Modification
Multiplies bounding box projected points by the image resizing scale factor.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Support for Next 14+

Hi all - currently this package is pinned on Next < 14, but many other packages in our dependency list require 14+. For now, we have manually overwritten this requirement, but it would be great if this recoil-sync-next's deps could be updated! From our testing, it seems as though next 14.0.4 is fully compatible.

v0.0.6 is out!
It is now available in Next.js@v14.

Since recoil development has stalled, we have developed a new package location-state.
https://www.npmjs.com/package/@location-state/core
This one is also designed to be simpler with a state management library that synchronizes to history location. You can use this package too if you like.


Draw a square building in walkthrough

Drawing buildings is a common task, and buildings are frequently square. This could be a worthwhile addition to the walkthrough.

Yes, I mentioned this in #2699, which adds a special mode for drawing orthogonal things.  I'm going to pick it back up and see if I can land that PR soon-ish.  I agree we need to do a better job of showing users how to draw buildings.


Map from flat datas to structured datas

Hi all,
This is my use case :
class Source
{
    #[MapTo(target: 'Target', groups: ['write'])]
    public string $name;

    public string $street;
    public string $zip;
    public string $city;
    public string $country;
}

class TargetAddress {
    public string $street;
    public string $zip;
    public string $city;
    public string $country;
}

class Target
{
    public string $name;
    public ?TargetAddress $address = null;
}

$target = $automapper->map($source, new Target(), ['groups' => ['write']]);

I have to map the address fields from Source into an object in Target. There is a limitation : the target class can't be modified beause it comes from an external lib.
First I thought to do that :
class Source
{
    #[MapTo(target: 'Target', groups: ['write'])]
    public string $name;

    public string $street;
    public string $zip;
    public string $city;
    public string $country;

    #[MapTo(target: 'Target', property: 'address', groups: ['write'])]
    public function getAddress(): array
    {
        return [
            'street' => $this->street,
            'zip' => $this->zip,
            'city' => $this->city,
            'country' => $this->country,
        ];
    }
}

But I doesn't work, It can convert the array to a new TargetAddress instance.
Then I tried :
class Source
{
    #[MapTo(target: 'Target', groups: ['write'])]
    public string $name;

    public string $street;
    public string $zip;
    public string $city;
    public string $country;

    #[MapTo(target: 'Target', property: 'address', groups: ['write'])]
    public function getAddress(): \stdClass
    {
        return (object)[
            'street' => $this->street,
            'zip' => $this->zip,
            'city' => $this->city,
            'country' => $this->country,
        ];
    }
}

Here the TargetAddress is created, but because of the group, the properties are not mapped.
Is there a way to do that simply ?
Thanks in advance

Hey @dsoriano and thanks for using AutoMapper !
After some tests, you should use the transformer on a class attribute as following:
class Source
{
    #[MapTo(target: Target::class, groups: ['write'])]
    public string $name;

    public string $street;
    public string $zip;
    public string $city;
    public string $country;

    public function getAddress(): TargetAddress
    {
        $targetAddress = new TargetAddress();
        $targetAddress->street = $this->street;
        $targetAddress->zip = $this->zip;
        $targetAddress->city = $this->city;
        $targetAddress->country = $this->country;

        return $targetAddress;
    }
}

To explain a bit: MapTo attributes can only be placed onto properties or onto the class, so in your examples the MapTo attribute on getAddress was being ignored :wink:
You need to make it a class attribute that use the method as transformer so it works well :ok_hand:
This should fix your issue ! Tell me if you have anything else you wanna ask otherwise feel free to close the issue.
Regards,
Baptiste

Hi @Korbeil
Thanks for your answer.
I'm pretty sure that the attribute MapTo on the method is not the problem and works. This code is working well :
class Source
{
    #[MapTo(target: 'Target')]
    public string $name;

    public string $street;
    public string $zip;
    public string $city;
    public string $country;

    #[MapTo(target: 'Target', property: 'address')]
    public function getAddress(): \stdClass
    {
        return (object)[
            'street' => $this->street,
            'zip' => $this->zip,
            'city' => $this->city,
            'country' => $this->country,
        ];
    }
}

class TargetAddress {
    public string $street;
    public string $zip;
    public string $city;
    public string $country;
}

class Target
{
    public string $name;
    public ?TargetAddress $address = null;
}

$automapper = AutoMapper::create();

$source = new Source();
$source->name = 'John Doe';
$source->street = 'Main Street 123';
$source->zip = '12345';
$source->city = 'Springfield';
$source->country = 'USA';

$target = $automapper->map($source, new Target());

The dump :

The problem is coming when I add the serialization group. Event this code doesn't work :
    #[MapTo(target: 'Target', property: 'address', groups: ['write'])]
    public function getAddress(): TargetAddress
    {
        $address = new TargetAddress();
        $address->street = $this->street;
        $address->zip = $this->zip;
        $address->city = $this->city;
        $address->country = $this->country;
        return $address;
    }

Before your suggestion, the only workaround I found is to create another class SourceAddress like this:
class SourceAddress {
    #[MapTo(target: 'TargetAddress', groups: ['write'])]
    public string $street;

    #[MapTo(target: 'TargetAddress', groups: ['write'])]
    public string $zip;

    #[MapTo(target: 'TargetAddress', groups: ['write'])]
    public string $city;

    #[MapTo(target: 'TargetAddress', groups: ['write'])]
    public string $country;
}

And my method getAddress :
    #[MapTo(target: 'Target', property: 'address', groups: ['write'])]
    public function getAddress(): SourceAddress
    {
        $address = new SourceAddress();
        $address->street = $this->street;
        $address->zip = $this->zip;
        $address->city = $this->city;
        $address->country = $this->country;
        return $address;
    }

It seems confirm that this is a serialization group problem. But by using a new SourceAddress class and populate it manually for the mapping, I lost a little bit the benefits of an automapping.
Your code is working well also, but the problem is the transformer must return a TargetAddress class. This is restrictive if I want to use the same transformer for another target, and here again I lots the benefits of automapping if I have to populate a part of the target class manually.
Thank you


test: Add access_codes.create_multiple test

Seam connect now supports common code key on multiple lock types.

👍
maybe a little OOS for this PR but would be nice to add the behavior_when_code_cannot_be_shared flag too at some point

@codetheweb Yes I think new PR for that, but what is the condition we have to create with the sandbox to test for devices that cannot share codes?

Lockly + Salto are incompatible. Or if you call the create_salto_devices scenario factory, a new Salto site will be created for each call and codes cannot be shared  between Salto sites.


missing key length in Mysql.php

The new version throws an error while migrating DB:
column 'machine_name' used in key specification without a key length
The key length has to be defined with TEXT columns
UNIQUE(machine_name(255), attached_to(255)
or something similar.
Configuration
Version: master
PHP version: 5.3.10-1ubuntu3.21
PHP SAPI: apache2handler
OS version: Linux 3.2.0-97-generic-pae
Datenbanktreiber mysql
Database version: 5.5.46-0ubuntu<IP_ADDRESS>
Browser: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0

It's a typo in the schema file, due to copy/paste :P I will fix this in the next commit :)

This should be fixed in 71b96e7

I had this error as well and last commit fixed it. Thanks!


Updated camel-k-runtime version to the latest snapshot

Folks, I am raising this PR to align the current main branch w/ the
development branch of the camel-k-runtime. This a pre work required to
bring support for the resume API to Camel K.
Please don't merge it yet - let's discuss it first

Release Note
NONE

@squakez @oscerd Guys, any thoughts about when it would be appropriate to bump the camel k runtime on this?

We usually bump when we have a staging release

We usually bump when we have a staging release

Aha, thanks! So, I guess it can wait until we release that. Thanks for the heads up.

It should be superseded by #3561

We're moving the runtime to 1.14.0 in #3561 is this still a valid PR or will be supersede by that one?

That's great news. We can close this one.


Concat files utility file

Added samtools support (version 1.3)

I'll need to set up automated builds on docker hub to make these into images, but I'm assuming you can build them yourself now

Right, I'm building them in local for now.


[CS2103T-T12-1] OneShelf

OneShelf is an app designed to help restaurant businesses manage their inventory stocks which translates to higher efficiency and reduces the chances of over-stocking. OneShelf is most compatible with users who are fast-typist.

Codecov Report

Merging #19 into master will decrease coverage by 4.87%.
The diff coverage is 68.30%.

@@             Coverage Diff              @@
##             master      #19      +/-   ##
============================================
- Coverage     72.31%   67.43%   -4.88%
+ Complexity      400      366      -34
============================================
  Files            70       69       -1
  Lines          1228     1216      -12
  Branches        124      119       -5
============================================
- Hits            888      820      -68
- Misses          308      349      +41
- Partials         32       47      +15

Impacted Files
Coverage Δ
Complexity Δ

...n/java/seedu/address/commons/core/GuiSettings.java
69.23% <ø> (ø)
5.00 <0.00> (ø)

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...ain/java/seedu/address/logic/commands/Command.java
100.00% <ø> (ø)
1.00 <0.00> (ø)

.../seedu/address/logic/parser/FindCommandParser.java
100.00% <ø> (ø)
3.00 <0.00> (ø)

.../model/item/exceptions/DuplicateItemException.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)

...s/model/item/exceptions/ItemNotFoundException.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)

.../java/seedu/address/model/util/SampleDataUtil.java
27.27% <0.00%> (+7.27%)
1.00 <0.00> (ø)

src/main/java/seedu/address/ui/CommandBox.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

src/main/java/seedu/address/ui/ItemCard.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)

src/main/java/seedu/address/ui/ItemListPanel.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)

... and 32 more

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 6389d85...5187a4d. Read the comment docs.

Codecov Report

Merging #19 into master will decrease coverage by 4.73%.
The diff coverage is 69.00%.

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


Zip files corrupt?

Hi! thanks for this well built interface!
I've had RPi Cam working time lapses for weeks on a Rpi 3, and am now trying it out on a Zero-W. Everything works just fine, but for one thing:
When I download a time lapse with the 'get Zip' function on the files page, the file downloads as usual, but after download, the file can't be unarchived by Archive Utility (Mac osX El Capitan). (Unable to expand...(Error 2 - No such file or directory).
I am able to expand it (with errors) with 'the Unarchiver', but then only half the files are there. When I check "/var/www/media" Alle files are there, downloading over SMB works fine. Looks like the zip process is interrupted somewhere during download.
I've tried different browsers, and did a fresh install on another SD. Even swapped out the Zero-W
Anyone any insight on what might be happening here?
thanks!

Did some more testing, it appears that zip files containing over 500 jpgs fail, everything under 500 files seems to download ok.. When I unpack and check the corrupt archives, there is no consistent number of files in them on different downloads.
my ulimit 'maxflies' is on 65536. Is there another php/system limitation somewhere?

I'll look into that.  I think I did a test with 2000 files once but that was a long time ago.

I have just done a test downloading a zip with 900 time lapse images init (about 300MByte).
That worked. I could open the archive and could extract images and a quick test showed there were OK. So I don't think there is anything going wrong logically with number of files.
My test was over a wifi connection but was reasonably fast (150 seconds).
It could be that if your zip size is bigger in size or your transfer rate is slower then the browser may be terminating the download due to timeouts rather than the number of files in the zip.
Might be worth opening developer tools in the browser before starting the download. You may get a clearer picture of any errors that way.

Thank you for diving into this!
The chrome Developer console only puts out a warning "Resource interpreted as Document but transferred with MIME type application/zip: "http://camera.local/preview.php" at the beginning of the download. No errors. Is there a more detailed way/tool to check what's going on in those transfers?
Meanwhile, I'm pretty sure (like you said too) the problem isn't related to the number (500) of files. repeated testing with a 450 an 503 file TL shows that both sometimes fail, and sometimes don't, on chrome downloads sometimes stop with "failed - Network error", no errors in the developer console however.
The download over my office wifi is reasonably fast (ca. 2 - 2.5Mb/s). And normally pretty stable too. I'll try to set up a dedicated wifi or set up the Zero-W as an access point to rule out my office wifi.
The Zero-W is connected to a PiJuice HAT. I will test without the HAT, just to rule out that the PiJuice is messing with the wifi signal.

So, I finally had he chance to do some more testing.
I've tried 2 different Zero-W's from different suppliers, 3 different SD cards, with fresh installs. Running the Zero over a dedicated Wifi, and running the Zero as an AP. Powered from a power adapter and via the PiJuice.
Downloading kicks off with 2 -2.4Mb/s and then fails without warning. Presenting an incomplete Zip file in my Downloads folder. Downloads above 250Mb Fail 90% of the time. For 500+ Mb files downloading stops around 300Mb. And fails 99%.. I've tested on Windows and on Mac, on Edge, Safari, Chrome, and FireFox...
Today I took out the card with the latest install and a video-recording of 1,5Gb, popped it into my Raspberry Pi 3 Model B V1.2.... downloaded the full 1,5 without fail with 2.4Mb/s throughout
Except for price, availability and size circumstances there's not a big issue to create the camera's I'm making around the Pi 3. But it's still bugging me why the Zero fails at this task...

Have had the same issue with the web interface get zip option.
I was able to copy out all the images using scp. While not ssh'd into the RPi:
scp -r pi@raspberrypi:/var/www/html/media/*.jpg <location on machine>
It'll SSH authenticate you and then just start copying.

Is that over wifi? I have tried this over my wifi and it is OK but some users with potentially intermittent wifi can suffer from problems with large downloads. Using scp as you have done is transferring smaller files one at a time.
As suggested in an earlier post it is worth opening the network tab in developer tools in the browser to see in more detail what is going on.


fio.fee Set fee vote -- when the number of fees voted is 70 fees,  RAM usage exceeded error  for BP accounts not in the schedule

when the number of fees voted on gets to being 70 fees, accounts that are not in the BP schedule experience a ram usage error and the vote fails to process. The work around is to split the votes into 2 tx and submit separately.
ram_usage_exceeded: Account using more than allotted RAM usage
account account name has insufficient ram; needs 36568 bytes has 32768 bytes
{"account":"accountname","needs":36568,"available":32768}

we should consider to add logic into the voting action to check that the size is not greater than this number, 32768 this number is enforced in the FIO core as the max ram usable for a tx..

a spike might be to look at all fio actions, find the ones that can get larger than this (no limits on included elements) and add appropriate checks..

Tracked as FIP-10 under development: https://github.com/fioprotocol/fips/blob/master/fip-0010.md
Closing


Support for scalar inputs

Right now running a session on a model that has a scalar input (0 dimension array) fails. I think these are rare, but one example is the silero-vad ONNX model which takes sample rate as a scalar input. Here's a minimum reproducible example:
use std::sync::Arc;

use ndarray::{arr0, Array};
use ort::{
    tensor::{DynOrtTensor, FromArray, InputTensor, OrtOwnedTensor},
    Environment, ExecutionProvider, GraphOptimizationLevel, OrtResult, SessionBuilder,
};

fn main() -> OrtResult<()> {
    let environment = Arc::new(
        Environment::builder()
            .with_name("silero-vad")
            .with_execution_providers([ExecutionProvider::cpu()])
            .build()?,
    );

    let session = SessionBuilder::new(&environment)?
        .with_optimization_level(GraphOptimizationLevel::Level1)?
        .with_intra_threads(1)?
        .with_model_from_file("./silero-vad.onnx")?;
    let inputs = vec![
        InputTensor::from_array(Array::<f32, _>::zeros([1, 512]).into_dyn()),
        // 0-dim input //
        InputTensor::from_array(arr0::<i64>(16000).into_dyn()),
        InputTensor::from_array(Array::<f32, _>::zeros([2, 1, 64]).into_dyn()),
        InputTensor::from_array(Array::<f32, _>::zeros([2, 1, 64]).into_dyn()),
    ];

    let result: Vec<DynOrtTensor<ndarray::Dim<ndarray::IxDynImpl>>> = session.run(inputs).unwrap();
    let vad: OrtOwnedTensor<f32, _> = result[0].try_extract().unwrap();
    println!("VAD: {:?}", vad);

    Ok(())
}

Running this will result in a runtime error:
thread 'main' panicked at 'assertion failed: `(left != right)`
  left: `0`,
 right: `0`', /home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/ort-1.13.3/src/session.rs:627:5

By removing the the dimension assertion at that line it will run correctly
VAD: OrtOwnedTensor { data: TensorPtr { ptr: TensorPointerHolder { tensor_ptr: 0x55c22ac452d0 }, array_view: [[0.041475803]], shape=[1, 1], strides=[1, 1], layout=CFcf (0xf), dynamic ndim=2 } }

I'm not really sure what other effects removing that assertion would have here, but I'm happy to open a PR
https://github.com/pykeio/ort/blob/e4376dc97a3e5282cd74c139d1fa069730521720/src/session.rs#L624-L632

Yes, removing the assertion is fine. Not sure why it was there to begin with 😅

Great, thank you!


Implement 'LCS' command

Getting started with Keva
Knowledge requirements

We use Java (JDK 1.8 or Java 8 Standard Edition) here at Keva, so you should be familiar with Java
Only Java core knowledge is required (libraries/framework knowledge is not required), you can go through tutorials here
Build tool we're using: Gradle (guide with examples)
Check out Keva IoC which we are using as an IoC framework in Keva

Build requirements

JDK 8
Consider using Jabba for convenient installation of JDK.
Unix environment (Mac/Linux) is prefered

To install and work on Keva locally:
git clone git@github.com:keva-dev/keva.git
cd keva
./gradlew dependencies

Run:
./gradlew :app:run

Build:
./gradlew :app:build

Read more at Developer Guide (and coding convention) for Keva
Read the LCS specs
Read the command specs at Redis LCS Command
(Problem behind: Longest Common Subsequence)
Understand the 'command' process flow
Kindly read the implemented command's Pull Request #78 or #79 to understand the code workflow.
Implement
How to contribute to a project on Github
Please note that we'll need to add tests for the implemented code.
To run test:
./gradlew test

Support
If you have any questions, please feel free to comment on this issue
Also if you need me to pair programming with (1-on-1 guide), please reach me on Keva's Slack channel

世の中に一体誰がredisでこのコマンドを実行するのか？！

世の中に一体誰がredisでこのコマンドを実行するのか？！

Will you be able to handle this @yampml ?

actually it's done, just need to do some refractoring :|

actually it's done, just need to do some refactoring :|

Cool, just push and open a draft PR, so I can help on refactoring

nah, still need to handle input param if else :'(

ah, which version of Redis syntax should we follow?
< 6.2: STRALGO LCS KEYS <key1> <key2> [LEN] [IDX] [MINMATCHLEN len] [WITHMATCHLEN]
7.0: LCS key1 key2 [LEN] [IDX] [MINMATCHLEN len] [WITHMATCHLEN]

ah, which version of Redis syntax should we follow? < 6.2: STRALGO LCS KEYS <key1> <key2> [LEN] [IDX] [MINMATCHLEN len] [WITHMATCHLEN] 7.0: LCS key1 key2 [LEN] [IDX] [MINMATCHLEN len] [WITHMATCHLEN] I prefer 7 :|

You can choose anything/specs you want, we'll review it later


Suitable grub update method

** **
Use UEFI to start, the default grub.cfg is in '/boot/efi/efi/$ID/',
add a judgment to select the appropriate update method.
** **

** **
This modification applies to redhat and it's modified version.
** **

Signed-off-by: 弱弱的胖橘猫丷<EMAIL_ADDRESS>

Thank you, @gesangtome !


crack hammer not crafting

trying to craft iron crack hammer, with correct ingredients and nothing shows up when I hit the Plus key to craft the item on the latest version of the mod from today

Hey what ModLoader you are using and what do you mean by pressing the Plus Key? Like the Key from EMI/JEI/REI?

Fabric, on the plus key just the one with JEI to create the item once all the ingredients are loaded into the crafting table. Using about 80 other mods as well. must be an incompatibility between different mods then

just the standard launcher with fabric, will check for logs and send

Ok you don't need to upload your Logs, i was able to reproduce the Bug with only JEI and Resource Cracker installed

New Version will be available in 10 to 15 min


backup GitHub data

backup GitHub data #23
backup data, including issues, from our GitHub repos
Motivation

We do not have backups of our existing repos that feel comfortable.

The are multiple options for backup of a repo, exclusive of issues.

Options are much more limited if Issues are required.

But our planning process, including research and conclusions, occurs within Issues.

[ ] finish research and Product Summaries

omit candidates that do not store issues

[ ] tentative decision

[ ] set up and activate

Our Requirements

issues: required
retention: long-term
cost: all probably under $200/yr, so we can choose what we need

Product Summaries

cloudback

issues: yes
est cost: $120/yr
retention: select #days; cannot find out what maximim is

Available Solutions that include Issues
cloudback
GitHub Marketplace app Cloudback will backup Issues and their metadata, along with repo content.

Cloudback Backup; click 'Read more ...' for details

backs up "GitHub repository code, issues, labels, comments, and milestones"
pricing

$10/month/10repos
$2/month/repo
14-day free trial for either

Cloudback Terms of Service

downgrade policy; see L. Cancellation and Termination

it appears that downgrading from $10/mo/10repos to $2/mo/repo requires cancellation and restarting at smaller subscription
may get archive of previous content by requesting within 90 days
after 90 days, that content is removed

Rewind Backups for GitHub (formerly Backhub)
new GitHub Marketplace app BackHub

Back up repositories and metadata such as pull requests, issues, milestones and more
Automatic, daily backup snapshots for the last 30 days
Restore repositories and metadata to GitHub in a few clicks
$14/mo; up to 10 repos

gitprotect.io
DIY Options

rodw/backup-github.sh

looks like a good bash script; would not expect it to run out-of-the-box

see comments, especially regarding personal repos
initial commit in 2012; 6 subsequent revisions mostly incorporated as comments

does not include closed issues

to find closed issues, use IssueEvents; see Github API: Finding all of the issues closed by a user

clockfort GitHub-Backup (169 stars)

--issues option available
requires PyGitHub (4.3k stars), with commitment to maintain Python installation

Haskell github-backup

Haskell is a language; installation requires that language's platform

Git backups, and no, it's not just about pushing (simple approach; does not address GitHub Issues)

Conclusion

cloudback, at least for now

DIY Options all would take some?!? significant amount of time
we need to back up the older repos before we start taking stuff from them

Did you have a chance to check https://github.com/marketplace/gitprotect-io? With your own storage on S3 you could have an unlimited backup option. Happy to answer other questions.


Runelite not loading

The launcher stucks at 0% and turns off,nothing helps for it to work.

would like to play on the runelite...

Duplicate of https://github.com/runelite/launcher/issues/18


feat: add possibility to route requests to sidecar container

Description
This PR changes the Service such that it allows to route requests to an arbitrary port. This is not a breaking change.

@pierluigilenoci since you are the most active committer of this repo, may we kindly ask you if you could please take a look? Although quite simple, this fix would be very beneficial for us 🙂 thank you so much in advance!

@edorizzardi Please update the message for ArtifactHub and rebase the PR from the main branch. 🙏🏻 👍🏻

@pierluigilenoci Updated minor version. Plus I added the parameter in the list, and added a small paragraph on how to use my changes.


[feature request]

hello could add split tunneling to the app to be able to choose which apps will use Mysterium VPN
and which apps will use my local network?
or they could recommend a third-party app that does this split tunneling process to be able to choose which apps will use Mysterium VPN

Duplicate of: https://github.com/mysteriumnetwork/mysterium-vpn-desktop/issues/401


[YAML] - Kafka write and RAW format

addresses #28664

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

This PR completes the write Kafka part as well as the RAW feature.
I ran a quick test using DF to validate that everything works as expected (in addition of course to the unit tests). It works fine.

This is the YAML config I've used (writing here for documenting purposes):
pipeline:
  transforms:
    - type: ReadFromKafka
      config:
        topic: input_topic
        format: RAW
        bootstrap_servers: <kafka_bootstrap_servers>
    - type: WriteToKafka
      config:
        topic: output_topic
        format: RAW
        bootstrap_servers: <kafka_bootstrap_servers>
      input: ReadFromKafka.output

Run Python_Coverage PreCommit

R: @brucearctor

Looks like all tests are passing now.
As for documentation, yeah, I've been putting things in markdown files right in the directory as a start before we're ready to call this stable (which is coming up with 2.52). I've filed https://github.com/apache/beam/issues/29165 which could probably have sub-issues filed.


CARDS-1164 (Smaller form headers on smaller screens) amendment: Moved the title action to the LEFT, next to the title

This positioning of the resource header actions should be compared to what is proposed in #727 and to what is already in dev via #723 , and one of the 3 must be chosen.

Prefer the breadcrumb action to the RIGHT to this one.

Closing in favor of #727, since the RIGHT position of the header actions was voted as better than LEFT.


fix(android): removed deprecated method getPhoneNumber

Description
Fixes #1612
The getPhoneNumber() method has been removed. Because this method uses deprecated getLine1Number function. It is recommended to use alternative methods to get phone numbers from SIM cards.  You can use https://github.com/odemolliens/react-native-sim-cards-manager instead.

Compatibility

OS
Implemented

iOS
❌

Android
✅

Windows
❌

Checklist

[x] I have tested this on a device/simulator for each compatible OS
[x] I added the documentation in README.md
[x] I updated the typings files (privateTypes.ts, types.ts)
[x] I added a sample use of the API (example/App.js)

I didn't remove all TelephonyManager usage because only the getLine1Number method is deprecated.


[QUERY] Improve Azure.Identity docs for in-memory token caching behavior

The links to the API reference docs on the Azure.Identity README are broken here: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md#authenticating-azure-hosted-applications
I would like to use DefaultAzureCredential and ClientSecretCredential in my client app to manually create AAD access tokens to authenticate to my own service. Both DefaultAzureCredential.GetTokenAsync's documentation and ClientSecretCredential.GetTokenAsync's documentation mention that the caller must handle token caching and token refreshing:

You may call this method directly, but you must also handle token caching and token refreshing.

What does that entail?
The SDK guidelines for authentication recommend calling TokenCredential.GetToken() before each service request, however it does not mention needing to cache tokens from credentials. Also, this sample indicates tokens are cached in memory by default. Additionally, the logs outputted when calling GetTokenAsync repeatedly indicates that tokens are indeed cached. If so, how long are these tokens cached for? Do I need to do any additional caching on top of DefaultAzureCredential.GetTokenAsync()'s and ClientSecretCredential.GetTokenAsync()'s default in-memory caching?

Thank you for your feedback.  Tagging and routing to the team members best able to assist.

Hi @loic-sharma -

The links to the API reference docs on the Azure.Identity README are broken here: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md#authenticating-azure-hosted-applications

I tried the 4 credential links in that section and they all seem to work. Which ones were you finding to be broken?

You may call this method directly, but you must also handle token caching and token refreshing.

What does that entail?

We don't provide specific guidance on token caching because it depends on your specific scenario. But, in general, whatever implementation you use to cache would check the cached token for expiration and use the cached token in your service request if it is not expired. If it is, a call to GetToken is required to get a new token and refresh the cache. You would not call GetToken unless your caching strategy determined that a new token is required. Depending on your specific scenario, understanding whether a cached token is valid for the request can be complex. For example, does the request require the same scope(s), claims, or some valid subset of the ones requested for the cached token.

The SDK guidelines for authentication recommend calling TokenCredential.GetToken() before each service request, however it does not mention needing to cache tokens from credentials. Also, this sample indicates tokens are cached in memory by default. Additionally, the logs outputted when calling GetTokenAsync repeatedly indicates that tokens are indeed cached. If so, how long are these tokens cached for? Do I need to do any additional caching on top of DefaultAzureCredential.GetTokenAsync()'s and ClientSecretCredential.GetTokenAsync()'s default in-memory caching?

It's a bit nuanced, but that sample mentioned that "Many credential implementations in the Azure.Identity library have an underlying token cache".
Only TokenCredential implementations that use MSAL in their GetToken implementations cache tokens. In practice, this tends to mean that any of the development time credentials like VisualStudio, VisualStudioCode, Azure CLI, and Azure PowerShell do not cache by default.
So as to whether or not you need to do any additional caching depends on which credential is ultimately selected by the DefaultAzureCredential which is why the general guidance is to not rely on automatic caching.

Thank you for the detailed answer, much appreciated!

The links to the API reference docs on the Azure.Identity README are broken here: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md#authenticating-azure-hosted-applications

I tried the 4 credential links in that section and they all seem to work. Which ones were you finding to be broken?

Weird, the links are working for me as well now. Yesterday these all 404ed for me:

https://docs.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet
https://docs.microsoft.com/en-us/dotnet/api/azure.identity.chainedtokencredential?view=azure-dotnet
https://docs.microsoft.com/en-us/dotnet/api/azure.identity.managedidentitycredential?view=azure-dotnet
https://docs.microsoft.com/en-us/dotnet/api/azure.identity.environmentcredential?view=azure-dotnet

It's a bit nuanced, but that sample mentioned that "Many credential implementations in the Azure.Identity library have an underlying token cache".
Only TokenCredential implementations that use MSAL in their GetToken implementations cache tokens. In practice, this tends to mean that any of the development time credentials like VisualStudio, VisualStudioCode, Azure CLI, and Azure PowerShell do not cache by default.

For the implementations that do cache tokens, do you think it would make sense to update their XML docs to reflect this? The current docs on these implementation appear to contradict the actual implementation: You may call this method directly, but you must also handle token caching and token refreshing


Documentation

Documentation page is not working
(https://xdsoft.net/jodit/docs/)

Could you please look at it? Thank you.

Hello, we are switching to a new version of Docker, and there are problems. Fixed, thanks


Add missing deps

Calling registerLLVMDialectTranslation(), added with ce85ce5, makes
a dep on MLIRTargetLLVMIR mandatory.
With createLowerAffinePass() added as pass as part of db62c35, a
dependency on MLIRAffineToStandard is required.

Eh... actually, I'm not sure about the location of registerLLVMDialectTranslation and MLIRTargetLLVMIR. Shouldn't those be target specific and not always included in the tools?

Eh... actually, I'm not sure about the location of registerLLVMDialectTranslation and MLIRTargetLLVMIR. Shouldn't those be target specific and not always included in the tools?

Wheee gotta love LLVM integrates adding random deps without our review :upside_down_face:

So as of right now, these deps mirror the deps added in Bazel, so I think this PR is correct. Separately, we should take a look at what that actually did... The dependency here is direct: https://github.com/google/iree/blob/39980126755bd0c5717a7c0d77c7366231a123ae/iree/tools/iree-run-mlir-main.cc#L519

No real comment here, but my fault on the createLowerAffinePass().

Yes, I am not happy about adding MLIRTargetLLVMIR. In Bazel world, registerLLVMDialectTranslation() (declared in mlir/Target/LLVMIR.h) belongs to the dep TargetLLVMIR. So I am confident that MLIRTargetLLVMIR is the correct CMake dep. Seems this was introduced with https://github.com/llvm/llvm-project/commit/b77bac0572340d4e5b6095a82e0fcbcc01870645. And yes, I agree we should definitely see if we can untangle this, as it pulls in a lot of translations, see here.

No real comment here, but my fault on the createLowerAffinePass().

Good question! Must have been pulled in somehow when building in-tree. I noticed it when triying to bump the IREE submodule in https://github.com/iml130/iree-template-cpp.


modify.Delete does not allow for first position to be deleted for polylines that are closed

If polyline is open, all works.

If polyline is closed, deleting the first position ("ps0" or pattern[0]) gives an error, while any other index works.

testfile.zip

fixed


Abstract schema resolvers to allow other parsers (Yup, Zod , Superstruct, Joi, etc)

It would be even better if we could use react-hook-form resolvers for that.

I don't know if this is a good idea, actually. Zod feels like a good marriage for now.
But if we are to allow other parsers, we should require the parser to have type inference capabilities. Remix Forms needs to always be type-safe from end to end.


SSH CA support

(Open)SSH supports using a CA to verify servers and clients (not X509 though):
http://www.openssh.com/txt/release-5.4
Having support for this would make a great addition along the way for Lemur.
Details on how to use this:
https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu

@fuero Have you taken a look at https://github.com/Netflix/bless? It's the way we prefer to manage our SSH certificates.

I wasn't aware of that. Sadly, this approach isn't suitable for our needs, we're not using AWS and aren't planning to.
Currently we're deploying our certs with puppet and generate keys and certs manually which is rather annoying.

Interesting, I think you might be able to extend Lemur to accomplish this but we don't currently have a use-case. If you're open to contributing, these docs should help get you started: http://lemur.readthedocs.io/en/latest/developer/index.html. I'd imagine you would want to start with the pending openssl issuer ( #359 ) plugin and go from there.


New Giftquests Bug

Before Reporting

[X] I found no existing issues matching my bug
[x] My issue is not caused by a plugin or theme

Describe the Bug
The new Steam Quests are shown behind the Bar where you can click settings, Deafen and Mute so you can't dismiss them.
Expected Behavior
Not being like that and being right above it
Steps To Reproduce
Open Discord
Pick a theme
Look at it
Operating System
Windows
Discord Version
Stable
BetterDiscord Version
v.1.10.1
Anything else?

This is for the author of the theme you're using to fix. This is not an issue with BD itself.


@geom_col() should actually be @geom_bar() right?

The README.md uses @geom_col(), but usually @geom_col() is for situations where the counts have been precalculated using @group_by() and @summarize().
So the examples in the README should actually be @geom_bar(), right?

Yes


Fedora 31 -> black screen with beta launcher/ fixed image screen with normal launcher

Describe the bug
black screen when the renderer is connected with beta launcher
fixed image screen when the renderer is connected with the normal launcher
System

OS: Fedora
OS Version: 31
Environment: Gnome
Application: AppImage
Application Version: 4.10.41 for beta 4.10.30 for normal

Configuration

The user is in input group ? yes
The environment uses Xorg ? yes
VA API detects H264 ? And H265 ? H264

libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.6.0.pre1)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG4Simple            :	VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    :	VAEntrypointVLD
      <unknown profile>               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD

For future references, the libva-vdpau-driver needed to be installed separately from the vainfo package.
is this GPU too old to handle it?
the linux steam API to render compatible games not compatible with linux seems to work fine. On the other hand the number of lines from VA-API seems a little poor.

./Shadowofficiel/Shadow.AppImage
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en): No such file or directory
Checking for update
Update for version 5.0.289 is not available (latest version: 5.0.289, downgrade is disallowed).

That's the official shadow image app. And I have a fixed image. The keyboard or mouse stream seems to go through since I think I can login to it, but the image doesn't change. It's stays a fixed image at all time...
No clue why is this happening?

try with this: https://gitlab.com/aar642/libva-vdpau-driver

so is the patch still needed?
if yes, I'm sorry but you will to accompany me through the going through because ! don't necessarely get the context. I already have problems to install cuda, probably because I don't see how it fits into the OS architecture so this driver in particular I won't see it either.
So is it a kernel patch? Which means that I should recompile my kernel with it? Or is it just a modprobe thing to activate?


Add boto configuration documentation to README file

Explains how to locally configure boto and links to official documentation.
I asked @allait about it, and both @tombye and @TheDoubleK asked me about it, so there's probably a reason to stick it in the README.

We've run into an issue with @tombye today were the credentials file wasn't used because some AWS-related environment variables were set with a key from another account. Might be worth adding a note about checking env for any boto variables (e.g. AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SECURITY_TOKEN and AWS_PROFILE) and removing them with unset

Might be worth talking about this in the manual also. Do we have a "set up you're DM environemnt" page in the manual? How to do each app, it's dependants (files/data/S3/creds/etc) and so on?
Each app should have something, manual could link to the READMEs. But there should be a place where we talk about the environment broadly and start talking about the AWS depenencies.

@minglis I'll put something into the design manual soon, but is it worth merging this sooner rather than later?

I think this is useful as is.
The manual right now refers to each individual app README for setup instructions, I agree it's worth talking about how we organise this in the future, but it shouldn't block this PR, so :+1:


Support for trial -> production migration

For the moment it's rake tasks to support the migration, but it may be more if needed.

Looks good so far, good luck deploying them :)


how to convert trained C3D model to tensorflow version

Can you share your code about converting sport1m caffe model to its tensorflow version?　I tried to use this code https://github.com/ethereon/caffe-tensorflow, which did not support the video data layer. Thanks. @hx173149 @chuckcho

Hi @jiang2764
I am sorry, the convert code has been used too long time ago and I can not find the code now.


Study options for inja environment customization

Think about options on how to allow the user to add their own callbacks to the inja environment.
While this might not be possible via the main application, the user can still use spore-codegen as a library and write their own application.
This is generalizable for the parser and converter as well.
The library design already allows for this by providing base classes ast_parser, ast_converter and codegen_renderer, so it's just a matter of allowing the user to provide their own.
We could add arguments to run_codegen() where the user can inject their own implementations or inject some other way.

Yes I thought about that, I was thinking of maybe adding a scripting runtime to provide callbacks dynamically. We could definitely change how the CMake executable is built in order to have a library, but I think overriding ast_parser, ast_converter and codegen_renderer has limited use in the end. I think the project can provide standard implementations for these, and if some other project want to build another executable from the library, they'll be able to do so. What do you think?

I've changed the CMake scripts to build an INTERFACE library and linking the binary unto it. https://github.com/sporacid/spore-codegen/pull/31

As for scripting, I thought maybe this would do the job: https://chaiscript.com/index.html

I'm not particularly familiar with scripting so I really need to play around some more before giving an opinion.
I hear as far as integrating with c++, chaiscript is the easiest as it was made specifically for c++, so that could be a good choice.


Correct ID for thunderbird?

On Ubuntu, I get:
me@host:~$ appstreamcli dump thunderbird.desktop
<?xml version="1.0" encoding="utf-8"?>
<component type="desktop">
  <id>thunderbird.desktop</id>
  <name>Thunderbird Mail</name>

So the ID is thunderbird.desktop in Ubuntu but mozilla-thunderbird.desktop in this repository. Isn't the whole point of the ID to refer to the same application under the same ID?

Possibly related to https://bugzilla.mozilla.org/show_bug.cgi?id=1071065 since upstream should give the official ID, correct?

The extra AppData files in fedora-appstream are not actually used anymore (although the extra-appstream content still is) -- the files are removed once upstream is shipping an appdata file, rather than letting packagers reference these files in rpm spec files. The stance we have now is that apps need AppData upstream, or in the distro packages directly.


FIX Add Search engine button does nothing

no search engine added, no dialog produced
might be linked to #8

Can you retry?


Support "-1" TTL in Azure Storage Queue Binding (Non-Expire)

Describe the feature
Azure Storage Queues allow you to enter -1 as the ttl to have the message never expire: https://learn.microsoft.com/en-us/rest/api/storageservices/put-message#uri-parameters
It would be good if the queue binding also accepted this, currently you get:
initialization error occurred for queue-poison-output (bindings.azure.storagequeues/v1): t │
│ tl value must be higher than zero: actual is '-1'"

Release Note

RELEASE NOTE:

Not stale


Providing logger templates

Is your feature request related to a problem? Please describe.
In this commit, logger was introduced to replace logging to console. It is a great move. But what I miss here is where the logs are sent to. They are not in the console any more.
Describe the solution you'd like
I guess there are some logger configuration files not pushed to the repo. Those configurations possibly define a FileHandler to specify the logging path. I understand that the FileHandler may direct to an internal path that should be kept private. But can you provide some templates for such logger configuration files? For example, I have to add a line
logger = logging.getLogger("birdwatch.runner")
logger.setLevel(logging.INFO)
logger.addHandler(logging.FileHandler('logs/birdwatch.runner.log'))  # added

to specify the logging output path for matrix_factorization.py. But I want to avoid adding such lines to every logger module.
Describe alternatives you've considered
N/A
Additional context
N/A

Closed as it's resolved in this commit


No way to escape forward slash in snippet regex

There's no way to escape forward slashes / in the snippet regex syntax.
This makes it impossible to replace/substring paths in snippets.
All of the following fail:
${TM_DIRECTORY/(src/)/$1/}
${TM_DIRECTORY/src[/]/$1/}
${TM_DIRECTORY/(src[/])/$1/}

${TM_DIRECTORY/src\//$1/}
${TM_DIRECTORY/(src\/)/$1/}
${TM_DIRECTORY/src[\/]/$1/}
${TM_DIRECTORY/(src[\/])/$1/}

For example, I am trying to create a snippet which declares a mock for the given file, so I have to strip the leading directory structure (i.e. everything before and including the src folder), as well as __mocks__/.
${TM_DIRECTORY/.+?\/src\/(.+?)\/__mocks__\/.*/$1/}

But this doesn't work, as VSCode just rejects the replacement due to the forward slashes.
I can work around this by doing a dodgy match because I know the structure of the paths will always look in a certain way.
i.e. remove the forward slashes from the regex, and select the slash trailing src using . to match the forward slash.
${TM_DIRECTORY/.+?(src.)(.+?)(__mocks__).*/$2/}

but of course if there's ever a nested folder that has src in it, then it will break the snippet.

${TM_DIRECTORY/src\//$1/} should be the winner, tho keep in mind that the backslash needs an extra backslash to encode it in JSON.

@jrieken that seems to work in the regex section but not in the format section
I want a forward slash in front of the $1 but nothing seems to work. I don't think there is anyway to get this to work, because if I can successfully escape the / it acts as the separator.
if I have
aaa
${TM_SELECTED_TEXT/a/\/$1/g} produces ${TM_SELECTED_TEXT/a///g}
it looks like it is just replacing the text with the literal string as there are too many forward slashes
${TM_SELECTED_TEXT/a/\\/$1/g} produces ${TM_SELECTED_TEXT/a///g}
so it looks like the same issue.

Verified original bug. Opened  #37562 to track @lcruz4's problem

Just to provide another example, I was just trying to deal with the same issue. I'm attempting to take a filename and output a split version with a / forward slash between the first "word" and the rest of the filename. For an actual example, I have a file named ContactCreate.vue so the TM_FILENAME_BASE ends up being ContactCreate. From my snippet ${TM_FILENAME_BASE/(^[A-Z][a-z]+)([A-Z].*$)/${1:/downcase}\\/${2:/downcase}/} I'm expecting, but not getting, a result of contact/create. Obviously I can work around this for now, but thought I simply had the syntax wrong for a while there.


use of k8s.io/gengo/namer for pluralizing CRD names

As changed in #3101, apikey's plural should be apikeys, now k8s.io/gengo/namer supports that, and seems working with k8s 1.8.5 or so. This PR changes the code of mixs crd command to use the same namer.

/assign @andraxylia
/assign @guptasu
cc: @mandarjog

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

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
7b0592fbf894f7652f58bb9d728f7e672392d290
link
/test istio-pilot-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.

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

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
0301d42658a101ae453a7ef1d3388be1f5a12615
link
/test istio-pilot-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.

/hold
A name was changed recently ("apikey", which is in the test case), and I have similar concern on the possible complications on upgrading existing clusters -- I sent a mail to the list for that. Let's discuss there. Let me hold this PR until we reach to the conclusion.

@douglas-reid do we still need this?


Update badges documentation

After removal of badges in crates.io  the documentation should be updated accordingly.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Eh2406 (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

https://github.com/rust-lang/crates.io/issues/2436#issuecomment-620495491 seems to imply that it is not yet deprecated. Is it maybe premature to remove these? FWIW, I don't mind either way, it just seems like this hasn't been set in stone, yet.  AFAIK, lib.rs doesn't show these, but do other registries?

The documentation stated, that these badges would be displayed in crates.io.
But they are not displayed  any more and the cited comment notes, there is not much reason to keep these fields.

ping @rust-lang/crates-io are you OK with removing the CI badges documentation at this time, which will show up in the stable docs in 1.45 (July 16)?

The crates.io team discuss this in our meeting today, and there were no objections to this change and targeting the 1.45 release. I didn't review the GH Actions additions in this PR, but the removal of all badges with the exception of maintenance status looks great. Thanks!

:umbrella: The latest upstream changes (presumably #8727) made this pull request unmergeable. Please resolve the merge conflicts.
Note that reviewers usually do not review pull requests until merge conflicts are resolved! Once you resolve the conflicts, you should change the labels applied by bors to indicate that your PR is ready for review. Post this as a comment to change the labels:
@rustbot modify labels: +S-waiting-on-review -S-waiting-on-author

Looks like the problem with the current changes comes from the fact that there's actually nothing left for Cargo to do with badge attributes in the manifest.
I think we need to either clarify their reason for existence, or just put the in the "deprecated and not used anymore" category. The latter would require changing the code, as well, to raise a warning when the attribute is used.
Anyone knows if there's an issue already open for this?

I think it's fine to wait until there is a decision on how to handle the maintenance status.  That is tracked in https://github.com/rust-lang/crates.io/issues/2437 and https://github.com/rust-lang/crates.io/issues/2438.

I'm going to close this now that #8727 is merged.  The maintenance badge is left in the docs under the anticipation that it may still be used in the future, though it seems unlikely and that may also get removed later.  Thanks for the PR, and sorry about the uncertainty and moving slowly on this.


Would this adapter work?

Hi, I'm looking at picking up this kit instead of the level shifter+USB terminal adapter. Would this serve the same function? Thanks.
https://www.amazon.co.uk/gp/aw/d/B096K7VV1Y/
P. S. I'm about to purchase the Inventor EVA ION PRO WIFI so hopefully I'll be able to report back as to how well it works :)

Nope. Please re-read the readme.
Your adapter provides actual USB (as in the protocol) connectivity but that's not what is used by the dehumidifier.
You will need to buy what is documented in the readme.


Extensions that write commands to a terminal have no way of knowing when the terminal is ready for input

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

VS Code Version:
Version: 1.85.1 (system setup)
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
Date: 2023-12-13T09:49:37.021Z
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
OS Version: Linux  <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Thu Oct 5 21:02:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

I'm encountering this issue while connected to WSL. I filed an issue in an extension's repository (https://github.com/gitkraken/vscode-gitlens/issues/3061) and they pointed me here. Any time I try to do one of their commands that results in a terminal being opened for the first time, the command fails. Subsequent tries succeed. After some experimentation/debugging, I determined that it is because the command is written to the terminal before a prompt has appeared.
From a user's perspective, it seems that the terminal comes up pretty quickly, but apparently it's slow enough to cause this problem. Presumably, either the connection to WSL or something in my .bashrc is taking long enough to make this happen.
Steps to Reproduce:

With setup described above, using GitLens, try to execute a command that causes a dedicated GitLens terminal to appear. This happens when I try to merge a branch or delete a branch.
Notice that output is written to the terminal before the prompt appears, and the command does not execute successfully.

How are you executing a command in the terminal? via terminal sendText?

Yes, the code goes like this:
const terminal = window.createTerminal(extensionTerminalName);
terminal.show(false);
terminal.sendText(text, options?.execute ?? false);

thanks for the info. why do you have terminal.show(false); I imagine it'll work if you use true there?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Support for better-connections?

I was wondering if the Powercord version of ShowConnections will ever support better-connections.
https://github.com/AAGaming00/better-connections

added


Optionally emit type field for JSON serializers

Closes #1121

I get the goal of emitting the type field to have some initial support, but it feels kinda icky to have the types be just part of the gson serializer's giant if tree, and not even enforced when parsing. Is this level of support super essential for you or would you be fine pushing this to a later release to develop further? Cuz like the whole structural/keyed typing hybrid already lol


On user error, redirect with error code instead of error message as query param

When user login fails due to user error, then user is redirected back to login page. Currently, the redirect location contains query param to indicate failure message. Intent of this fix is to change this error message to a http status code

[Current coverage][cc-pull] is 97.22%

Merging [#167][cc-pull] into [master][cc-base-branch] will decrease coverage by <.01%

@@             master       #167   diff @@
==========================================
  Files            36         36
  Lines           939        938     -1
  Methods         918        922     +4
  Messages          0          0
  Branches         21         16     -5
==========================================
- Hits            913        912     -1
  Misses           26         26
  Partials          0          0

Powered by Codecov. Last updated by [84bf6a8...5a47637][cc-compare]
[cc-base-branch]: https://codecov.io/gh/lookout/borderpatrol/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/lookout/borderpatrol/compare/84bf6a835d452a6fe9726ae7da191bb45ea91175...5a476371b1fd2bc2033953a22d9e6f88caeddd0a
[cc-pull]: https://codecov.io/gh/lookout/borderpatrol/pull/167?src=pr


Not supposed to be able to draw a character on top of another like this!

Windows Terminal version
1.21.2911.0
Windows build number
No response
Other Software
Cygwin's echo, merely because it's an easy way to produce ANSI sequences from the command-line
Steps to reproduce
c:\cygwin64\bin\echo.exe -e "❤❤❤❤❤\033[3Dhi"

Expected Behavior
I would not expect the h and the ❤ to both be rendered in the same space like that

Actual Behavior
never seen a character drawn over another like this in my life?

(Possible duplicate of #18143 if they are caused by the same issue)

Yes, they're caused by the same "issue". I'll explain it over there, in the other issue and close this one.


Add basic sanitization for default CsvFileProvider

The current sanitization offered by the default CsvFileProvider does nothing.
Although this may be acceptable in most cases there are some known bad filename chars that we can restrict that cover
99% of the dropwizard user base (windows, unix, linux).
The forward slash '/' is illegal in all three OS and should be at a minimum sanitizied. The forward slash is a common
character in metric names if people are constructing metric names from URIs.

is there a way to re-do the travis ? I ran mvn verify locally with JDK8 and it passes.
Perhaps it was transient.

Just restarted it, more than likely transient, this happens fairly frequently.

@ryantenney  thanks.
Is it transient locally as well? I can see if i can reproduce & file issue

This looks good to me

Let's backport this to 3.2 as well.

sweet first contribution to metrics.
Long time user/fan.
ps: The recent artifact groupid change without changing the actual package names caused us a lot of headache at work due to our large codebase since there were some API compatibility - but love the lib.

Thanks! I understand and regret the trouble that caused. Unfortunately that was the best available option.

Yea no worries - testament to how good the library is the willingness to continue using it even with these minor hiccups.
Curious: Why weren't the package names changed with the groupId / artifactId (same time) ?
There might be some other factors that are clearly unknown to me, but definitely interesting to hear.

Version 4 will be a breaking change, and seeing as metrics has already had 1 package name change I wanted to avoid breaking backwards compatibility again just for some minor bug fixes to v3.


⚠ AGEG website (redirect) has degraded performance

In 5482977, AGEG website (redirect) (https://ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 2159 ms

Resolved: AGEG website (redirect) performance has improved in 0e272f1.


refactor(sln): functional grouping of projects

functional cohesion to ease navigation.
It prevents you from jumping up and down in the solution explorer by placing the tests and the sut more close together. Give it a shot and see if you like it.

The idea for this PR stems from the cohesion theory that functional cohesion is much better than logical cohesion. This is what I nowadays do in projects where I do hexagonal architecture/ports & adapters. I then put the adapters in separate projects and group them into solution folders with the test and integration test projects. It is my experience that there's less jumping around in the solution tree that way since when working on an adapter it makes sense that the tests covering that adapter are nearby.
This same theory also applies to some extend to your project, but I can imagine it for you being less ideal. Like you said, when changing something in the "core" you need to update all "adapters" as well. So no hard feelings when it doesn't work out for you. More then happy that you showed the willingness to give it a shot 🤟🏻

With more modules, this structure may make even more sense. I am currently thinking about minor adjustments. I will prepare a proposal.

You don't need a proposal, you're the maintainer 😎  It would be great if you could cherry-pick my commit and amend it to properly attribute it to me ❤

Right now, I am playing around with different configurations, considering generating Visual Studio Solution files for each module automatically. This has the advantage that we do not need to load and compile all projects. However, we need to keep in mind that refactoring may require loading all projects anyway.

Right now, I am playing around with different configurations, considering generating Visual Studio Solution files for each module automatically. This has the advantage that we do not need to load and compile all projects. However, we need to keep in mind that refactoring may require loading all projects anyway.

Instead of creating solution files per module, you can also create solution filter files. With that you have still a fully maintained solution with all modules in place, and you can load a specific module also...

Right now, I am playing around with different configurations, considering generating Visual Studio Solution files for each module automatically. This has the advantage that we do not need to load and compile all projects. However, we need to keep in mind that refactoring may require loading all projects anyway.

Instead of creating solution files per module, you can also create solution filter files. With that you have still a fully maintained solution with all modules in place, and you can load a specific module also...

Good idea. Maybe we can put them in the module directory? Then devs can open only the module they are interested in.

Good idea. Maybe we can put them in the module directory? Then devs can open only the module they are interested in.

It may be a good idea to collect the set of *.slnf files in a central root folder, such as \filters. instead of scattering them all over the tree.


Dark Mode for the Code Generator App

Clear and concise description of the problem
We can add a dark mode for the Code Generator app that is similar to the PyTorch Ignite docs and that would be helpful for the users as well.
Suggested solution
You can look at https://pytorch-ignite.ai for more information about the Dark mode for the website and the colour scheme that can be used.

Hi
I'm new to the community
I'd love to take on this issue

Hi, I would like to help with this issue
Just to be clear where are we planning to put button on code generator webpage?

Hi, I would like to help with this issue Just to be clear where are we planning to put button on code generator webpage?

Yes, same as on pytorch-ignite.ai site:


Add HTTP client options to receiver integrations

In Cortex we have a use case where we would need to customize the dialer used by the HTTP client in the upstream Prometheus alertmanager. Specifically, we're trying to customise the dialer used by HTTP client used by Alertmanager notifiers (eg. webhook). Unfortunately we can't do it without changing it upstream so, in this PR, I'm proposing to add HTTP options to receveirs New() functions.

Thanks!


Fix a mistake in html that using a wrong unit of font size.

Fix a mistake in HTML that using a wrong unit of the font size.
Proposed Changes

-Fix a mistake in HTML that using a wrong unit of the font size.
Testing

@Anduin2017 Hi Adnduin, this PR is in conflict with master.  Can you resolve the conflict?


Added SET default_transaction_priority examples

Fixes #8462.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/298f42c722ca33fdc0b0f180648fd0c269dce0e5/
Edited pages:

v19.2/set-transaction.md
v19.2/transactions.md
v20.1/set-transaction.md
v20.1/transactions.md
v20.2/set-transaction.md
v20.2/transactions.md

This LGTM cc @nvanbenschoten in case you want to take a look


Memory Manager Wrapping to avoid .dll / .exe alloc/deallocation crashes

We will need some sort of a wrapper for the memory manager so that we can avoid the world collapsing upon us when we decide to allocate/deallocate from different environments.

commit ccc6beb2b8301c8795ce8a9c3ea417cfb9fda1cc implements a memory manager wrapper


log files getting bigger and bigger

Hi,
My log files are increasing a lot. I see with some friends of mine that they have a log /var/log/ with less than 50MB, however, this is what I receive when I use the commando to see the size of folder:
admin@raspberrypi:/var/log $ sudo du -h /var/log/
60K     /var/log/apt
36K     /var/log/cups
4.0K    /var/log/private
72K     /var/log/nginx
786M    /var/log/

When I look inside of the folder that is given as a return:
total 804740
drwxr-xr-x  6 root root      4096 Aug 19 00:00 .
drwxr-xr-x 12 root root      4096 Jun 24 08:43 ..
drwxr-xr-x  2 root root      4096 Aug  9 20:00 apt
-rw-r-----  1 root adm   16332948 Aug 21 23:59 auth.log
-rw-r-----  1 root adm  320325508 Aug 21 16:45 auth.log.1
-rw-r-----  1 root adm    4522135 Aug 14 22:04 auth.log.2.gz
-rw-rw----  1 root utmp         0 Aug  2 18:34 btmp
drwxr-x---  2 root lp        4096 Aug 21 00:00 cups
-rw-r-----  1 root adm    9484489 Aug 21 23:59 daemon.log
-rw-r-----  1 root adm  238753434 Aug 21 16:45 daemon.log.1
-rw-r-----  1 root adm    8333494 Aug 14 22:04 daemon.log.2.gz
-rw-r-----  1 root adm      18106 Aug 21 16:47 debug
-rw-r-----  1 root adm       1646 Aug 10 20:51 debug.1
-rw-r--r--  1 root root         0 Aug  9 20:00 dpkg.log
-rw-r--r--  1 root root      1028 Aug  8 23:20 dpkg.log.1
-rw-r-----  1 root adm      22083 Aug 21 16:47 fail2ban.log
-rw-r-----  1 root adm       2099 Aug 10 20:51 fail2ban.log.1
-rw-r-----  1 root adm   17343442 Aug 21 23:59 kern.log
-rw-rw-r--  1 root utmp    298368 Aug 21 17:14 lastlog
-rw-r-----  1 root adm    6560572 Aug 21 23:59 messages
-rw-r-----  1 root adm    3583193 Aug 14 22:04 messages.1
drwxr-xr-x  2 root root      4096 Aug 20 00:00 nginx
drwx------  2 root root      4096 Aug  2 18:34 private
-rw-r-----  1 root adm    9784538 Aug 21 23:59 syslog
-rw-r-----  1 root adm  177952368 Aug 21 16:45 syslog.1
-rw-r-----  1 root adm    1022690 Aug 16 20:11 syslog.2.gz
-rw-r-----  1 root adm    6197592 Aug 21 23:59 ufw.log
-rw-r-----  1 root adm    3548985 Aug 14 22:04 ufw.log.1
-rw-r-----  1 root adm      11561 Aug 21 16:47 user.log
-rw-r-----  1 root adm        232 Aug 10 20:51 user.log.1
-rw-rw-r--  1 root utmp    116000 Aug 21 17:14 wtmp

When I open the auth.log, it keep spamming the same lines:
admin@raspberrypi:/var/log $ sudo tail -f auth.log
Aug 22 00:00:11 raspberrypi sudo: pam_unix(sudo:session): session opened for user bitcoin by pi(uid=0)
Aug 22 00:00:11 raspberrypi sudo: pam_unix(sudo:session): session closed for user bitcoin
Aug 22 00:00:11 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=bitcoin ; COMMAND=/usr/local/bin/lncli --macaroonpath=/home/bitcoin/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon --tlscertpath=/home/bitcoin/.lnd/tls.cert feereport
Aug 22 00:00:11 raspberrypi sudo: pam_unix(sudo:session): session opened for user bitcoin by pi(uid=0)
Aug 22 00:00:11 raspberrypi sudo: pam_unix(sudo:session): session closed for user bitcoin
Aug 22 00:00:17 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/ls /var/cache/raspiblitz/info.json
Aug 22 00:00:17 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:17 raspberrypi sudo: pam_unix(sudo:session): session closed for user root
Aug 22 00:00:21 raspberrypi sudo:    admin : TTY=pts/0 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/tail -f auth.log
Aug 22 00:00:21 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by admin(uid=0)
Aug 22 00:00:22 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/home/admin/config.scripts/internet.sh status
Aug 22 00:00:22 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:22 raspberrypi sudo: pam_unix(sudo:session): session closed for user root
Aug 22 00:00:22 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/ls /home/admin/recover.flag
Aug 22 00:00:22 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:22 raspberrypi sudo: pam_unix(sudo:session): session closed for user root
Aug 22 00:00:22 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=bitcoin ; COMMAND=/usr/local/bin/lncli --chain=bitcoin --network=mainnet getinfo
Aug 22 00:00:22 raspberrypi sudo: pam_unix(sudo:session): session opened for user bitcoin by pi(uid=0)
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session closed for user bitcoin
Aug 22 00:00:23 raspberrypi sudo:       pi : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/home/admin/config.scripts/blitz.datadrive.sh status
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:23 raspberrypi sudo:     root : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/df
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session closed for user root
Aug 22 00:00:23 raspberrypi sudo:     root : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/btrfs filesystem show
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session closed for user root
Aug 22 00:00:23 raspberrypi sudo:     root : TTY=tty1 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/ls -l /mnt/hdd
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Aug 22 00:00:23 raspberrypi sudo: pam_unix(sudo:session): session closed for user root

The daemon.log gives me that:
admin@raspberrypi:/var/log $ sudo tail -f daemon.log
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 8 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 9 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 10 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 11 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 12 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 13 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 14 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Fetched transaction 15 / 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: New mempool size: 1210 Change: 15
Aug 22 00:01:20 raspberrypi node[1695]: Aug 22 00:01:20 [1695] DEBUG: Mempool updated in 0.164 seconds
Aug 22 00:01:22 raspberrypi node[1695]: Aug 22 00:01:22 [1695] DEBUG: Updating mempool
Aug 22 00:01:22 raspberrypi node[1695]: Aug 22 00:01:22 [1695] DEBUG: Fetched transaction 1 / 2
Aug 22 00:01:22 raspberrypi node[1695]: Aug 22 00:01:22 [1695] DEBUG: Fetched transaction 2 / 2
Aug 22 00:01:22 raspberrypi node[1695]: Aug 22 00:01:22 [1695] DEBUG: New mempool size: 1212 Change: 2
Aug 22 00:01:22 raspberrypi node[1695]: Aug 22 00:01:22 [1695] DEBUG: Mempool updated in 0.031 seconds

I tried to see find a solution but I couldn't find anyone. Does you guys know what is going on?

You can manually delete the older files (wouldn't delete the most recent versions, as that can sometimes cause permission problems when daemons can't re-create them themselves).
The cleaner way would be to tweak the settings in /etc/logrotate.conf, as well as the files in /etc/logrotate.d/ and then do a sudo systemctl restart logrotate.
You'll see lines like weekly and rotate X that determine how often logs are rotated and how may logs are kept.

@frennkie did we lost the changes that keep the log files small (on rotate) automatically?

OK with v1.7.1rc2 there on setup/recovery the /etc/logrotate.confwill be changed to rotate daily, keep 2 weeks of old logs & compress them.