[Discussion] Service Bus - Track 2 - Processor

The intent of this issue is to solicit feedback from the community in advance of the GA of the next major version of the Service Bus library (which will follow several Preview releases).
As a reference, the .NET Azure SDK guidelines can be found here: https://azure.github.io/azure-sdk/dotnet_introduction.html
Terminology:
Track 0 refers to the WindowsAzure.ServiceBus library
Track 1 refers to the Microsoft.Azure.ServiceBus library
Track 2 refers to the new library, Azure.Messaging.ServiceBus, we are working on releasing.
Background
In the previous versions of the Service Bus library there were two models for receiving messages, which we will refer to here as "Push" and "Pull".  In Track 1, pull was used with the Receive method in the MessageReceiver. Push could be used on the QueueClient/SubscriptionClient/MessageReceiver by calling the RegisterMessageHandler/RegisterSessionHandler methods and passing in callbacks.
The push methods provided a few features to make interacting with messages easier:

automatically renew message/session locks
option to automatically complete a message after the callback finishes executing.
option to specify how many concurrent calls to the user callback to use

Processor
In the new version of the Service Bus library, we are offering support for both the push and pull modes of receiving messages. However, instead of intermixing these modes on the same type, we offer a separate dedicated type for the push model, called the ServiceBusProcessor. The same set of features for push-based processing that was available within the Track 1 library will be available in Track 2.
The pull operations are available on the ServiceBusReceiver.
var client = new ServiceBusClient("connectionString");
ServiceBusReceiver receiver = client.GetReceiver("myQueue");
// I can use the receiver to directly receive messages. I will need to
// handle completing the message, and renewing message locks myself.
IList<ServiceBusReceivedMessage> messages = await receiver.ReceiveBatchAsync(maximumMessageCount: 10);

// available processing options set to their defaults
var options = new ServiceBusProcessorOptions
{
    MaxConcurrentCalls = 1,
    AutoComplete = true,
    MaxAutoLockRenewalDuration = TimeSpan.FromMinutes(5),
    ReceiveMode = ReceiveMode.PeekLock,
    PrefetchCount = 0
};
ServiceBusProcessor processor = client.GetProcessor("myQueue", options);

The model of passing in callbacks to a method, has been amended to setting event handlers on the processor.
processor.ProcessMessageAsync += MessageHandler;
processor.ProcessErrorAsync += ExceptionHandler;

async Task MessageHandler(ProcessMessageEventArgs args)
{
   // if the handler returns without causing an exception to be thrown, the processor will
   // automatically complete the received message

  // the message is available within the event args
  ServiceBusReceivedMessage message = args.Message;
  // the settlement methods are also available within the event args
  // for instance, if I wanted to deadletter this message for some reason, I would do so like this
  await args.DeadLetterAsync(message);
}

// the exception handler would be triggered if an exception is thrown at any point while receiving
// and processing a message. This includes if the user message handler throws an exception.
Task ExceptionHandler(ProcessErrorEventArgs eventArgs)
{
  // the error source indicates at which point in the processing the error occurred
  // e.g. Receive/UserCallback/LockRenewal
    string errorSource = eventArgs.ErrorSource;
    Exception ex = eventArgs.Exception;
    string namespace = eventArgs.FullyQualifiedNamespace;
    string entityPath = eventArgs.EntityPath;

    // I can do some application logging with this information
    return Task.CompletedTask;
}

// now that we have registered our event handlers, we can actually start processing
await processor.StartProcessingAsync();

// to stop processing
await processor.StopProcessingAsync();

Session Processor
The configuration used for setting up processing for a session entity is very similar to that shown above for non-session entities.
// available processing options set to their defaults
var options = new ServiceBusProcessorOptions
{
  // the default used for MaxConcurrentCalls is different when getting a session processor
    MaxConcurrentCalls = 8,
    AutoComplete = true,
  // this refers to the session lock when used with a session processor, as opposed to a
  // message lock, as in the case for the regular processor.
    MaxAutoLockRenewalDuration = TimeSpan.FromMinutes(5),
    ReceiveMode = ReceiveMode.PeekLock,
    PrefetchCount = 0
};
// we get back a ServiceBusSessionProcessor as opposed to a ServiceBusProcessor
ServiceBusSessionProcessor processor = client.GetSessionProcessor("myQueue", options);
processor.ProcessMessageAsync += MessageHandler;
processor.ProcessErrorAsync += ExceptionHandler;

// note that the args type used for the message handler is different than
// it is for the regular processor
async Task MessageHandler(ProcessSessionMessageEventArgs args)
{
  // we can perform session operations ...
  var sessionState = Encoding.UTF8.GetBytes("my session state");
  await args.SetSessionStateAsync(sessionState);
 // in addition to the message settlement operations
  await args.DeadLetterAsync(message);
}

// now that we have registered our event handlers, we can actually start processing
await processor.StartProcessingAsync();

// to stop processing
await processor.StopProcessingAsync();

One other difference under the hood is that when using concurrency (MaxConcurrentCalls > 1) with a session processor, we will have separate receiver links for each thread that is processing messages. Doing this allows us to process multiple sessions at the same time as each receiver link would be scoped to a different session. For the regular processor case, we are following the Track 1 pattern of sharing a single receiver link among the multiple threads.

Adding some community members who have recently submitted issues/PRs for Service Bus 😃
/cc @nemakam @SeanFeldman @Einarsson @brandondahler @broloaugh @ankrause @GrimGadget @ShaneCourtrille @Pucmaster @Bnjmn83

@JoshLove-msft dual model was available in both track 0 and 1. Not just 1.

@JoshLove-msft what's other than Mesaage will be available via ProcessMessageEventArgs?

@JoshLove-msft what's other than Mesaage will be available via ProcessMessageEventArgs?

ProcessMessageEventArgs will have the settlement methods that can be used on the message - Complete/abandon/defer/deadletter. The Processor itself doesn't expose the settlement methods as the settlement needs to happen on the link that the message was received on, which in the case of sessions at least, will be different for each thread. It also has the CancellationToken for the Processor. This cancellation token gets cancelled when the user calls StopProcessingAsync.

// the settlement methods are also available within the event args
// for instance, if I wanted to deadletter this message for some reason, I would do so like this
await args.DeadLetterAsync(message);

The settlement is happening via receiver. Period. Do not come up with an unnecessary magic. Expose the receiver via args.

// the settlement methods are also available within the event args
// for instance, if I wanted to deadletter this message for some reason, I would do so like this
await args.DeadLetterAsync(message);

The settlement is happening via receiver. Period. Do not come up with an unnecessary magic. Expose the receiver via args.

The concern with doing this is that it would expose a bunch of other methods that wouldn't make sense for the user, such as Receive/Peek/etc.

ProcessErrorEventArgs exposes Exception (👍) and ErrorSource. What's bothering latter provides? Also, I'd like to know the entity/fqdn that the error occurred on.

ProcessErrorEventArgs exposes Exception (👍) and ErrorSource. What's bothering latter provides? Also, I'd like to know the entity/fqdn that the error occurred on.

Yep, it also has FullyQualifiedNamespace/EntityPath. The ErrorSource indicates where in the processing the error occurred. I will update the sample.

The concern with doing this is that it would expose a bunch of other methods that wouldn't make sense for the user, such as Receive/Peek/etc. One concern was that would a user think they need to call args.Receiver.ReceiveAsync?

The receiver part on the args doesn't have to be a full blown Receiver. interface-segregation principle (ISP) existed long ago Azure SDK principles where engraved.

Yep, it also has FullyQualifiedNamespace/EntityPath. The ErrorSource indicates where in the processing the error occurred. I will update the sample.

In such case, for the future reference, I would suggest to spell it out to prevent my unnecessary clarifications. It will also will help others understand better what's proposed. While everyone is working remotely, telepathy is not going to be a common nothing any time soon.

The concern with doing this is that it would expose a bunch of other methods that wouldn't make sense for the user, such as Receive/Peek/etc. One concern was that would a user think they need to call args.Receiver.ReceiveAsync?

The receiver part on the args doesn't have to be a full blown Receiver. interface-segregation principle (ISP) existed long ago Azure SDK principles where engraved.

This is essentially what we are doing, but just not exposing a Receiver property. What is the benefit of exposing the Receiver here?

This is essentially what we are doing, but just not exposing a Receiver property. What is the benefit of exposing the Receiver here?

Args is your your entry point. It's solely there to provide access to the things the handler/callback can use. On its own it cannot settle anything. If you want to have developers following the service principles, give them the model they'll know - receiver to perform settlements. Otherwise, they might as well use a global receiver to accomplish the task.

This is essentially what we are doing, but just not exposing a Receiver property. What is the benefit of exposing the Receiver here?

Args is your your entry point. It's solely there to provide access to the things the handler/callback can use. On its own it cannot settle anything. If you want to have developers following the service principles, give them the model they'll know - receiver to perform settlements. Otherwise, they might as well use a global receiver to accomplish the task.

Well, it's possible that developers would just use the Processor, in which case they wouldn't really need to know about the Receiver. But I think you raise a fair point.

On the assumption

Well, it's possible that developers would just use the Processor, in which case they wouldn't really need to know about the Receiver. But I think you raise a fair point.

Developers will always start with a receiver and not a processor because of the simplicity. A processor is a higher level concept that comes later in the game, with some knowledge about the service acquired. And at that point the logical connection between the receiver and settlement operations has already been established. C'est la vie.

On the assumption

Well, it's possible that developers would just use the Processor, in which case they wouldn't really need to know about the Receiver. But I think you raise a fair point.

Developers will always start with a receiver and not a processor because of the simplicity. A processor is a higher level concept that comes later in the game, with some knowledge about the service acquired. And at that point the logical connection between the receiver and settlement operations has already been established. C'est la vie.

What are your thoughts on scoping down the available methods on such a hypothetical receiver? The downside to doing this is we have to introduce yet another type, whereas the benefit would be hiding what in all likelihood would be superfluous methods like Receive/Peek. However, I'm thinking if we were to go this route of exposing the Receiver, it might be simpler to just leave it as the normal receiver type.

On the assumption

Well, it's possible that developers would just use the Processor, in which case they wouldn't really need to know about the Receiver. But I think you raise a fair point.

Developers will always start with a receiver and not a processor because of the simplicity. A processor is a higher level concept that comes later in the game, with some knowledge about the service acquired. And at that point the logical connection between the receiver and settlement operations has already been established. C'est la vie.

What are your thoughts on scoping down the available methods on such a hypothetical receiver? The downside to doing this is we have to introduce yet another type, whereas the benefit would be hiding what in all likelihood would be superfluous methods like Receive/Peek. However, I'm thinking if we were to go this route of exposing the Receiver, it might be simpler to just leave it as the normal receiver type.

I do not share the same perspective as the Azure SDK team on the types. If those are required, then introduce them. It doesn't mean sprinkling on left and right, but if they help, the consideration should be their usability rather than the number of new types introduced. It's not a KPI that should be blindly followed.
I'll sum up my thoughts.
Overall, happy with the proposal. Especially about the CancellationToken. The settlement operations should not be on the ProcessMessageEventArgs but rather a receive part of the argument aggregate. Wherever it is the full client or its subset, doesn't matter.

On the assumption

Well, it's possible that developers would just use the Processor, in which case they wouldn't really need to know about the Receiver. But I think you raise a fair point.

Developers will always start with a receiver and not a processor because of the simplicity. A processor is a higher level concept that comes later in the game, with some knowledge about the service acquired. And at that point the logical connection between the receiver and settlement operations has already been established. C'est la vie.

What are your thoughts on scoping down the available methods on such a hypothetical receiver? The downside to doing this is we have to introduce yet another type, whereas the benefit would be hiding what in all likelihood would be superfluous methods like Receive/Peek. However, I'm thinking if we were to go this route of exposing the Receiver, it might be simpler to just leave it as the normal receiver type.

I do not share the same perspective as the Azure SDK team on the types. If those are required, then introduce them. It doesn't mean sprinkling on left and right, but if they help, the consideration should be their usability rather than the number of new types introduced. It's not a KPI that should be blindly followed.
I'll sum up my thoughts.
Overall, happy with the proposal. Especially about the CancellationToken. The settlement operations should not be on the ProcessMessageEventArgs but rather a receive part of the argument aggregate. Wherever it is the full client or its subset, doesn't matter.

As always, thanks for the great feedback. We will take this under consideration.

I'd like to propose having the AutoComplete default be false rather than true. This would diverge from the behavior in Track 1 where it is defaulted to True.

AutoComplete will cause messages to be deleted from the service. This seems like something the user should opt into, rather than just doing it without their explicit consent.
If user sets ReceiveMode to ReceiveAndDelete, it doesn't make sense that AutoComplete = true, as the AutoComplete setting would be ignored. However, it would be weird to throw an exception about a different option, if the user attempts to set to ReceiveAndDelete.
The general .NET guideline of having the default value for a property match the default of its type indicates that the default for bool properties should generally be False.

Given that Trank 2 is a completely new implementation, it can have its default behaviour.
Saying that I'd like to highlight a flaw in the logic outlined above.

AutoComplete will cause messages to be deleted from the service. This seems like something the user should opt into, rather than just doing it without their explicit consent.

This is simply not true. The auto-completion is only happening when the callback is completed successfully and no exception is thrown. That is a contract. This is also a convenience for customers that know they don't have to do anything if no exception is thrown within the callback. Take Azure Functions for example. Similar model. A message is completed only if a Function has completed w/o exception thrown.

The actual settlement of the message is trivial to add in the event handler.

Correct, it's simple to add and adds another line of code when needed.
Do you have any evidence this convention was causing problems?
A convention that is working well is a convention that should not be changed.

Given that Trank 2 is a completely new implementation, it can have its default behaviour.
Saying that I'd like to highlight a flaw in the logic outlined above.

AutoComplete will cause messages to be deleted from the service. This seems like something the user should opt into, rather than just doing it without their explicit consent.

This is simply not true. The auto-completion is only happening when the callback is completed successfully and no exception is thrown. That is a contract. This is also a convenience for customers that know they don't have to do anything if no exception is thrown within the callback. Take Azure Functions for example. Similar model. A message is completed only if a Function has completed w/o exception thrown.

The actual settlement of the message is trivial to add in the event handler.

Correct, it's simple to add and adds another line of code when needed.
Do you have any evidence this convention was causing problems?
A convention that is working well is a convention that should not be changed.

The fact that an exception will prevent the message from being completed doesn't really change the argument. We are still, in general, completing the message behind the scenes when a user hasn't explicitly opted in to this behavior.
Another concern I have with AutoComplete is that it also means users basically shouldn't do any message settlement at all. For instance, if you defer/deadletter/abandon a message in your handler, we would still attempt to autocomplete it and throw an exception. I think this behavior is okay, but it being the default behavior makes me uneasy.

The fact that an exception will prevent the message from being completed doesn't really change the argument. We are still, in general, completing the message behind the scenes when a user hasn't explicitly opted in to this behavior.

I don't follow your logic. The exception doesn't explode and bubbles up. The SDK controls that and invokes user-provided error callback. If there's no exception, the message is automatically completed. I don't understand what does it mean "We are still, in general, completing the message behind the scenes when a user hasn't explicitly opted in to this behavior".

I don't have concrete evidence that this is causing problems, but I don't think we are collecting any data on how often the default value is being changed.
With that being said, I'm open to the possibility that I am just plain wrong on this and we are better off leaving as is.

I am not saying that you're wrong. We all entitled to our opinions. What I'm saying is that an abstraction that worked well for years (Track 0 and 1) should not be changed just because it "feels wrong" w/o some strong evidence. Is there an issue raised in the Track 1 repo to change this behaviour due to its destructive nature? Was there an issue raised with Track 0? Is there an issue with this mondo repo? How many support cases Azure support had that would indicate this abstraction has caused issues? If you can prove that it was at a significant percentage of customers that complained about, I'll agree with the proposed behaviour change. But until then, I'll stay with "if it's not broken, don't fix it".

I don't follow your logic. The exception doesn't explode and bubbles up. The SDK controls that and invokes user-provided error callback. If there's no exception, the message is automatically completed. I don't understand what does it mean "We are still, in general, completing the message behind the scenes when a user hasn't explicitly opted in to this behavior".

I'm saying that we are still automatically completing the message in general. If user code throws an exception, we wouldn't automatically complete, but I wouldn't expect users to intentionally throw an exception in order to stop a message from being completed. If they were doing this, I would think using AutoComplete = false would be a better fit. An exception should therefore occur only under exceptional circumstances. So my point was that AutoComplete=true will still generally delete messages from the service without the user opting in to this behavior.

I am not saying that you're wrong. We all entitled to our opinions. What I'm saying is that an abstraction that worked well for years (Track 0 and 1) should not be changed just because it "feels wrong" w/o some strong evidence. Is there an issue raised in the Track 1 repo to change this behaviour due to its destructive nature? Was there an issue raised with Track 0? Is there an issue with this mondo repo? How many support cases Azure support had that would indicate this abstraction has caused issues? If you can prove that it was at a significant percentage of customers that complained about, I'll agree with the proposed behaviour change. But until then, I'll stay with "if it's not broken, don't fix it".
That's fair. I will do some digging on this. As a hypothetical, if there wasn't a Track 0 or Track 1, would you still prefer the default being True?

I'm saying that we are still automatically completing the message in general. If user code throws an exception, we wouldn't automatically complete, but I wouldn't expect users to intentionally throw an exception in order to stop a message from being completed. If they were doing this, I would think using AutoComplete = false would be a better fit. An exception should therefore occur only under exceptional circumstances. So my point was that AutoComplete=true will still generally delete messages from the service without the user opting in to this behavior.

This is not aligned with the most real-world scenario. A normal flow would demand message completion if the processing does not fail. Otherwise, If there's a deviation such as a need to defer or dead-letter, it's an explicit operation and intentional.

That's fair. I will do some digging on this. As a hypothetical, if there wasn't a Track 0 or Track 1, would you still prefer the default being True? And as usual, thanks for the great input!

I am not using a user callback / handler / processor anymore. It's not providing me with what I need. The model of auto-completion by default and override that if you don't want to is very convenient until complex scenarios need to be handled. For Azure Functions, it requires the change to the host.json and opt into the model of completing the messages. If this was inconvenient, it would be changed long time ago to set autoComplete to false.

Not definitive one way or the other, but I did a search for issues that contain MessageHandlerOptions - The majority of the issues are setting AutoComplete = false in the code snippets.

Of course. When working on a repro code, you want to send a message and repeat the error rather than keep resending messages - I'd do exactly that. The intent was to find issues that explicitly raised about the default behaviour of the handler options, not scan how many times a code snippet has that property set to false 😄
If you have 10 or 20 customers that say it doesn't work for them, are you going to change the default and ignore thousands that didn't raise anything? If this was a bad default, do you think everyone would be silent? Don't think so.

Of course. When working on a repro code, you want to send a message and repeat the error rather than keep resending messages - I'd do exactly that. The intent was to find issues that explicitly raised about the default behaviour of the handler options, not scan how many times a code snippet has that property set to false 😄

I understand, but there were no such issues. Ideally we could rely on how users are using the SDK to drive this decision. If the majority of users were setting AutoComplete to false, I think we could agree that this should be the default value. Alas, we don't have this data, nor do we have issues explicitly calling out the default setting as being problematic.

we don't have this data, nor do we have issues explicitly calling out the default setting as being problematic.

Yep.

Proposal to expose SessionCompleted event - https://github.com/Azure/azure-sdk-for-net/issues/11349

Regarding the StopProcessingAsync() / CancellationToken interplay, does this lay to rest #10071?  Is there a timeout that we'll have to abide by before being forcefully killed off or do we have a reasonable amount of time to finish up and gracefully end our processing (or just finish it up if we're right at the end).
And what is the expected behavior going to be if we raise a OperationCanceledException?  Technically this is not supposed to be an exception which indicates failure but is it safe to assume that if AutoComplete is true this will still be treated as an exception and completion will not occur?

In the new library, StopProcessing will await all ongoing message callbacks. This means they will be allowed to finish no longer how long they take. You will have access to the CancellationToken in the callback event args so that you can cancel early when the processor is being stopped.
If the user callback throws, then the message will not be completed automatically.

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0).
See the migration guide from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus for more details.

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0).
See the migration guide from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus for more details.


EthersEvent not defined (typescript)

I'm trying to convert some javascript that uses the Alchemy SDK into TypeScript. It seems the typescript files in the project are malformed, making the library unusable with TypeScript. When I try to import the module, it fails. (This is 1.0.8)
This is my entire test script, it's one line:
import { initializeAlchemy } from "@alch/alchemy-sdk";
This results in
node_modules/@alch/alchemy-sdk/dist/src/api/alchemy-websocket-provider.d.ts:3:10 - error TS2305: Module '"../internal/internal-types"' has no exported member 'EthersEvent'.

3 import { EthersEvent } from '../internal/internal-types';
           ~~~~~~~~~~~

node_modules/@alch/alchemy-sdk/dist/src/internal/internal-types.d.ts:10:12 - error TS2304: Cannot find name 'EthersEvent'.

10     event: EthersEvent;
              ~~~~~~~~~~~

node_modules/@alch/alchemy-sdk/dist/src/internal/internal-types.d.ts:45:64 - error TS2304: Cannot find name 'SubscriptionEvent'.

45 export declare type WebSocketMessage = SingleOrBatchResponse | SubscriptionEvent;
                                                                  ~~~~~~~~~~~~~~~~~

Found 3 errors.

If I look at the code, it really doesn't have a definition for EthersEvent. I'm not a TypeScript expert nor an Alchemy expert, but I don't see how this code could ever work and I'm not sure what to do to go about fixing it.

@eheimburg Thanks for flagging this and filing an issue. I wasn't able to reproduce the issue in my dummyts-node project, but I can see that the type is not exported. Do you mind uploading your setup to get this error?
It's definitely a bug that we're not exporting EthersEvent, but I also want to catch any other types we're not currently exporting. Thanks!

@eheimburg Thanks! I'm able to repro it. Turns out it's tsc that triggers the error, whereas ts-node is ok. Will investigate

Test.zip
@eheimburg Thanks for your repro! I created a new dist that I'll publish in a subsequent version that fixes the EthersEvent issue. The missing node and AsyncIterable imports can be fixed by running npm install --D @types/node in your root directory, which I've done. The zip file I've opened contains the modifications, and it's able to compile fine for me.

Excellent, thanks! I can confirm the updated-zip version works for me also.

Awesome, will have the fix out with the next release.


Remove device will show a success message when already removed device is selected and removed

Steps

Create a user and enrol a device to that user
Remove the device from dashboard
Select the removed device from dashboard and click on remove device

Issue
It will show a popup that the device was successfully removed.

Labels - Bug, 3.1.0-M6, High


Contribute page - inconsistent capitalization on bulleted content

The article links are capitalized inconsistently. This is total nitpicking.

I think I followed the capitalization that the various articles used here, but I don't really care if we follow that or not.
thoughts @iamjessklein?

Yeah I saw you followed the way that the articles are capped, but I think it would look cleaner if the links were consistent. Either way, super nitpick and not critical.

I agree with @lorin - I'll take this one.

@susanjrobertson ready for your review 👀

Merged and on QA.


[dunfell] Update to 5.14.2

Final release from 5.14 branch.

in dunfell-next, thanks
I've added qtquicktimeline to master branch as well.

Merged in dunfell, thanks;


TestShortcodeTweet accesses network

See https://discuss.gohugo.io/t/hugos-twitter-shortcode-test-accesses-the-actual-internet

Fixed by https://github.com/spf13/hugo/commit/f6d4801ba488e34f898906d3d8b6757dc0f2b13e

@bep, I'm working on a real fix.

And my fix was ... unreal?


request for 1.1.3 release

We use Chart.js and your awesome dragdata plugin for one of our projects.  Issue #56 and chartjs-plugin-dragdata 1.1.3 was a big fix that we needed.
We can't officially use any FOSS code that isn't versioned as a release.  Is there some way I can help create a release for 1.1.3 just like you did for 1.0.2?

Hey there!
Thanks for the ❤! Always glad to hear the plugin is being used 😊
Sorry, I got carried away after closing #56, could have made a release straight away...
I don't follow any actual policy when drafting releases, so I will just make one right away. Is that ok for you or do you need anything to be considered there in particular?

https://github.com/chrispahm/chartjs-plugin-dragdata/releases/tag/v1.1.3

That's great.  Thanks!


Upgrade Gradle to 8.1.1 and simplify the examples

Fix #1637

Closing this one for now, I will send a new PR after the next release


Convert to an installable python package

This isn't a full conversion, but should still work after this restructure.
The motivation here is to try and separate out "things specific to mathlib" from "things other lean projects might want". It also means we don't need to worry about any python file names clashing with builtin modules, as they're now namespaced to lean_doc_gen.
Future ideas intended for later PRs:

Extract the command line parsing from __init__.py into its own file
Convert some shell scripts to python scripts
Extract mathlib config to a config file in the mathlib repo.

Since bors isn't enabled in this repository, if we do decide to merge this we should either squash merge through github, or I should manually do so locally.

What is the story for the *.lean files here?  Are these installed as well?

Since bors isn't enabled in this repository, if we do decide to merge this we should either squash merge through github, or I should manually do so locally.

Yeah sure, I can squash.

What is the story for the *.lean files here? Are these installed as well?

No, not yet - but the python code doesn't use these at all yet.

No, not yet - but the python code doesn't use these at all yet.

Hmm, but is there anything you can do with the python code alone?  Related question: are the CSS/JS files copied as well?  I can't find any relevant changes in the PR.


Occasional random failures for specs of Socket#shutdown

Progress: |============================================================#<Method: BasicSocket#shutdown(*)>
..
 FAIL ruby/spec::spec/library/socket/basicsocket/send_spec.rb#test_0001_passes all specs (2745.12s)
        Expected #<Process::Status: pid 20171 exit 1> to be success?.
        /natalie/test/ruby/ruby_specs_test.rb:35:in `block (4 levels) in <top (required)>'

========|

I've seen this one a few times today (latest one: https://github.com/natalie-lang/natalie/actions/runs/7371334264/job/20058607891?pr=1636). Retrying the test fixes it most times.

#1633 had some changes in these files, and I haven't seen this error since that one is merged. It might have been fixed.

https://github.com/natalie-lang/natalie/actions/runs/7419535872/job/20189242761
It kind of looks like the issue has migrated from shutdown to accept.

I haven't seen these issues in a while now, I'm just going to close this one as "unable to reproduce"


WebQSP-WD dataset request

Hi Daniil
Can you please share your version of the WebQuestions dataset for WikiData i.e. WebQSP-WD, which you used for evaluation ?
Regards
Svitlana

Hi!
Added info on the data set. Please take a look and let me know if you need anything else.

 It should be
https://public.ukp.informatik.tu-darmstadt.de/coling2018-graph-neural-networks-question-answering/WebQSP_WD_v1.zip
Will fix in a second in the readme.


Feature Request: Is there a simple way to limit the zoom with min distance from target?

Description
Details: The pre-calculated max zoom prevents the camera from entering the inside of the mesh of the object, but it still gets too close for comfort with some of my models. I read through this[1] and this[2] but I’m still wondering.
https://stackoverflow.com/questions/56745101/google-model-viewer-how-to-set-max-zoom
https://github.com/GoogleWebComponents/model-viewer/issues/542
Live Demo

https://glitch.com/edit/#!/model-viewer

Browser Affected

[x] Chrome
[ ] Edge
[x] Firefox
[ ] Helios
[ ] IE
[x] Safari

OS

[ ] Android
[ ] iOS
[ ] Linux
[x] MacOS
[x] Windows

Versions

model-viewer: vX.X.X (latest)
three.js: rXX

Hey there, thanks for pointing us to that Stack Overflow :) I hadn't seen that question before yesterday.
I gave an answer there that I'm going to copy here for posterity:

I'm the maintainer of the  project. You aren't crazy; we haven't added the ability to control this yet.
But don't worry! We are planning to add this feature to a release very soon (currently planned for v0.7.0). Please track https://github.com/GoogleWebComponents/model-viewer/issues/458 for progress!

So, #458 is the feature we need to land to support this. In the mean time, it should be possible to lightly adapt the code if you are willing to get your hands dirty. If you go that route, feel free to ask questions about the process on here!


ability to save quick search text and field

Hello Guys,
Does anyone knows how to set up this new Feature "ability to save quick search text and field" on Serenity 3.3.10?
Thanks!

They are new options on getPersistanceFlags, see the guide.


Therealadeel patch 1

<!--
Thank you for contributing to this project! You must fill out the information below before we can review this pull request. By explaining why you're making a change (or linking to a pull request) and what changes you've made, we can triage your pull request to the best possible team for review.
See our CONTRIBUTING.md for information how to contribute.
For changes to content in site policy, see the CONTRIBUTING guide in the site-policy repo.
We cannot accept changes to our translated content right now. See the contributing.md for more information.
Thanks again!
-->
Why:
Closes [issue link]

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for the latest deployment event in your pull request's timeline, then click View deployment).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

AnthonyJiaSides Wikimedia github/doc Anthonysidesaapsnew dogecoin bitcoincore atom electron hackable editor metaverse Sileneceraqpp drivetime_app Hello world microsoft all apps azure micostore apps google cloud apps worspace open js  Jira gitcoin eth coin twith nuts and bolts im the only author in my comapny and contributor and Athony Jia Sides Has not recived one payment for all of my builds and im making it Author 2.0 3.0 4.0 fpr for myself i am the only one that is ti be paid or except payment on the behalf of all my builds or from non profit org is bee a hell of the last 8 years written code and to see these comapmys like Github openjs ands google and microsoft pay others my money or donations is not happening no more and git the entirprise server build yall are putting out u make Sure the the payments come to Anthony Jia Sides and only me MY cxontact email is<EMAIL_ADDRESS>and this goes foir all companys do not release no more of my money to and one in my organation cause i am my own org i dont even know why these organ would even be taking my momey and not paying me.. Anthony Jia Sides the only contributor in my org.. this is law as of May !st 2022 unnder mit ,apache asides law. nuts and bolts.. my direct contact number is<PHONE_NUMBER>7 attacth this to all my builds codes and repo branch


Garbled text displayed in output panel.

VSCode Version: 1.0.0
OS Version: Windows 10 simplified Chinese
code page: 936

Steps to Reproduce:

press F1
input taskc
select Grunt and execute
task output window display gabled text.

I switch the locale to zh-CN and restart, but the same still happened.

I believe it should be caused by the unmatched encoding used in output panel.
Thanks.

Dups: #974 & #3550

I cannot find a solution. which is the correct issue?
Thanks,

There is no solution right now. It is a bug we need to address.


Remove env, bindings, etc. not specified in app manifest

What's the user value of this feature request?
As a user, when I perform cf push with a manifest, I'd like a way for the manifest to be the absolute truth for the application's configuration.
Who is the functionality for?
Humans, CI/CD systems, compliance and auditing folks, anyone wanting configuration as code stored in git, anyone and anything which performs a cf push with a manifest
How often will this functionality be used by the user?
Every cf push or apply-manifest
Who else is affected by the change?
Shouldn't cause a breaking change as long as it's behind a flag like --remove-undeclared or something to that effect.
Is your feature request related to a problem? Please describe.
I feel that since application manifests are declarative, they should be able to describe desired state, not just additive state.
Currently when performing a push or apply-manifest (or cf7 push, v3-zdt-push, etc.), options like env key/values, service bindings, metadata labels/annotations, etc., are additive & won't be removed from the app if they're removed from the manifest:

Apply changes specified in a manifest to the named apps and their underlying processes. These changes are additive and will not modify any unspecified properties or remove any existing environment variables, routes, or services.

This makes it harder to reason about the actual service bindings, labels, etc. that an app is using, since the only way to remove no-longer-desired config is to manually imperatively go remove it with cf unbind-service..., etc.
Describe the solution you'd like
cf push -f manifest.yml --remove-unknown

Basically, if a service binding, env value, metadata value, etc. doesn't exist in the manifest.yml during push, but does exist on the current revision/deployment of the app already deployed, then they should be removed from the app. The manifest should be able to be the absolute source of truth.
Describe alternatives you've considered
Pushing an entirely new instance of the app and using blue/green deployments is an option (e.g., what the autopilot plugin would do) because it creates an entirely new app ID, and thus all new service bindings, labels, env vars, etc... But it also blows away revision history, any metrics history, etc. It entirely defeats the purpose of being able to do revisions and zdt-push and such.
Thoughts?

Hi there, thanks for considering this feature request!
We moved to rolling deployments as an alternative to using the deprecated autopilot plugin and the add-only functionality of rolling deployments wasn't immediately clear to me.
Adding an option to prune unused env vars, routes, etc. would be helpful for keeping our deployments fully automated. It might also be helpful to note this additive-only functionality somewhere in the rolling deployment documentation - if you agree, I'd be happy to put in an issue or PR for the documentation here.
Thanks again!


[Accessibility] Inconvenience when toggling accessibility features with this package

I am a blind developer.
I found that there are a lot of accessibility problems in the image selection interface, which greatly affects the use of the disabled.
Talk back can be opened on Android phones. For details, see:
https://medium.com/flutter-community/a-deep-dive-into-flutters-accessibility-widgets-eb0ef9455bc
Because I can't speak English, I use translation, so the description may not be very accurate. If you have any questions later, please feel free to ask me.
The accessibility of pictures selected by wechat itself is very good. You can compare it.
Now I find the following problems:

Select the picture interface, touch the return button, and there is no label "return".
Each asset item has no label.
When selecting pictures in wechat, the label of each picture is "picture X, Y", "X" is the serial number of the picture, and "Y" is the modification time of the picture.
If it is a video, the label is "video X, Z, Y", in which there is an additional "Z", which is the duration of the video.
The selection check box of each asset item has no label and selected status.
The picture preview interface, the picture in the middle and the return button in the upper left corner have no labels.
In the picture preview interface, the text of the check box and the specific check box are the two focuses, and they should be merged.
You can open talk back to use these questions.
You can compare it with wechat's own, and you can find many of your accessibility problems.
About how to add labels and set the selected status, you can see:
https://flutter.dev/docs/development/accessibility-and-localization/accessibility
I hope these problems can be repaired as soon as possible. It is very important for blind users. Thank you very much!
The version I use is:
wechat_assets_picker: ^6.2.0

Good to hear from you about accessibility requirements and sorry for the inconvenience that this package has brought. That's something that I didn't consider before.
However, I'm lacking time until December since I'm preparing some other stuff that makes me have less time to maintain this package. Once I got more time I'll enrich the accessibility as soon as possible.
Thank you for your feedback and I guarantee you this should be and will be resolved.
cc @yanivshaked if you're interested in this feature.

@AlexV525
thank you very much!
I know a lot about accessibility.
You can contact me if you encounter any problems when you do accessibility
My email address is:
<EMAIL_ADDRESS>Thank you again!

My email address is<EMAIL_ADDRESS>
I found that maybe you're a Chinese developer too, so if that's true, please add me through QQ: 505646850, and we can discuss this.

The full semantics support has been landed. Special thanks to @luomo-pro!


Unify the database configurations for Dropwizard

Currently the MySQL and PostgreSQL configurations are using max 256 connections to the DB.
The jdbi is configured for max 25 connections.
It is possible to have some other missing properties.
As result the configurations should look almost identical.

Added initialSize to PostgreSQL and MySQL. Changed maxConnections to 256 for JDBI.


Change photo for Outreach Program

What are Outreach Programs:
Outreach programs are initiatives organized by SILK Advantage to engage with local communities, support charitable causes, and create positive social change. These programs encompass a wide range of activities, from educational initiatives and mentorship programs to environmental conservation and community development projects. They reflect our dedication to making a positive impact beyond business.
Purpose:
The purpose of this issue is to update the images associated with SILK Advantage's Outreach Programs. Outreach programs are a vital component of our commitment to social impact and community engagement. By changing the images, we aim to better represent the essence and impact of these programs in our franchise guide.
Approach:
To address this issue, we will collaborate with professional photographers and designers experienced in capturing the essence of community engagement and outreach. We'll work closely with program participants, local partners, and beneficiaries to ensure that the images authentically represent the impact and connections fostered through outreach programs.
Outcome:
The outcome of this issue will be a set of updated images that effectively convey the essence and impact of SILK Advantage's Outreach Programs. These images will highlight the meaningful interactions, community collaborations, and positive change brought about by these initiatives. By doing so, we aim to inspire and engage potential franchisees and partners who share our commitment to creating a better world through business.

Asset 1: Link
@SuzyQuant

Asset: 1 Link
@Aini-Bashir

This issue is completed @Alisha-Rashid


The issue with files extension for ABC.dwg (AutoCAD) file

Library version: 0.13.0
OS version: [Android 11]
Device model: [Samsung S10+]
Describe the bug
While copy files with DWG extension the library adds the BIN extension to the end, so
ABC.dwg -> ABC.dwg.bin.
As a result it's impossible to open this file after copy with DWG viewer.
To Reproduce
Run Sample application and copy any DWG file (you can find example in google) from one folder to another one.
Stacktrace
The issue is in MimeType.getFullFileName method. Why you are forcing to use some additional BIN extension instead of using original filename?

Thanks for your help. I have commented your PR, please check. 👍

Fixed in 0.14.0


How to set the width of the menu?

I found out that I can set the size of the side menu using openMenuOffset, however I noticed that when the app starts in landscape mode, the same values renders different width sizes. Is there another way to set the width of the menu.

Do you know how to close the menu through a button in menu page?

I found out that I can set the size of the side menu using openMenuOffset, however I noticed that when the app starts in landscape mode, the same values renders different width sizes. Is there another way to set the width of the menu.

openMenuOffset={width} ?

Yeah, thanks I figured it out. I had to modify the class a bit to get it working like I wanted though.


How would the customer 2nd in queue know what time will be his turn to be served?

Since the customer will only be assigned his serviceTime the moment he gets served, in a situation where there are many customers in a queue, how would the last customer in queue know when will be his turn to get served? Wouldn't the time of this last customer's ServeEvent depend on knowing the serviceTime of the customers in front of him who are still in queue and hence don't know their serviceTime yet?
In this case then how would I calculate the time that this last customer's ServeEvent should occur before adding it back into the PQ?

For me I updated the Service end time of the server after the first customer queues. When the 2nd customer is called, his serving time will be the server's end time. Basically you have to keep updating the servers end time before the next event is called.

Yeah you don't have to put them into the queue knowing what time they will be served. For me, when i dequeue a customer I create a new Serve event for them based off the time of the latest Done event from their corresponding server

For me, what I did was that only when my customer is to going to be served (either from arrival or waiting), then I just use the supplier.get() and pass the service time into the Done event and update my respective server. Other than that, I did not assign or update any of my Server or Done event.

what i did is to let the customers wait one more time to check the server availability so the 2nd in q can gets updated in time before calling its serve event

You can add the customer to the server's queue to wait without knowing the time of service. Then when a customer is done, you check the server to see if there is a waiting customer. If there is, you can add a new Serve event for this waiting customer.

All customers have an arrive event. In arrive, you can check if the customer can be served, if yes, then get the service time and you can return a new customer with the added service time by overloading the constructor.

I think service time is only extracted when the service event is processed.

The way i did this is:

Each server always keeps track of the time he/she is busy until busy until - which is accessible with getBusyUntil()
Arrive, Wait and Serve are different events
The time a wait event should be processed is just at the instant of time when arrives
The time a serve event should be processed is simply the value of server.getBusyUntil() at that instant of time + the
customer's service duration

What I did is to return another waitEvent from a waitEvent. When a waitEvent is called, check whether it can be served. If cannot, continue returning a waitEvent until the next time period.

I introduced a method called anotherNext() which is called when the server has two customers in the waitingList. So I will call a done event for the first customer in the waiting queue, and another serve event for the second customer in the waiting queue using the anotherNext() method.

I introduced a method called anotherNext() which is called when the server has two customers in the waitingList. So I will call a done event for the first customer in the waiting queue, and another serve event for the second customer in the waiting queue using the anotherNext() method.

Not necessarily cyclic dependency if we do this

Thank you for all the replies, I have managed to solve it now!


Issue 939

destroy action for themes. DMPRoadmap/roadmap#939

Here's a screenshot of the issue referenced above

I decided to remove lib/assets/javascripts/utils/linkHelper.js since this functionality is best handed through our third-party JS file (e.g. https://github.com/rails/jquery-ujs/blob/master/src/rails.js) part of vendor.js.
The reason to this removal is because any link with data-remote attribute was augmented with a hidden form that was triggered anytime the link was clicked without taking into account confirmation dialogs (e.g. Cancel for cancelling the action, etc).
Moreover, as jquery-ujs, offers AJAX support out of the box by just annotating a form, button or link with remote: true. I have made changes in some files according to the custom events triggered by jquery-ujs to showcase how it works. Files changed:

lib/assets/javascripts/views/plans/index.js
lib/assets/javascripts/views/plans/share.js

To be consistent, we should adapt also the files but I think a new issue for that would be better. Below the remaining files to change:

lib/assets/javascripts/views/answers/edit.js
lib/assets/javascripts/views/notes/index.js
lib/assets/javascripts/views/org_admin/templates/index.js
lib/assets/javascripts/views/plans/new.js

I attach here a link to the unobtrusive library that we have in place in case new work has to be added https://github.com/rails/jquery-ujs/wiki

merging after discussion with @jollopre since this resolves the issue with the cancel button not working on confirmation messages. Will create a separate ticket to apply the changes to other ajax calls and make sure issues #870 and #933 are resolved.


Use functional source for xcsv_hires

@mikekelly thanks you for your PR, the script used to download the hi-res package from the same resource you have added, but was down for a significant period of time so I replaced it. Thanks for bring it back, I can see is working again.

@mikekelly thanks you for your PR, the script used to download the hi-res package from the same resource you have added, but was down for a significant period of time so I replaced it. Thanks for bring it back, I can see is working again.


Fixed TypeScript in sourcemaps

Removed TypeScript files from postload, as they were affecting source maps.
Fixes issue 642.

Codecov Report

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

@@          Coverage Diff          @@
##           master   #136   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          33     33
  Lines         684    684
  Branches       84     84
=====================================
  Hits          684    684

Flag
Coverage Δ

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

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

Impacted Files
Coverage Δ

config/webpack/common.webpack.config.js
100% <ø> (ø)
:arrow_up:

config/webpack/test.webpack.config.js
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Get variables names used in a style

This PR is extracting out some code from the model-loading branch. When a style is converted into a custom shader it needs to know the variables used in the style whether that be feature properties like ${Height} or built-ins like ${POSITION} (for point clouds).
This adds a new private function Cesium3DTileStyle.prototype.getVariables as well as similar functions for StyleExpression, Expression, and ConditionsExpression.

Thanks for the pull request @lilleyse!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

@ptrgags Your feedback has been addressed.

Changes look good, I'm merging.
Thanks @lilleyse and @sanjeetsuhag!


[tumblr] Fix tumblr permission denied #22755

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Tumblr will return 403 Forbidden response when requesting iframe page because Referer header is missing
Explanation of your pull request in arbitrary form goes here. Please make sure the description explains the purpose and effect of your pull request and is worded well enough to be understood. Provide as much context and examples as possible.

ahh sorry, but i cannot to update the code anymore because my fork of youtube-dl has been disabled due to DMCA.

ahh sorry, but i cannot to update the code anymore because my fork of youtube-dl has been disabled due to DMCA.

You should have received an email from GitHub. The email said that you may regain access by contacting GitHub.
https://support.github.com/contact?tags=GH-POL-1120-1&subject=youtube-dl fork

Regaining access to youtube-dl
If you would like access to this content again, the easiest, fastest, and recommended option is to refork the parent repository. This means your fork will have the changes the parent repository made in response to the DMCA Takedown Notice. This option requires no action from GitHub.
If you’d like to delete your current DMCA disabled repository, you can let us know by replying to this email or by contacting us here: https://support.github.com/contact?tags=GH-POL-1120-1&subject=youtube-dl fork
Alternatively, if you’d prefer to have your original fork reinstated, you’ll need to make the same changes that were made by the parent repository. We would need to coordinate with you so that we can reinstate your repository for a limited period while you make those changes. Specifically, once we have reinstated your repository, you’ll need to sync your repository with the parent repository: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork
Please note that due to the large size of this network, responses to your requests could be delayed. We’ll work to resolve this issue with everyone impacted as quickly as possible, but we appreciate your patience. To choose this option, please let us know by contacting us here: https://support.github.com/contact?tags=GH-POL-1120-1&subject=youtube-dl fork

Any news on this @rafinetiz ?


Fix: typo in the module settings

Closes #121

Thanks for this contribution! I'll get a new version out soon with your change merged in


Always pass JAVA_HOME to daemon process

if it hasn't been modified.
Fixes https://github.com/gradle/gradle-private/issues/3858.

I've triggered the following builds for you:

ReadyForRelease build

I've triggered the following builds for you:

ReadyForRelease build

@bot-gradle test and merge

I've triggered a build for you.


Adds Java Lambda project link to README

Hi @jorgebastida
Inspired by your project, I wrote a similar project for those writing AWS Lambdas in Java. I thought it might be helpful for anyone coming across your project to also know a solution for Java exists as well.
I added some links to your project from my README as well. https://github.com/SunRun/cfn-response-java
Cheers ~ John

Thank you @jhovell !


attach of LogStream hangs even though Container has finished

Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT
Description
We have code that attempts to output the result of a Container that runs a C compilation into the Eclipse console.  We use the following:
LogStream stream = ((DockerClient) token).logs(id,
LogsParam.follow(), LogsParam.stdout(), LogsParam.stderr());
stream.attach(out, err);
where the out and err are PipedOutputStream instances that we hook up to PipedInputStreams for the callers to read and output to the Eclipse console.
We make the call for this in a separate thread.  In another thread, we have code that is doing a
waitContainer(id);
The waitContainer call uses a DockerClient copy that is separate from the one used to start the Container and create the LogStream
What is happening is that the thread that sees the waitContainer() complete successfully is waiting to see that the thread that attached the LogStream completes within 5 seconds later (to process all output).   I even tried 10 seconds and that didn't help.  It is stalling as the stream.attach() call does not return and we sit there and wait and wait.
What I ended having to do was to forcibly close the client copy I used to create the LogStream (token) and that stops it.  The issue is that I would expect the log stream to stop automatically when the container it is following has finished and this sometimes is the case.
[Add feature/bug description here]
How to reproduce
Create 2 threads.  One that starts a Container that runs a gcc -v command and then attaches a LogStream with the parameters specified above.  The out and err streams can be any OutputStream.
In the other thread, wait for the Container to finish and then query whether the line after the LogStream attach comes back.
What do you expect
I expect that shortly after the Container has completed and all output has been processed, the attach of the LogStream should finish (even by Exception).
What happened instead
The attach hangs and the only way to get it stop is to close the DockerClient that was used to create the LogStream.  I had tried closing the out and err streams but that does not work.
Software:

docker version:

Client:
Version:         1.13.1
API version:     1.26
Package version: docker-1.13.1-54.git6c336e4.fc27.x86_64
Go version:      go1.9.5
Git commit:      19d432b-unsupported
Built:           Mon May 21 10:58:04 2018
OS/Arch:         linux/amd64
Server:
Version:         1.13.1
API version:     1.26 (minimum version 1.12)
Package version: docker-1.13.1-54.git6c336e4.fc27.x86_64
Go version:      go1.9.5
Git commit:      19d432b-unsupported
Built:           Mon May 21 10:58:04 2018
OS/Arch:         linux/amd64
Experimental:    false

Spotify's docker-client version:

com.spotify.docker.client_8.9.2.v20180207-1730.jar (from Orbit)
Full backtrace
Thread [Thread-20] (Suspended)
owns: Object  (id=196)
owns: ChannelInputStream  (id=197)
owns: BufferedInputStream  (id=198)
Foreign.invokeN3O1(long, long, long, long, long, Object, int, int, int) line: not available [native method]
Invoker$LP64(Invoker).invokeN3(CallContext, long, long, long, long, int, Object, ObjectParameterStrategy, ObjectParameterInfo) line: 1061
Native$LibC$jnr$ffi$1.read(int, ByteBuffer, long) line: not available
Native.read(int, ByteBuffer) line: 101
Common.read(ByteBuffer) line: 49
UnixSocketChannel(AbstractNativeSocketChannel).read(ByteBuffer) line: 62
UnixSocketChannel.read(ByteBuffer) line: 250
ChannelInputStream.read(ReadableByteChannel, ByteBuffer, boolean) line: 59
ChannelInputStream.read(ByteBuffer) line: 109
ChannelInputStream.read(byte[], int, int) line: 103
SessionInputBufferImpl.streamRead(byte[], int, int) line: 137
SessionInputBufferImpl.fillBuffer() line: 153
SessionInputBufferImpl.readLine(CharArrayBuffer) line: 282
ChunkedInputStream.getChunkSize() line: 264
ChunkedInputStream.nextChunk() line: 225
ChunkedInputStream.read(byte[], int, int) line: 184
EofSensorInputStream.read(byte[], int, int) line: 137
BufferedInputStream.fill() line: 246
BufferedInputStream.read1(byte[], int, int) line: 286
BufferedInputStream.read(byte[], int, int) line: 345
ApacheConnector$HttpClientResponseInputStream(FilterInputStream).read(byte[], int, int) line: 133
EntityInputStream.read(byte[], int, int) line: 102
ReaderInterceptorExecutor$UnCloseableInputStream.read(byte[], int, int) line: 296
ByteStreams.read(InputStream, byte[], int, int) line: 859
LogReader.nextMessage() line: 49
DefaultLogStream.computeNext() line: 56
DefaultLogStream.computeNext() line: 35
DefaultLogStream(AbstractIterator).tryToComputeNext() line: 145
DefaultLogStream(AbstractIterator).hasNext() line: 140
DefaultLogStream.attach(OutputStream, OutputStream, boolean) line: 96
DefaultLogStream.attach(OutputStream, OutputStream) line: 84
DockerConnection.attachLog(Closeable, String, OutputStream, OutputStream) line: 2120
ContainerCommandProcess.lambda$0(IDockerConnection, String, OutputStream, IDockerContainerInfo) line: 133
1712157917.run() line: not available
Thread.run() line: 748

@jjohnstn thanks for reporting. Do you have a working example of code that can reproduce?

I'd have to work to put something simple together because all of the code is in Eclipse Linux Tools and CDT.  If you want to duplicate it in Eclipse, first download the Eclipse Photon RC3 CPP EPP:
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/photonrc3
Set up an Image with make, gcc installed.  Start up docker daemon and then start up the CPP EPP.  If you go to Docker Tooling Perspective in Eclipse, you can verify that Docker Tooling has found your daemon, otherwise, add a connection to it.
From C/C++ Perspective, go to New->C/C++ Project->Makefile project and choose a name.
Once the project is created,  go to the Project Explorer View and select project.  On launch bar above, pull down the target box which will say "Local" and choose the image you created above.  Hit the Hammer icon which will build the project in a Container.
If you debug on your side, you should see a Container wait complete but the attachLog doesn't return.  The Eclipse code will end up closing the client used to do the attachLog after 5 seconds elapses in sleeps.


Allow to add more boards to exisiting platformio.ini

In a fresh directory, platformio init --board A --boardB will create platformio.ini with environments for board A and board B. If the file platformio.ini already exists, we get an error:
Error: Project is already initialized. Process it with `platformio run` command

During development of a new project, it may be necessary, to add new environments supporting different boards. In that case, the user has to fill in all required fields manually, wihtout the benefit of the mechanims used with init command.
IMHO, it would be more user-friendly to provide a new command or extend the init command so that the user can add further boards to the platformio.ini.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/10778670-allow-to-add-more-boards-to-exisiting-platformio-ini?utm_campaign=plugin&utm_content=tracker%2F2014790&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F2014790&utm_medium=issues&utm_source=github).

I agree with this. I ended up copy/pasting the existing entry and changing manually, but it would be nice if it was possible to do this via the interface.


Release models or provide small librispeech recipe?

Since the VCC data is not commonly available could you either:

Release your pretrained models or
Add a VCTK / LibriSpeech recipe? (Since that data is available freely)

We can consider adding VCTK recipes. Meanwhile, both VCC2018 and VCC2020 are publicly available, and we support the automatic downloading of the dataset in the VCC2018 recipe (not yet for VCC2020).

@unilight Ah, the README says: "Note that dataset is only released for the participants (2020/05/26)." Do you want me to submit a PR to fix it, or would you?

Would also be nice if the README explained what you said: "both VCC2018 and VCC2020 are publicly available, and we support the automatic downloading of the dataset in the VCC2018 recipe (not yet for VCC2020)."

@unilight Do you have pretrained models you can share?


[V8] how can i fetch language file from remote server.

how can i fetch language file from remote server.  I tried a lot but I couldn't succeed. Can you share a sample code please?

This is not issue, so we will move to github discussions


Generate 404.html

Generate 404.html in the manner of 200.html

Try adding the following to your package.json to crawl /404.html:
"reactSnapshot": {
    "include": [
      "/404"
    ]
  }

Genius. I suppose we need to document all that small bits, which are useful for deployment to S3. Like this one or to use slash in the end of the link to produce path/index.html


Controller::has_curr() check fix

Running sqs-queuedjobs on a project threw the following error for a simple PublishItemsJob task:
PHP Fatal error:  Call to a member function getRequest() on a non-object in /var/www/site/fusion/code/extensions/TaggingExtension.php on line 41

@SilbinaryWolf suggested the following patch which worked for my project:
--- fusion/code/extensions/TaggingExtension.php 2016-09-23 12:05:49.401534303 +1000
+++ fusion/code/extensions/TaggingExtension.php 2016-09-23 12:06:25.039382293 +1000
@@ -38,7 +38,7 @@
                    'Tagging',
                    'Tags',
                    FusionTag::get()->map('Title', 'Title')->toArray(),
-                   (($filtering = Controller::curr()->getRequest()->getVar('q')) && isset($filtering['Tagging'])) ? $filtering['Tagging'] : array(),
+                   (Controller::has_curr() && ($filtering = Controller::curr()->getRequest()->getVar('q')) && isset($filtering['FusionTags.ID'])) ? $filtering['FusionTags.ID'] : array(),
                    null,
                    true
                ),

Thanks for picking this up, a fix will be pushed soon.


Biohansel does not recognize collections of SPAdes assemblies without .fasta extension

We tried to assemble a collection of .fastq WGS datasets with SPAdes, and tried to run Biohansel on the dataset list in Galaxy, and got an error.  Biohansel does not see any input files.n  Perhaps the wrapper needs to be fixed.  @apetkau @DarianHole

Hi @glabbe
I've tested this on my local galaxy and it seems that biohansel is not detecting the spades assembly as an input.

I'm not sure why this is happening but I'll play around with it to see if I can find any more information

@DarianHole yes we found that if we change the file name of the SPAdes assembly by adding ".fasta" to it, then BioHansel can detect it.  I think that we need to change the wrapper so that in galaxy, the lists of assemblies in .fasta format can be used as input without the ".fatsa" extension.

Should be fixed in #149, if not reopen this and I'll look for another solution


no option to include negative prompts in python CLI help?

Ran python -m python_coreml_stable_diffusion.pipeline --help but am not seeing an option for negative_prompts, though based on this issue, it seems it should be available unless I'm misunderstanding something?
usage: pipeline.py [-h] --prompt PROMPT -i I -o O [--seed SEED] [--model-version MODEL_VERSION] [--compute-unit {ALL,CPU_AND_GPU,CPU_ONLY,CPU_AND_NE}]
                   [--scheduler {DDIM,DPMSolverMultistep,EulerAncestralDiscrete,EulerDiscrete,LMSDiscrete,PNDM}] [--num-inference-steps NUM_INFERENCE_STEPS] [--guidance-scale GUIDANCE_SCALE]
                   [--controlnet [CONTROLNET ...]] [--controlnet-inputs [CONTROLNET_INPUTS ...]]

options:
  -h, --help            show this help message and exit
  --prompt PROMPT       The text prompt to be used for text-to-image generation.
  -i I                  Path to input directory with the .mlpackage files generated by python_coreml_stable_diffusion.torch2coreml
  -o O
  --seed SEED, -s SEED  Random seed to be able to reproduce results
  --model-version MODEL_VERSION
                        The pre-trained model checkpoint and configuration to restore. For available versions: https://huggingface.co/models?search=stable-diffusion
  --compute-unit {ALL,CPU_AND_GPU,CPU_ONLY,CPU_AND_NE}
                        The compute units to be used when executing Core ML models. Options: ('ALL', 'CPU_AND_GPU', 'CPU_ONLY', 'CPU_AND_NE')
  --scheduler {DDIM,DPMSolverMultistep,EulerAncestralDiscrete,EulerDiscrete,LMSDiscrete,PNDM}
                        The scheduler to use for running the reverse diffusion process. If not specified, the default scheduler from the diffusers pipeline is utilized
  --num-inference-steps NUM_INFERENCE_STEPS
                        The number of iterations the unet model will be executed throughout the reverse diffusion process
  --guidance-scale GUIDANCE_SCALE
                        Controls the influence of the text prompt on sampling process (0=random images)
  --controlnet [CONTROLNET ...]
                        Enables ControlNet and use control-unet instead of unet for additional inputs. For Multi-Controlnet, provide the model names separated by spaces.
  --controlnet-inputs [CONTROLNET_INPUTS ...]
                        Image paths for ControlNet inputs. Please enter images corresponding to each controlnet provided at --controlnet option in same order.

Version: pip freeze | grep "diffusion"
Returns
python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion@5d2744e38297b01662b8bdfb41e899ac98036d8b

Hello @sarahspak, the issue you referenced points to a PR that added negative prompts to the Swift CLI only. If you would like to add negative prompts to the Python CLI as well, feel free to put up a PR for that. Thanks for bringing this up!

got it - happy to do so!
I did notice an argument for [negative_prompt](https://github.com/apple/ml-stable-diffusion/blob/ce0be82717016f9a0bbdc6a09202860808203e7e/python_coreml_stable_diffusion/pipeline.py#L112) in the pipeline.py file. Was this feature not fully implemented?

Just pushed the change to unblock you, please open another issue if you hit any problems 🙏

thank you @atiorh!


Code formatter?

There is a code formatter for Scala: https://github.com/mdr/scalariform. We might think about enabling it.

I'm not sure we should do this. Code formatters are not that flexible and will require a lot of tuning of its options to get it to a place we are comfortable with. I enabled it on the core project locally and it does some interesting things. For example it renders:
  def flatMap[S, B](fn: A => PRequestReader[S, B])(
    implicit ev: R %> S
  ): PRequestReader[R, B] = new PRequestReader[R, B] {

as
  def flatMap[S, B](fn: A => PRequestReader[S, B])(
    implicit
    ev: R %> S
  ): PRequestReader[R, B] = new PRequestReader[R, B] {

I'm imagine there is an option to change this behavior, and I'm going play with it a little to see if I can get it in a more reasonable state, but I'm not really sold on it. I think Wartremover and scalastyle are better options for enforcing format.

Yeah. That's a weird style for sure. Maybe we can grab an initial config from some open source project that uses scalariform? That's basically what I did wit scalastyle (grabbed it from cats).

I think we should do that now. Everybody seems to be using scalafmt nowadays.

Scalafmt added in #1267


Editor window - opens large

Editor Window opens very large...
By Julian

You can adjust the size by editing Nottingham.info file in modules/zerte/templates/Nottingham


Node roles

In my understanding, some of the policies that descheduler uses to evict pods are based on nodes. Node utilization, for example. I have two different roles in my cluster, worker and nginx. The nginx role will only ever have three pods:

flannel (or whatever pod networking we use)
filebeat (gather logs)
nginx-ingress-controller (handle ingresses)

Wouldn't descheduler always consider those nodes under-utilized? Or does descheduler respect the nodeSelector property of the pods' deployment/statefulset/daemonset?
Or is there a way of configuring which nodes descheduler should look at?

yes descheuler has a command line flag --node-selector to target only selected nodes.

Cool, I can see that here:
https://github.com/kubernetes-incubator/descheduler/blob/d73471327b6737a3c85b4edd6416b0df654ceaab/cmd/descheduler/app/options/options.go#L56-L57
Is there any "official" documentation for descheduler? Any webpage, wiki-page, or something similar? Or maybe it will be added to Kubernetes official docs whenever #132 is dealt with?

https://github.com/kubernetes-incubator/descheduler/blob/master/README.md.
Please feel free to send a PR.


[Android] PDF417 cannot be read when barcode is parallel to the phone screen

Steps to reproduce

react-native init AppName
npm install react-native-camera@https://github.com/lwansbrough/react-native-camera.git --save
react-native link react-native-camera
Add onBarCodeRead and barCodeTypes to Camera as props

onBarCodeRead={(data) => {
                alert(data.data)
              }}
              barCodeTypes={['pdf417']}

Expected behaviour
PDF417 should be read successfully regardless of rather phone is parallel or perpendicular to the barcode
Actual behaviour
PDF417 barcode is only successfully read when the barcode is perpendicular to the phone.
Environment

Node.js version: 7.5.0
React Native version: 0.41.2
React Native platform + platform version: Android 6.0.1

react-native-camera
Version: master 65f7903
in iOS reading barcode in any direction works fine

I'm having a similar problem where the barcode isn't being read in landscape view - only portrait.

Facing the same issue here, any news on this?

Does this issue still occure with RNCamera?

This might fix this issue: https://github.com/react-native-community/react-native-camera/pull/1994

test on master


Please cut a new release for podman 4.3

New release of Podman, so we need a new release of podman-tui

Hi @rhatdan
I have cut the release 0.6.0 for podman 4.2, waiting for 4.3 release and two more features for tui to include and then will cut the  release 0.7.0

SGTM

Hi @rhatdan
branch "release-v0.7" available.
regards

Excellent.


[Client/Browser] Firefox freezes upon website load.

I experience this only on the G5V websites. Basically my three private inst. and your two public ones.

Hey so I noticed this earlier for me too... I'm not too sure why it's doing this but it must be some caching issues. Just clear the cache in manage data and look for the specific domains, and just remove. That should fix the issue.

I am not experiencing this issue even on FF anymore.


Can't handle multiple output

Hi,
Trying to return multiple result using wasmer. Here is sample code
#[no_mangle]
pub extern fn test(x: i32, y: i32, z: i32) -> (i32, i32, i32) {
    (x, y, z)
}

// try this since test function returning 0
#[no_mangle]
pub extern fn sub_main() -> (i32, i32, i32) {
   test(5, 1, 3)
}

fn main() {}

When I try to call test function from wasmer
sum := instance.Exports["test"]
result, _ := sum(4, 5, 3)

It is returning result as 0.  And if I call sub_main function
sum := instance.Exports["sub_main"]
result, _ := sum()

It is returning error
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4a2f15]

goroutine 1 [running]:
main.main()
        /go-ext-plugin/wasmer-ext.go:21 +0x125
exit status 2

The web assembly specification currently does not allow multiple return values from functions.

That is partially true. The Multi-value proposal has reached Phase 3: Implementation Phase. But Wasmer isn't supporting it for the moment. We are working on it though.

@AchalaSB Can you re-open the issue on wasmerio/wasmer please, so that we can prioritize the implementation? Thanks!
Closing this issue for now.

I've looked through docs, issues, and examples and can't seem to find anything on working with multiple return values. Can someone point me in the right direction?


Improve Rename API

Resolves #67

@clayellis Do you think this is still an issue with Files 4.0+?

@JohnSundell the surface area of the rename API didn't change between 3 and 4 — so I think the original motivations from #67 remain. However, I wasn't the one who brought up the issue, I just wrote the "fix", so I'm not super opinionated. Though, I do think this revision is a little more explicit and helps the user clarify their intent.

https://github.com/JohnSundell/Files/pull/124 is kinda related in terms of what name and what extension is, I suppose that for the hidden files the current PR implementation may treat name as an empty string
Example
.swiftlint -> (change name to ".swiftformat") -> .swiftformat.swiftlint
.swiftlint -> (change extension to "yml") -> .yml
Instead of
.swiftlint -> (change name to ".swiftformat") -> .swiftformat
.swiftlint -> (change extension to .yml) -> -> .swiftlint.yml
Btw I think that getting the name and the extension should probably work like this 🤔
.swiftlint -> (name, extension) -> (".swiftlint", "")
.swiftlint.yml -> (name, extension) -> (".swiftlint", "yml")
Maybe even (but the previous one is frankly better)
.swiftlint -> (name, extension) -> (".swiftlint", "swiftlint")
.swiftlint.yml -> (name, extension) -> (".swiftlint", "yml")

Closing, since it's been a few years without activity.


Request for Review

Hello Code Reviewer.
Here is a link to our Ruby Group Capstone Project
There are three people on our team.

Team member 1 is @zairdon20
Team member 2 is @BenjaminSemah
Team member 3 is @butlermuwo

Hi 👋 team,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
All the best🎉🎉
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Thank you @elisha2kyakpo1


NO-JIRA Fix PagingStoreImplTest#testBlockUnblock random failure

PagingStroeImpl.checkReleasedMemory() will kick off executor.execute(this::memoryReleased) to pull from the queue onMemoryFreedRunnables asynchronously. If the executor fires the task too late, it can pick up one of the late trackMemoryChecks runnable and increase its calls, making assertion fail. need to flush the executors to make sure it doesn't happen.

LGTM


Shorter support

Shortened and simplified the /support page. Should much quicker get the viewer what he/she is looking for, both on .org and .com

My suggested edits below:
COLUMN ONE
-Please change "There is much content online..." to "There is a lot of content online..."
-Capitalize the "Y" in "you can ask for help in our community..."
-Lower case "u" on ownCloud User mailing list
-Facebook, Twitter (uppercase the first letters)
COLUMN TWO
-Maybe point to the new /resources page instead of linking to separate whitepapers, webinars, etc.  It's a good common page (thanks for suggesting)
-Lower case "p" on petabytes
-Last bullet, lower case "Enterprise" before "infrastructure"
Looks great overall.  Will be interesting to track page metrics


Update hana-operations-model.md

SLA URL fixed for a latest version

@satonaoki : Thanks for your contribution! The author, @RicksterCDN, has been notified to review your proposed change.


⚠ Bofrost.lu has degraded performance

In ca8c423, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1421 ms

Resolved: Bofrost.lu performance has improved in 2f94bd2 after 1 hour, 5 minutes.


[AIRFLOW-XXXX] Fix pylint no value for parameter in tests

Make sure you have checked all steps below.
Jira

[ ] My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-XXX
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.
In case you are proposing a fundamental code change, you need to create an Airflow Improvement Proposal (AIP).
In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Description

[ ] Here are some details about my PR, including screenshots of any UI changes:

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does
If you implement backwards incompatible changes, please leave a note in the Updating.md so we can assign it to a appropriate release

Code Quality

[ ] Passes flake8

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@7d08cac). Click here to learn what that means.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master     #107   +/-   ##
=========================================
  Coverage          ?   79.05%
=========================================
  Files             ?      489
  Lines             ?    30684
  Branches          ?        0
=========================================
  Hits              ?    24258
  Misses            ?     6426
  Partials          ?        0

Impacted Files
Coverage Δ

...irflow/contrib/example_dags/example_pubsub_flow.py
0% <0%> (ø)

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 7d08cac...000691d. Read the comment docs.


fix: File Log test

weird, i haven't been able to reproduce the issue locally

will disable it for now as we need to get a release


Added Network options

Greetings,
I wanted to be able to run several small demo robots on an existing wifi network so I added options to specify the gateway and subnet mask so my driver station could connect to the Arduino.
Thanks,
James

Looks good, thank you!

Good deal. I'm glad it's useful. Are there any other items you guys have down to add? I'm not a uber programmer by any means but I'd be happy to help if I can.

Just ported those changes to the other libraries. Nothing in the immediate queue but we're certainly open to feature requests. How has the library/Driverstation been working for you?

So far so good. Seems to be pretty straight forward for basic functions. I want to make a number of changes to the Driver Station app. The latency chart takes up a lot of room on the main screen and want to switch it to a dial. I'm planning on adding several other dials/gauges to the main screen so we can get some feedback from the robot. Speeds/position/sensors/etc. I'm also planning on adding a section to view a webcam on the robot. The arduino really isn't powerful enough to do vision or handle routing video so I'm leaning toward using a ethernet based cam  the same way we do with FRC bots.
We're building a couple demo robots for our FRC team. One will be a t-shirt cannon and the other will be a frisbee thrower bot. Since Arduinos are MUCH cheaper than the FRC control systems, I'm planning on using the RobotOpen libraries to teach basic programming and robot control. I'm hoping I can design a platform based on off the shelf components that's cheap enough that students can build their own at home.

This sounds great.  Driver Station upgrades is an area that we haven't been able to focus on.
Keep us posted on any upgrades you make.  Take a look on the driver station Git page.  I've listed some upgrade requests that are in line with what you've already mentioned.
Have you looked at Guino?  I experimented with it a bit for visualization and it had some cool features that would be slick to integrate.

Any action on these driver station updates?

I've tinkered with it a little. I'm trying to get the hang of the actual app is laid out and the conventions in the coding.


Supplement guiding doc for developer

We have guide on building https://kmesh.net/en/docs/developer/build-guide/
IMO, we still lack guide on how to run unit test and how to run benchmark

/assign


[Issue #242] Logical plan, Query Plan JSON translation, and Operator Properties Extraction

This PR contains the following changes

Introduces a class, that is the concept of a logical plan
Beans for collection of operators and links
Bean for the DictionaryMatcher operator
Tests for the DictionaryMatcherbean and the Operator bean

This will be the first of the three pull requests as we discussed today.

@chenlica, @zuozhiw: Please have a look. This is the first of the three PRs as we discussed today.

Current coverage is 63.66% (diff: 44.71%)

Merging #254 into master will decrease coverage by 0.57%

@@             master       #254   diff @@
==========================================
  Files           130        140    +10
  Lines          3490       3636   +146
  Methods           0          0
  Messages          0          0
  Branches        568        589    +21
==========================================
+ Hits           2242       2315    +73
- Misses         1103       1159    +56
- Partials        145        162    +17

Powered by Codecov. Last update 8432460...fd0c18b

I wonder whether we can further split this PR into two PRs: one for introducing the concept of "LogicalPlan," and one for the rest.
After that, let's arrange a F2F meeting to do a review.  It will be good to add @zuozhiw to the discussion and meeting.

@chenlica That makes sense. When I split this into two PRs, the LogicalPlan still relies on the introduction of the OperatorBean and the LinkBean classes. Is that okay?
If yes, then I will remove the specific bean for DictionaryMatcher and any associated tests.

Add @zuozhiw to this discussion.
@kishore-narendran I am not sure whether we really need those Bean classes to introduce the LogicalPlan.  My understanding for @zuozhiw 's QueryGraph (https://github.com/TextDB/textdb/pull/240) is that it is independent from Bean.  Your first PR just needs to wrap or rename the QueryGraph class into a LogicalPlan class.  Is my understanding correct, @zuozhiw ?

Per our discussion, let @zuozhiw finish a LogicalPlan class, then use that one to continue this PR.

Since @zuozhiw has finished the LogicalPlan class, I will now proceed to polish this, for a review if possible tomorrow.

Sure.  Please rename the PR properly to reflect its content.

@chenlica I have done so, I believe that it is now ready for a review.

@chenlica @zuozhiw I have made changes as per our review this evening

LGTM.  If @zuozhiw approves it, please do the merge.

@zuozhiw gave me the good to go, so I am going to merge this, and open a new PR for the second operator bean. @chenlica


Cannot read properties of undefined (reading 'MISSING_OR_INVALID')

Describe the bug
occurs when I click walletConnect, no QC modal pop up.
detailed error title: Failed to sign in with WalletConnect: Cannot read properties of undefined (reading 'MISSING_OR_INVALID')
shown in the screenshopts.
following react example, reproduce the init function on  ref finance, using 5.0.0 walletConnect plugin package.
To Reproduce
Steps to reproduce the behavior:

Go to ref-finance wallets-integration branch
run yarn to install all packages
run yarn start:testnet
click connect to near wallet, and then click WalletConncet option

Expected behavior
QC modal appears successfully, and connects successfully.
Screenshots
details could be seen in these screenshots.
after clicking WalletConnect option:

ws request detail:

following the example to set up walletConnect

Device (please complete the following information):

Mac OS
Browser: Chrome
Version 103

Additional context
Add any other context about the problem here.

https://github.com/WalletConnect/web-examples/issues/38

https://github.com/WalletConnect/web-examples/issues/38

thanks for @kujtimprenkuSQA , I tried in my personal repo, updated into specific version, works now! waiting for officially updates!


Allow grants with no end dates on affiliates list (#337)

Codecov Report

Merging #338 (4b733ff) into develop (99a55b8) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop     #338   +/-   ##
========================================
  Coverage    97.88%   97.88%
========================================
  Files           88       88
  Lines         3456     3456
========================================
  Hits          3383     3383
  Misses          73       73

adding the tests was a bit involved because there weren't any for this function and also the test suite wasn't using pytest fixtures, but I'm glad I spent the time to do it, because I found another bug! I think the logic needed to be AND rather than OR in person.latest_grant(); let me know if it makes sense to you.


object id recycling

Hello, I have found out that deep sort do re-assign ids after original object is out of frames for long time, how to prevent this? I mean I want to assign unique id (UUID) for every object.

same problem

I think this problem due to person re-identification not perfect you have two option if you need to solve this issue :

change the model of person re-identificatioon (recommended)
or when the person if out of frame you can exclue when you need to calculate the similarity matrix (not recommeded because maybe this person after several minutes back to the scene)


drivers: ethernet: gd32: GigaDevice ENET support

Adds GigaDevice ENET support implemented via HAL.  Tested on GD32450Z devkit. PTP support tested using #46557.
Signed-off-by: Alex Sergeev<EMAIL_ADDRESS>

Compliance checks found misspelling on ENET_PTP_SUBSTRACT_FROM_TIME. Unfortunately, it's misspelled in HAL as well - what can I do to suppress it?

Hi @alsrgv,
Thank you for your PR.
CC: @soburi @cameled @feilongfl

Thanks for the quick feedback!  I resolved most of the easy ones, the main remaining uncertainty appears to be PHY.  GD32 HAL encapsulates PHY and it's configured via a set of #define's in gd32f4xx_enet.h. These can be overridden externally via -D as long as -D_PHY_H is specified.  I'm not sure how to make this work with PHY settings specified in a device tree, any suggestions?

Hi @alsrgv ,

Thanks for the quick feedback! I resolved most of the easy ones, the main remaining uncertainty appears to be PHY. GD32 HAL encapsulates PHY and it's configured via a set of #define's in gd32f4xx_enet.h. These can be overridden externally via -D as long as -D_PHY_H is specified. I'm not sure how to make this work with PHY settings specified in a device tree, any suggestions?

Do you think is possible bring to zephyr driver the enet_init method from gigadevice original driver? I think if it is possible the part that initializes phy can be handled by mdio driver. If you look code rx_thread exists only because of phy itself and that will be handled by mdio part. Is that make sense somehow?


Project import export

Added support to do Project exports and Project imports to move projects between two gitlab hosts

Codecov Report

Merging #92 into master will decrease coverage by 1.09%.
The diff coverage is 8.69%.

@@            Coverage Diff            @@
##           master      #92     +/-   ##
=========================================
- Coverage   32.16%   31.06%   -1.1%
=========================================
  Files         131      135      +4
  Lines        1657     1722     +65
=========================================
+ Hits          533      535      +2
- Misses       1124     1187     +63

Impacted Files
Coverage Δ

...piClient/Models/Projects/Responses/ImportStatus.cs
0% <0%> (ø)

...piClient/Models/Projects/Responses/ExportStatus.cs
0% <0%> (ø)

...itLabApiClient/Internal/Http/GitlabApiRequestor.cs
28.78% <0%> (-5.76%)
:arrow_down:

src/GitLabApiClient/ProjectsClient.cs
7.24% <0%> (-2.19%)
:arrow_down:

...t/Models/Projects/Requests/ImportProjectRequest.cs
0% <0%> (ø)

...ApiClient/Models/Projects/Responses/ExportLinks.cs
0% <0%> (ø)

src/GitLabApiClient/GitLabClient.cs
73.33% <100%> (+0.45%)
:arrow_up:

.../GitLabApiClient/Internal/Http/GitLabHttpFacade.cs
51.42% <50%> (-3.42%)
:arrow_down:

...t/Models/Releases/Requests/UpdateReleaseRequest.cs
0% <0%> (ø)
:arrow_up:

src/GitLabApiClient/ReleaseClient.cs
40% <0%> (ø)
:arrow_up:

... and 5 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 2f20508...1307642. Read the comment docs.

Hi @sandercox
I'd appreciate if you could increase the diff coverage 🙏

Glad to help with that but have no clue how to setup the testing environment for this... 🙈

@sandercox see https://github.com/nmklotas/GitLabApiClient/pull/99#issuecomment-569921414
I'll include in the contributiing.md 👍

Would you mind resolving the conflicts?

Codecov Report

Merging #92 into master will decrease coverage by 3.46%.
The diff coverage is 12.50%.

@@            Coverage Diff             @@
##           master      #92      +/-   ##
==========================================
- Coverage   70.84%   67.38%   -3.47%
==========================================
  Files         170      135      -35
  Lines        2367     1987     -380
==========================================
- Hits         1677     1339     -338
+ Misses        690      648      -42

Impacted Files
Coverage Δ

...t/Models/Projects/Requests/ImportProjectRequest.cs
0.00% <0.00%> (ø)

...ApiClient/Models/Projects/Responses/ExportLinks.cs
0.00% <0.00%> (ø)

...piClient/Models/Projects/Responses/ExportStatus.cs
0.00% <0.00%> (ø)

...piClient/Models/Projects/Responses/ImportStatus.cs
0.00% <0.00%> (ø)

src/GitLabApiClient/ProjectsClient.cs
64.83% <0.00%> (-17.36%)
:arrow_down:

...itLabApiClient/Internal/Http/GitlabApiRequestor.cs
72.41% <26.31%> (-20.34%)
:arrow_down:

.../GitLabApiClient/Internal/Http/GitLabHttpFacade.cs
61.53% <50.00%> (-36.03%)
:arrow_down:

src/GitLabApiClient/GitLabClient.cs
72.30% <100.00%> (-25.40%)
:arrow_down:

... and 74 more

Updated the conflicts and added a unittest for export/import of a project. Hope this can be merged now!