RollingUpdate strategy is not effective for RawDeployment mode

/kind bug
What steps did you take and what happened:
When updating the inferenceService, deployment's replicas are not set, the deployment replicas will initially be set to 1, and then the HPA (Horizontal Pod Autoscaler) will adjust the replicas to the minReplicas value.
For example, in the case below, where minReplicas is set to 4, even under the default update strategy(maxUnavailable: 25%), it would simultaneously delete 3 pods, rather than just one.
sklearn-iris-predictor   4/4     4            4           3d19h
sklearn-iris-predictor   4/1     4            4           3d19h
sklearn-iris-predictor   4/1     0            4           3d19h
sklearn-iris-predictor   4/1     0            4           3d19h
sklearn-iris-predictor   1/1     0            1           3d19h
sklearn-iris-predictor   1/1     1            1           3d19h
sklearn-iris-predictor   1/4     1            1           3d19h
sklearn-iris-predictor   1/4     1            1           3d19h
sklearn-iris-predictor   1/4     1            1           3d19h
sklearn-iris-predictor   1/4     1            1           3d19h
sklearn-iris-predictor   1/4     3            1           3d19h
sklearn-iris-predictor   2/4     3            2           3d19h
sklearn-iris-predictor   3/4     3            3           3d19h
sklearn-iris-predictor   3/4     3            3           3d19h
sklearn-iris-predictor   3/4     3            3           3d19h
sklearn-iris-predictor   3/4     3            3           3d19h
sklearn-iris-predictor   3/4     4            3           3d19h
sklearn-iris-predictor   4/4     4            4           3d19h
sklearn-iris-predictor   4/4     4            4           3d19h
sklearn-iris-predictor   3/4     4            3           3d19h
sklearn-iris-predictor   4/4     4            4           3d19h

What did you expect to happen:
When creating a deployment, set replicas=minReplicas.
What's the InferenceService yaml:
[To help us debug please run kubectl get isvc $name -n $namespace -oyaml and paste the output]
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
  name: sklearn-iris
  namespace: default
spec:
  predictor:
    minReplicas: 4
    model:
      modelFormat:
        name: sklearn
      storageUri: gs://kfserving-examples/models/sklearn/1.0/model

Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:
RawDeployment

Istio Version:
Knative Version:
KServe Version: v0.13.0
Kubeflow version:
Cloud Environment:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
Minikube/Kind version:
Kubernetes version: (use kubectl version):
OS (e.g. from /etc/os-release):

https://github.com/kserve/kserve/pull/3603
This feature will also be affected.
@terrytangyuan @spolti

@Syulin7 can you help check the hpa object ? The minReplica should be set
https://github.com/kserve/kserve/blob/ca691f728ac0fe6a711b2953a88abb1b3d532658/pkg/controller/v1beta1/inferenceservice/reconcilers/hpa/hpa_reconciler.go#L115

@yuzisun  hpa is correct, minReplica is set.
NAME                     REFERENCE                           TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
sklearn-iris-predictor   Deployment/sklearn-iris-predictor   0%/80%    4         4         4          4m45s

deployment replicas will be set to 1 when update.
## create isvc
  Normal  ScalingReplicaSet  3m26s  deployment-controller  Scaled up replica set sklearn-iris-predictor-65974ff5f5 to 1
  Normal  ScalingReplicaSet  3m11s  deployment-controller  Scaled up replica set sklearn-iris-predictor-65974ff5f5 to 4 from 1

## update isvc
  Normal  ScalingReplicaSet  67s    deployment-controller  Scaled down replica set sklearn-iris-predictor-65974ff5f5 to 1 from 4
  Normal  ScalingReplicaSet  67s    deployment-controller  Scaled up replica set sklearn-iris-predictor-6c6d99f978 to 1
  Normal  ScalingReplicaSet  56s    deployment-controller  Scaled up replica set sklearn-iris-predictor-6c6d99f978 to 3 from 1
  Normal  ScalingReplicaSet  56s    deployment-controller  Scaled up replica set sklearn-iris-predictor-65974ff5f5 to 2 from 1
  Normal  ScalingReplicaSet  25s    deployment-controller  Scaled down replica set sklearn-iris-predictor-65974ff5f5 to 1 from 2
  Normal  ScalingReplicaSet  25s    deployment-controller  Scaled up replica set sklearn-iris-predictor-6c6d99f978 to 4 from 3
  Normal  ScalingReplicaSet  25s    deployment-controller  Scaled down replica set sklearn-iris-predictor-65974ff5f5 to 0 from 1


Expense - Receipt added after creating expense changes amount & merchant field to scanning

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: V9. 0.71-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Yes, reproducible on both
If this was caught during regression testing, add the test name, ID and link from TestRail: N
Email or phone of affected tester (no customers): N
Issue reported by: Applause Internal Team
Action Performed:

Launch app
Go to workspace - new workspace
Tap category
Enter gl and payroll code
Save the category
Tap settings - toggle on member must categorize all expense
Tap on workspace chat from workspace settings page
Create a expense entering big amount and merchant
Open the expense and upload a receipt using camera
In few seconds, amount and merchant changed to scanning
Open amount and merchant field and close
Note after minutes scanning is shown in amount and merchant field.
Go back to conversation page
Open expense again
Now amount and merchant displayed

Expected Result:
Receipt added after creating expense changes amount & merchant field to scanning must display correct value.
Actual Result:
Receipt added after creating expense changes amount & merchant field to scanning and it resets to correct value only while revisit the page.
Note: scanning text remains and only after revisiting page or refreshing page(mweb) , amount and merchant field displayed again.
Workaround:
Unknown
Platforms:

[x] Android: Standalone
[x] Android: HybridApp
[x] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/18a0a6f8-24bb-4ef1-9410-6f4b563c4e3f
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Expense - Receipt added after creating expense changes amount & merchant field to scanning
What is the root cause of that problem?
Whenever the receipt of the transaction is being scanned we are showing scanning for both amount and merchant here
https://github.com/Expensify/App/blob/64829131fe962681626b4b016140521d05f7fe52/src/components/ReportActionItem/MoneyRequestView.tsx#L213-L215
What changes do you think we should make in order to solve the problem?

We should display scanning only if the transaction amount doesn't exist or is zero so we can update it to
if (TransactionUtils.hasReceipt(transaction) && TransactionUtils.isReceiptBeingScanned(transaction) && !transactionAmount) {
        merchantTitle = translate('iou.receiptStatusTitle');
        amountTitle = translate('iou.receiptStatusTitle');
    }

We can optionally separate the merchantTitle and only show scanning when transaction merchant is empty (or using the existing condition of isEmptyMerchant) or even show scanning for merchant whenever the receipt is being scanning according to the suggestions of the design team
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
What alternative solutions did you explore? (Optional)

I haven't' had a chance to review. Will look at this this weekend or first thing Monday morning

I'm fairly certain this is intended behavior. It's returning to the original set Merchant & Amount when the receipt is done scanning. In this case the receipt did not have a merchant or amount.
Although i'm not 100% sure what is expected if the merchant or amount was scanned off the receipt and differed from the manually entered info.
For card expenses, historically we've taken the scanned merchant but not sure if that's the case here 🤔

I'm fairly certain this is intended behavior. It's returning to the original set Merchant & Amount when the receipt is done scanning. In this case the receipt did not have a merchant or amount.
Although i'm not 100% sure what is expected if the merchant or amount was scanned off the receipt and differed from the manually entered info.
For card expenses, historically we've taken the scanned merchant but not sure if that's the case here 🤔

From my observation @OfstadC The manually set amount and merchant are not overrode by scan results here is a demo: the receipt has both amount and merchant but it remained in the manual value set initially.
https://github.com/user-attachments/assets/e98cc68f-3293-4f1a-9d13-99de785d3b14

From my observation @OfstadC The manually set amount and merchant are not overrode by scan results here is a demo: the receipt has both amount and merchant but it remained in the manual value set initially.

Interesting 🤔 .

Asked about this here - https://expensify.slack.com/archives/C06ML6X0W9L/p1734034230368829

Seems like we do want to fix this. Just waiting to confirm if this is External or Internal

I believe we do want to scan the receipt (background scan), but it shouldn't be blocking the merchant, amount when completing


Is there a limit to the length of utterances?

Hey guys,
sorry for bothering you.
I didn't try the library yet, but I couldn't find the following info in the doc: what's the limit of utterances length?
Thanks in advance,
Fredo

No current utterance limit imposed by the library, however, semantic similarity is computed between query and your list of utterances, so you might find a physical boundary is the size of utterance vectors in memory

Closing as this seems to be resolved. Let me know if we should reopen.


How does archaius keep track of all the property files

Want to understand how does archaius keep track of all the property files.
What feature does it use to poll and update the changes ? how often does it poll?
And which API in Archaius polls for the changes and keeps updating the properties?
Appreciate your help in understanding this?
Thanks

Can you go through the Wiki pages first and hopefully you will have more targeted questions? Your current questions are too general.


iOS 9 Error AKBooster

I am getting the following error when downloading my Audio Kit application onto my iPad 2: AURemoteIO::IOThread (7): EXC_BAD_ACCESS (code=1, address=0x0). However, when I change the AudioKit.output to modulin, it works. This would lead to me to beleive that the problem lies in the AKBooster applied to the voltageControlledAmplifer. Is there any specific order of AudioKit configuration that I am not following?
`
public var modulin: AKOperationGenerator!
public var voltageControlledAmplifier: AKBooster!
public var recordingNode: AKMixer!

private var recorder: AKNodeRecorder!
private var player: AKAudioPlayer?

private let midi = AKMIDI()
public var midiChannelIn: MIDIChannel = MIDIChannel(UserDefaults.midiChannel)
private var currentlySelectedMidiNotes = Set<MIDINoteNumber>()

// MARK: Init

init() {
    setUpAudioKit()
    setUpMidi()
}

// MARK: Private Functions

private func setUpAudioKit() {
    modulin = AKOperationGenerator.modulin()
    modulin.start()
    voltageControlledAmplifier = AKBooster(modulin, gain: 1)

    AKSettings.playbackWhileMuted = true
    AKSettings.defaultToSpeaker = true
    AKSettings.bufferLength = AKSettings.BufferLength(rawValue: UserDefaults.preferredBufferSize)!
    AKSettings.sampleRate = UserDefaults.preferredSampleRate

    do {
        try AKSettings.setSession(category: .playAndRecord, with: [.defaultToSpeaker, .allowBluetooth, .mixWithOthers])

        recordingNode = AKMixer(voltageControlledAmplifier)
        // Recording Node and AudioKit Output must be the same
        AudioKit.output = recordingNode
        recorder = try AKNodeRecorder(node: recordingNode)

        try AudioKit.start()
    } catch {
        print("AudioKit failed to set itself up.")
    }

}`
Thanks for all your help.

Until this is isolated as a fixable issue in AudioKit and not an implementation thing, I'm going to close this issue and let it play out on https://stackoverflow.com/questions/49680078/ios-9-error-akbooster

Have you found anything else on this issue lately? It's still resulting in an error for me on the iOS 9.3 simulator in Xcode.


feat: Caching and other efficiency improvements for mcap polyfill

This PR caches the result of requestMediaKeySystemAccess saving time on subsequent calls.
It also makes the calls to decodingInfo synchronous. The reason for this, is the result of testing on multiple devices that the behaviour of requestMediaKeySystemAccess appears to be synchronous, making this synchronous can save over a second on older TVs.
The issue is currently assigned to my colleague Hugo Lima.
Closes https://github.com/shaka-project/shaka-player/issues/4574

@dave-nicholas there are errors in the tests

@dave-nicholas there are errors in the tests

Fixed 👍


Download not robust

Users complain that they cannot download their data (the wheel is spinning forever). The celery worker does not seem to be saturating, so I am not sure what the problem is but fixing this should be a priority:

I can privately share a session for which it is a problem.

@antoinefalisse will discuss with Keenon and @AlbertoCasasOrtiz to discuss potential fixes, might be assign to freelancers.

Fixed with #115, was not a problem of CPU/Memory but a problem caused by trying to download something from S3 that was not actually existing. This was happening when for instance some trials were missing videos.


io::Cursor is a bit out of place

I think this may not wish to use io::Cursor pervasively. This use case doesn't have much to do with std::io. The std version also stores a  u64 which isn't needed for bytes's use case I believe.

I also just twitch a bit whenever I see io::Cursor, I sort of regret adding it to std, it doesn't seem to really pull its weight.

Makes sense. I mostly opted for Cursor to not add another type.
Another option would be to bring back ByteBuf or something like that?

I think a local "cursor type" (w/e the name) may be right here, but I wouldn't add it just yet (I don't know what it should look like)

I also just twitch a bit whenever I see io::Cursor, I sort of regret adding it to std, it doesn't seem to really pull its weight.

A bit off topic, but note that I love it being in std, you can easily use it to Read over a buffer. Very interesting when you only offer a io::Read based API and people want to use it with their memory buffered data (best use case is tests).

Using Cursor here is definitely a mistake on my part...
std implements Read and Write for &[u8] and &mut [u8] respectively. We probably want to follow that pattern and implement Buf / BufMut for &[u8] and &mut [u8].

+1 on this. io::Cursor complicates no_std usage. I had to vendor it in to my PR to add no_std support: #135
Perhaps I should change that PR to just stop using io::Cursor entirely?

I opened a PR which vendors std::io::Cursor as buf::Cursor here (while also reducing the position counter size to u32):
https://github.com/carllerche/bytes/pull/146
I'm not sure that's entirely ideal but I don't see any other path forward here. I need something like it to make progress on #135

So to clarify what will happen in v0.5:

impl Buf for Bytes directly (remove IntoBuf of Cursor<Self>)
impl Buf for BytesMut directly (remove IntoBuf of Cursor<Self>)
impl IntoBuf for &Bytes to return &[u8]
impl IntoBuf for &BytesMut to return &[u8]
impl IntoIterator for Bytes to use slice::Iter
impl IntoIterator for BytesMut to use vec::IntoIter

Look right?

Looks bout right.

I am looking at implementing IntoBuf for BytesMut, to solve the tokio-io problem. I am trying to understand what needs to happen
Am I reading the issues correctly that you want to get rid of Cursor. Does the replacement implementation you have in mind look like adding a position field to Bytes and BytesMut structs?

Never mind, I think I figured out how to do it using the fields of Inner.
The only problem I ran into is the removal of set_position. My understanding is that using only the elements of Inner, advancing the buffer would either be permanent or affect all copies. Is the ability to seek backwards used by anyone?.


feat:Add API reference generated from Core

This ( https://github.com/metacall/landing-page/pull/4/commits/b6f9cae7082886e338da99660134e2d83ae60335 ) looks exactly what I asked for in: https://github.com/metacall/landing-page/issues/2 .
I am going to merge it. The only remaining thing is copying the html files from build folder and publishing them into the correct folder on github pages.


Flicker after closing the expanded image

Really love this library! I am having a small issue when closing images. Would love to get your thoughts on what the issue might be.
I get a little flicker after the image I tap is closed. I have included a video here.
The image is in a scrollview.
Untitled.zip

Thanks for the report! I'm snowed under with work at the moment but I should get a chance to look at it sometime this weekend. I'll keep you posted.

Perfect. Thaks a lot! You can download our app here to see where it is happening: http://www.shoplooq.com/
I have also included a video with slowed animations and it shows that the view is expanding outside of the screen and pushing even the content above it up. I have also included screenshots to see what content is being expanded. Hope that helps!
Archive 3.zip

I'm having a hard time reproducing this myself but I do suspect that there is an issue with the background snapshot the lib captures to fade out nicely (or blur) when it's dismissing. Would it be possible for you to call the showFrom method not only with the viewController it's presenting from but also with the optional backgroundSnapshotVC parameter. Set that parameter to the absolute root of your view hierarchy. Does that fix the issue?
In case it does, it'd be interesting to see what's the difference between what you pass as root and what the fileprivate func viewControllerForSnapshot(fromViewController:) method comes up with. If you could breakpoint that and check the difference if any…

That did not fix the issue. If we set it to self, it does the same thing. Here I set it to the rootVC. and below I have set it to self which is the root VC. This code is executed when the button over the image is tapped.
let agrume = Agrume(image: mainImageForFull, backgroundColor: .black)         agrume.hideStatusBar = true         var window :UIWindow = UIApplication.shared.keyWindow!         let root = window.rootViewController         agrume.showFrom(self, backgroundSnapshotVC: root)
let agrume = Agrume(image: mainImageForFull, backgroundColor: .black)         agrume.hideStatusBar = true         agrume.showFrom(self, backgroundSnapshotVC: self)

We are using a sticky header for the image view so that is most likely the reason for the issue. Does Agrume adjust any scroll view properties (i.e. offset) or the location of any objects in the view?

Sorry for the delay, I'm in the middle of an app release atm so everything is a bit hectic 🙃.
To answer your question, Argue doesn't adjust any scroll view properties and doesn't do anything at all to the controller that's presenting, it only uses it to present from.
If possible, could you comment out line 243 (backgroundSnapshot = …) in the showFrom method and check if you still see the flickering then? It won't fade out as smoothly but at least then we'd know for sure if it is an issue with the snapshot Agrume takes or something in your view.

Completely understand! I just tried commenting out that line and it does not change anything. It looks like it is something else that is getting moved around.

+1 same for me

Perfect. Glad to know that it is not just me. @tomykho can you give a little more insight on how you are implementing Agrume?
@JanGorman We have other pages being dismissed from that VC and I checked the code in our ViewDidAppear of the VC that we are using Agrume in and I don't think it is anything like that.

Hey, I wanted to quickly follow up to see if you were able to reproduce the issue. Let me know if you have any questions.

Hey Nevin – I haven't had a chance yet, sorry. But also haven't forgotten about it ;)

@nevinjethmalani you mentioned a sticky header on the image view. Are you referring to sectionHeadersPinToVisibleBounds = true or something else?

No we aren't using a table view or a collection view to create the sticky header. We are doing it in the story board using constraints. It is a little difficult to explain the exact way the constraints are laid out.
If I am not mistaken, when I get rid of the animation in your project, the issue does not exist.

I have the same issue especially when using backgroundColor or backgroundBlurStyle, agrume change my underneeth tableview scroll offset. It works fine though when not using backgroundColor or backgroundBlurStyle

Thanks @musbaalbaki for the info. This kind of reaffirms that I think it's an issue with the screenshot that is captured and used to blur (and is also captured when using a background color). As you can see https://github.com/JanGorman/Agrume/blob/master/Agrume/Agrume.swift#L272 all that the library does is call viewController.present(…).
I wasn't able to reproduce it at the time. Would you be able to share your code so that I can investigate further?

I believe the scrollview that the image is displayed in scrolls up and down by 20 points when the flicker happens if that helps. @musbaalbaki, is yours in a scrollview?


[terra-date-time-picker] onBlur prop given old date when DST modal closes

Bug Report
Description
When using the terra-date-time-picker, we are seeing some unexpected behavior around updating when the user enters an ambiguous hour. This video focuses on that behavior.
You can see on the initial selection of CST (-6:00), the -5:00 of CDT is still provided to our onBlur method and logged in the console. Our component then immediately calls our service to update the detail to this time. Once the update finishes, the detail has a value in CDT. When we click into and blur on the component again, we again pick CST, but CDT is provided to onBlur, meaning it looks like no change has occurred to the value and update is not called. (Note: Both of these times the user is incorrectly lead to believe the value is in CST, as the time zone button appears with CST displayed).
On our final "focus and blur" we see that update is called, because this time the onBlur function is correctly provided the CST (-6:00) value, so it observes a change and calls our services.
Steps to Reproduce

Enter an ambiguous hour
Pick CST (while the current timezone is CDT)
Observe via logging or a breakpoint what value is passed to the onBlur prop

Additional Context / Screenshots
--
Expected Behavior
Value passed to the onBlur prop reflects the choice made in the DST modal
Possible Solution
Looks like the issue is related to storing the dateTime in state when a modal button is clicked, and reading from state to pass to the consumers provided onBlur. This was evidenced by this change fixing the behavior:

By nesting the handleBlur call in a setState callback, we guarantee that all changes to state are propagated before calling handleBlur (which calls the consumers onBlur later). Rather than wrapping the handleBlur events in the two click handlers for the DST modal buttons, this could wrap where we read the state in handleBlur for a better guarantee of covering all workflows, but this approach could be seen as "smelly" and was really just used as a proof of concept.
What may be a better solution to this issue is no longer storing the dateTime in state, but passing it directly into the handleBlur event, so we don't have to worry about async state propagation.
Environment

Component Name and Version: terra-date-time-picker 4.10.0
Browser Name and Version: Chrome, uh, recent

@ Mentions
@benbcai

@prmeznar
Um, this could be because of how I addressed Ben's comment in a PR earlier. I have now tried to fix it (correctly?) and here it is: https://github.com/cerner/terra-framework/commit/4fbb5e8621685a490a7614683c49e1d219b81e18 I have also built a snapshot if you would like to test it out using -
"terra-date-time-picker": "https://github.cerner.com/terra/terra-snapshots/blob/master/terra-framework/ambiguous-hour-test/terra-date-time-picker.tgz?raw=true",

However, I am surprised that you see a Time Clarification dialog for the second time when you click into and blur the component again by clicking outside the date time picker component. I could be interpreting the logic or the video wrong but I think that the dialog does not (should not) show up when the old time is ambiguous according to the logic below. At this point, the time clarification dialog can be relaunched only by clicking on the offset button.
https://github.com/cerner/terra-framework/blob/4a41737325ea81656c60520c26d37d6f512556f0/packages/terra-date-time-picker/src/DateTimePicker.jsx#L298
@benbcai Am I missing something?

@prmeznar
I'd suggest logging a new issue regarding offset button highlight, I think it is not related to the original issue here - that would help separate out the investigation imo.
@benbcai
Do you see any concern with the proposed changes?

@nramamurth Your proposed changes makes sense and I could see where the mix up was in the initial change.
@prmeznar Was your app pulling in a version of terra-button prior to 3.20.0?

@benbcai It was pulling in 3.7.1 or I think. I saw the changelog for terra-button 3.20 mention fixing some programmatic focus bug, tried that out and verified it works in 3.20 but not 3.19


Support no-Clone generated services created by custom MakeService impls

As currently emitted by the server generator, the service trait requires Clone and the server object implements the Service<()> impl to satisfy MakeService by cloning itself. While simple, this precludes implementations where the service factory provides instances with call-specific data, such as synchronization objects or connection-level attributes. While it may be possible to use the extension map of the HTTP Request (once that is made available on the gRPC request), this is an unnecessarily dynamic approach with performance drawbacks.
It would be nice to have a build flag that removes the Clone requirement and the self-replicating MakeService impl, leaving the application to provide the service factory as appropriate.
This could help with #67 and may facilitate #2.

Side note: it feels weird that one type can implement different parameterizations of Service doing very different things, the purpose of which is not completely decided by the parameter type. IMHO it would be conceptually cleaner if the service input was an associated type, so the type creating service instances out of seed data would have to be provided separately from the service type. But perhaps there is another case for types serving closely related polymorphic requests.

The generated Service<()> is really to help get it working quickly with tower-h2, but it's not the only way to get started. You make YourMaker and implement a way to make the Service for each connection.
To your point about parameterization: the request type used to be an associated type, but there's some reasons it was changed to a generic:

As an associated type, there could only be 1 impl for the service, even though a service could theoretically work for many kinds of requests.
In Rust, it's more common for "input" types to be generics, and "output" types to be associated types.

If you think about Service being an extension of FnMut, it might seem less weird that different arguments can return different types.

You make YourMaker and implement a way to make the Service for each connection.

The Clone prerequisite of the generated Service<()> can still be a drag in case there have to be non-cloneable instance data.

If you think about Service being an extension of FnMut, it might seem less weird that different arguments can return different types.

It's not very common to see explicit implementations of FnMut; in fact, the desugared trait signature is unstable. Much less to have one type act as a closure in very different semantic roles.
I understand the case for polymorphism on conceptually similar inputs, as also demonstrated by the generated server object implementing Service for requests on different protocol layers. But the Service<()> factory impl exhibits a semantic creep caused by the idea that the only tool you should have is a Service. I would rather change MakeService to not have the blanket impl, but have a generic function that accepts a Service<Target> to produce an adapter type implementing MakeService.

I do think it'd be a good idea to generate a Make$NameServer that is the "make service", instead of implementing it on $NameServer directly.
In order to completely remove Clone, deeper changes would be required, since in order to return a Future, we need to clone the service, as we don't yet have a deserialized request type to be able to call the specific method.


Can't resolve './itsNotForPublicGit.json'

This game doesn't run locally and thorws the error Can't resolve './itsNotForPublicGit.json'. Would be good to explain what is the itsNotForPublicGit.json and what it does in the config.js file.

Hello there! Thanks for reaching out, I commented out this line from config.js. It means that you need to have Goblin server instance running locally at localhost:1337. Use https://github.com/red-machine-games/goblin-base-server-bootstrap and copy cloudFunctions content from clash-of-cats repo.


Fix #63

Logic race condition, if the decode goroutine can run before the caller can, the channel returned might not have a receiver yet and then the select/default construct will drop the event and close the channel.
The caller then ends up with a zero-value decodedEvent where decodedEvent.err and decodedEvent.event are both nil which passes the err check at line 434 and might enter line 440 where decodedEvent.event is then used as-is with no additional check for it being nil.
Fixed this scenario by giving the returned channel a buffer slot so that decode can always send its event.

nailed it

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

Comparison is base (f477179) 55.99% compared to head (819351e) 56.25%.
Report is 3 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #64      +/-   ##
==========================================
+ Coverage   55.99%   56.25%   +0.26%
==========================================
  Files          13       13
  Lines        3488     3484       -4
==========================================
+ Hits         1953     1960       +7
+ Misses       1409     1401       -8
+ Partials      126      123       -3

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


Enhancement: tag or change items in "Closed PRs" list

The current closed PRs list doesn't offer much information because Closed PR is a superset of Merged PR. Take the screenshot as an example: which PRs are closed and which PRs are merged?
A simple and effective solution to this is to list only non-merged closed PRs in the "Closed PRs" list.
Another solution is to tag each item with merged or closed

nother solution is to tag each item with merged or closed

I prefer this one, what do you think :) because GitHub webpage shows merged prs in the closed tab too

This's the first workaround I came up with, but since you already provide a Merged list, there's no need to do so.


Update cmake-presets-vs.md

Updating based on inaccurate preset version mappings

@TylerMSFT
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


bug/docx conversion fails (no export filter provided)

When using unstructured==0.7.4 with LangChain and using a DirectoryLoader that happens to traverse a .doc file, I get this:
Error: no export filter for /private/var/folders/hj/vcvdzqt5037_640tkfxfbdym0000gn/T/tmpdqn7lr0h/mydoc.docx found, aborting.
Here I found important info:
https://stackoverflow.com/questions/52277264/convert-doc-to-docx-using-soffice-not-working
Syntax for LibreOffice 7 seems to be --convert-to "docx:MS Word 2007 XML", with an output filter name supplied after the docx. Options for the output filter name ("MS Word 2007 XML") seem to be here https://git.libreoffice.org/core/+/refs/heads/master/filter/source/config/fragments/filters
And fair enough, this worked:
soffice --headless --convert-to "docx:MS Word 2007 XML"  myFile.doc
convert myfile.doc -> myfile.docx using filter : MS Word 2007 XML
I wonder if the way Unstructured and LangChain interact can be fixed so that the conversion works.

For the record, I use this:
    loader = DirectoryLoader(dir_to_traverse, glob=glob_expression,
                             show_progress=True,
                             silent_errors=True,
                             use_multithreading=True)

glob_expression is passed via CLI params, and in this case it is:
--glob="**/*.*"

because I am importing Word docs and PDFs. That is why I cannot pass a single loader as shown in https://github.com/hwchase17/langchain/issues/4856

@sglebs - Thanks for flagging this, we'll take a look at this as soon as we can.


Facet selection homepage

Closes #26
This has quite the commits, it's mostly restructuring.

I like the visual execution here but the data it is pulling is heavily biased toward bitcoin talk and achow/Andrew Chow is the same person. We could role this out by hardcoding some names/terms, but I wouldn't be comfortable going with what is currently displayed.
Let's hard code the following authors:
Andrew Chow
Anthony Towns
Gregory Maxwell
Matt Corallo
Pieter Wuille
Rusty Russell
ZmnSCPxj
Besides authors, please you add the following keyword terms as well:
Adaptor signatures
Async payments
BIP324
Eclipse attacks
Just-in-time (JIT) routing
Miniscript
MuSig
Package relay
Transaction pinning
Vaults

superseded by #62


Best way to handle Schedulers in EventHubProducerAsyncClient and EventHubConsumerAsyncClient

Query/Question
Hello Azure team,
First of all, please excuse me if this may seem a newbie question but it will take me some time to adopt the logic of my brain from synchronous world to asynchronous world :) .
I am now writing Camel EventHub component and this time, I'd like to use the async clients without any blocking needed.
However, I'd like to add custom Schedulers to handle my non-blocking requests.
Now taking this code example:
producerAsyncClient.send(Arrays.asList(new EventData("first 1"), new EventData("first 2")))
                .publishOn(Schedulers.newSingle("publish"))
                .subscribeOn(Schedulers.newSingle("subscribe"))
                .subscribe(
                        body -> {System.out.println("Thread: " + Thread.currentThread());},
                        error -> System.out.println("Error " + error.getMessage() + " on thread: " + Thread.currentThread().getName()),
                        () -> {
                            System.out.println("done all");
                            System.out.println("Thread: " + Thread.currentThread().getName());
                        });

Which will print the following logs:
2020-08-06 16:06:41,376 [main           ] INFO  EventHubConnectionProcessor    - namespace[testcamel.servicebus.windows.net] entityPath[testhub]: Next AMQP channel received, updating 0 current subscribers
2020-08-06 16:06:41,395 [subscribe-1    ] INFO  ReactorConnection              - connectionId[MF_8b659d_1596722801357]: Creating and starting connection to testcamel.servicebus.windows.net:5671
2020-08-06 16:06:41,418 [subscribe-1    ] INFO  ReactorExecutor                - connectionId[MF_8b659d_1596722801357], message[Starting reactor.]
2020-08-06 16:06:41,428 [single-2       ] INFO  ConnectionHandler              - onConnectionInit hostname[testcamel.servicebus.windows.net], connectionId[MF_8b659d_1596722801357]
2020-08-06 16:06:41,428 [single-2       ] INFO  ReactorHandler                 - connectionId[MF_8b659d_1596722801357] reactor.onReactorInit
2020-08-06 16:06:41,428 [single-2       ] INFO  ConnectionHandler              - onConnectionLocalOpen hostname[testcamel.servicebus.windows.net:5671], connectionId[MF_8b659d_1596722801357], errorCondition[null], errorDescription[null]
2020-08-06 16:06:41,428 [subscribe-1    ] DEBUG ReactorSession                 - Connection state: UNINITIALIZED
2020-08-06 16:06:41,429 [subscribe-1    ] DEBUG EventHubReactorAmqpConnection  - Get or create producer for path: 'testhub'
2020-08-06 16:06:41,430 [subscribe-1    ] INFO  AzureTokenManagerProvider      - Creating new token manager for audience[amqp://testcamel.servicebus.windows.net/testhub], resource[testhub]
2020-08-06 16:06:41,486 [single-2       ] DEBUG SessionHandler                 - onSessionLocalOpen connectionId[MF_8b659d_1596722801357], entityName[testhub], condition[Error{condition=null, description='null', info=null}]
2020-08-06 16:06:41,489 [single-2       ] INFO  ConnectionHandler              - onConnectionBound hostname[testcamel.servicebus.windows.net], connectionId[MF_8b659d_1596722801357]
2020-08-06 16:06:41,737 [single-2       ] INFO  ConnectionHandler              - onConnectionRemoteOpen hostname[testcamel.servicebus.windows.net:5671], connectionId[MF_8b659d_1596722801357], remoteContainer[1f9c0abd70904ba4b3501556bd18fa64_G4]
2020-08-06 16:06:41,737 [single-2       ] DEBUG ReactorConnection              - connectionId[MF_8b659d_1596722801357]: Connection state: ACTIVE
2020-08-06 16:06:41,737 [single-2       ] INFO  EventHubConnectionProcessor    - namespace[testcamel.servicebus.windows.net] entityPath[testhub]: Channel is now active.
2020-08-06 16:06:41,737 [single-2       ] INFO  SessionHandler                 - onSessionRemoteOpen connectionId[MF_8b659d_1596722801357], entityName[testhub], sessionIncCapacity[0], sessionOutgoingWindow[2147483647]
2020-08-06 16:06:41,737 [single-2       ] DEBUG ReactorSession                 - Connection state: ACTIVE
2020-08-06 16:06:41,739 [single-2       ] INFO  ReactorConnection              - Setting CBS channel.
2020-08-06 16:06:41,745 [single-2       ] DEBUG ReactorSession                 - Connection state: UNINITIALIZED
2020-08-06 16:06:41,752 [single-2       ] INFO  ReactorConnection              - Emitting new response channel. connectionId: MF_8b659d_1596722801357. entityPath: $cbs. linkName: cbs.
2020-08-06 16:06:41,752 [single-2       ] INFO  stResponseChannel<cbs-session> - namespace[MF_8b659d_1596722801357] entityPath[$cbs]: Setting next AMQP channel.
2020-08-06 16:06:41,752 [single-2       ] INFO  stResponseChannel<cbs-session> - namespace[MF_8b659d_1596722801357] entityPath[$cbs]: Next AMQP channel received, updating 0 current subscribers
2020-08-06 16:06:41,763 [single-2       ] DEBUG SessionHandler                 - onSessionLocalOpen connectionId[MF_8b659d_1596722801357], entityName[cbs-session], condition[Error{condition=null, description='null', info=null}]
2020-08-06 16:06:41,764 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,765 [single-2       ] DEBUG SendLinkHandler                - onLinkLocalOpen connectionId[MF_8b659d_1596722801357], linkName[cbs:sender], localTarget[Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}]
2020-08-06 16:06:41,766 [single-2       ] INFO  ReceiveLinkHandler             - onLinkLocalOpen connectionId[MF_8b659d_1596722801357], linkName[cbs:receiver], localSource[Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}]
2020-08-06 16:06:41,785 [single-2       ] INFO  SessionHandler                 - onSessionRemoteOpen connectionId[MF_8b659d_1596722801357], entityName[cbs-session], sessionIncCapacity[0], sessionOutgoingWindow[2147483647]
2020-08-06 16:06:41,785 [single-2       ] DEBUG ReactorSession                 - Connection state: ACTIVE
2020-08-06 16:06:41,785 [single-2       ] INFO  SendLinkHandler                - onLinkRemoteOpen connectionId[MF_8b659d_1596722801357], linkName[cbs:sender], remoteTarget[Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}]
2020-08-06 16:06:41,785 [single-2       ] INFO  stResponseChannel<cbs-session> - namespace[MF_8b659d_1596722801357] entityPath[$cbs]: Channel is now active.
2020-08-06 16:06:41,785 [single-2       ] DEBUG SendLinkHandler                - onLinkFlow connectionId[MF_8b659d_1596722801357], linkName[cbs:sender], unsettled[0], credit[100]
2020-08-06 16:06:41,785 [single-2       ] INFO  ReceiveLinkHandler             - onLinkRemoteOpen connectionId[MF_8b659d_1596722801357], linkName[cbs:receiver], remoteSource[Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}]
2020-08-06 16:06:41,785 [single-2       ] INFO  stResponseChannel<cbs-session> - namespace[MF_8b659d_1596722801357] entityPath[$cbs]: Channel is now active.
2020-08-06 16:06:41,786 [single-2       ] DEBUG RequestResponseChannel<cbs>    - Scheduling on dispatcher. Message Id 1
2020-08-06 16:06:41,786 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,789 [single-2       ] DEBUG SendLinkHandler                - onLinkFlow connectionId[MF_8b659d_1596722801357], linkName[cbs:sender], unsettled[0], credit[99]
2020-08-06 16:06:41,812 [single-2       ] DEBUG RequestResponseChannel<cbs>    - Settling message: 1
2020-08-06 16:06:41,815 [single-2       ] INFO  ActiveClientTokenManager       - Scheduling refresh token task. scopes[amqp://testcamel.servicebus.windows.net/testhub]
2020-08-06 16:06:41,821 [single-2       ] DEBUG ReceiveLinkHandler             - onDelivery connectionId[MF_8b659d_1596722801357], linkName[cbs:receiver], updatedLinkCredit[0], remoteCredit[0], remoteCondition[Error{condition=null, description='null', info=null}], delivery.isPartial[false]
2020-08-06 16:06:41,822 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,822 [single-2       ] INFO  ReactorSession                 - Creating a new sender link with linkName testhub
2020-08-06 16:06:41,826 [single-2       ] DEBUG ReactorSender                  - [testhub] Connection state: UNINITIALIZED
2020-08-06 16:06:41,827 [single-2       ] DEBUG ReactorSender                  - Token refreshed: ACCEPTED
2020-08-06 16:06:41,828 [single-2       ] DEBUG SendLinkHandler                - onLinkLocalOpen connectionId[MF_8b659d_1596722801357], linkName[testhub], localTarget[Target{address='testhub', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}]
2020-08-06 16:06:41,848 [single-2       ] INFO  SendLinkHandler                - onLinkRemoteOpen connectionId[MF_8b659d_1596722801357], linkName[testhub], remoteTarget[Target{address='testhub', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}]
2020-08-06 16:06:41,848 [single-2       ] DEBUG ReactorSender                  - [testhub] Connection state: ACTIVE
2020-08-06 16:06:41,852 [single-2       ] DEBUG EventHubProducerAsyncClient    - Sending batch with size[2] to be distributed round-robin in service.
2020-08-06 16:06:41,855 [single-2       ] DEBUG EventHubReactorAmqpConnection  - Get or create producer for path: 'testhub'
2020-08-06 16:06:41,855 [single-2       ] DEBUG ReactorSession                 - linkName[testhub]: Returning existing send link.
2020-08-06 16:06:41,860 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,860 [single-2       ] DEBUG ReactorSender                  - Credits on link: 300
2020-08-06 16:06:41,860 [single-2       ] DEBUG SendLinkHandler                - onLinkFlow connectionId[MF_8b659d_1596722801357], linkName[testhub], unsettled[0], credit[300]
2020-08-06 16:06:41,860 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,861 [single-2       ] DEBUG ReactorSender                  - entityPath[testhub], linkName[testhub], deliveryTag[7d8f336858f14565be5b116433d981a8]: Sent message
2020-08-06 16:06:41,861 [single-2       ] DEBUG ReactorSender                  - Credits on link: 299
2020-08-06 16:06:41,861 [single-2       ] DEBUG SendLinkHandler                - onLinkFlow connectionId[MF_8b659d_1596722801357], linkName[testhub], unsettled[1], credit[299]
2020-08-06 16:06:41,861 [single-2       ] DEBUG DispatchHandler                - Running task for event: %s
2020-08-06 16:06:41,897 [single-2       ] DEBUG SendLinkHandler                - onDelivery connectionId[MF_8b659d_1596722801357], linkName[testhub], unsettled[1], credit[299], deliveryState[Accepted{}], delivery.isBuffered[false], delivery.id[7d8f336858f14565be5b116433d981a8]
2020-08-06 16:06:41,897 [single-2       ] DEBUG ReactorSender                  - entityPath[testhub], linkName[testhub], deliveryTag[7d8f336858f14565be5b116433d981a8]: process delivered message
done all
Thread: publish-3
2020-08-06 16:06:46,393 [main           ] INFO  EventHubConnectionProcessor    - Upstream connection publisher was completed. Terminating processor.
2020-08-06 16:06:46,393 [main           ] INFO  EventHubConnectionProcessor    - namespace[testcamel.servicebus.windows.net] entityPath[testhub]: AMQP channel processor completed. Notifying 0 subscribers.
2020-08-06 16:06:46,394 [main           ] INFO  EventHubReactorAmqpConnection  - connectionId[MF_8b659d_1596722801357]: Disposing of connection.
2020-08-06 16:06:46,394 [main           ] INFO  ReactorConnection              - connectionId[MF_8b659d_1596722801357]: Disposing of ReactorConnection.
2020-08-06 16:06:46,395 [main           ] INFO  EventHubConnectionProcessor    - namespace[testcamel.servicebus.windows.net] entityPath[testhub]: Channel is disposed.
2020-08-06 16:06:46,395 [main           ] INFO  ReactorConnection              - connectionId[MF_8b659d_1596722801357]: Removing session 'testhub'
2020-08-06 16:06:46,395 [main           ] INFO  ReactorSession                 - sessionId[testhub]: Disposing of session.
2020-08-06 16:06:46,396 [main           ] INFO  ReactorConnection              - connectionId[MF_8b659d_1596722801357]: Removing session 'cbs-session'
2020-08-06 16:06:46,396 [main           ] INFO  ReactorSession                 - sessionId[cbs-session]: Disposing of session.

While I get why the done subscription method which is printing done all uses the publish thread from publishOn, I don't get why for example ReactorConnection initiated from thread subscribe-1 that was set from subscribeOn(Schedulers.newSingle("subscribe")), although I was reading a lot of info about publishOn vs subscribeOn online, I fail to understand how can use them for my benefit in the context of AzureAsync clients, would it possible if you can clarify how would be the optimal way to handle custom Schedulers here?
Also, from the logs, I see EventHubProducerAsyncClient is sending the events from single-2  thread, is this because of the AMQP connection initiated on a single thread Scheduler?
Thank you,
Omar

Thanks for filing the question, @omarsmak.  @conniey from the event hubs sdk team will follow up shortly.

Thank you @joshfree .
@conniey I have a third question regarding the EventProcesserClient, looking at this line here, as I understood, it will create a single thread to consume from the event hub for a consumer group, isn't? However, what if I want to initialize more threads for one consumer group, where every thread will act as a consumer task that will consume from corresponding event hub partition? I guess this won't be possible in the event processer client since I don't see possibility to configure the scheduler there.

The reason we use single is that the underlying proton-j implementation isn't thread-safe. So we wanted to force dispatching work to proton-j onto a single scheduler. When events are emitted though, they should be via an elastic scheduler.

Thanks @conniey for the answer. Do you have also an input about the other two questions that I have originally posted?
Thank you

nevermind, I think I figured out.
Thank you


Replace mockery to sinon library in mock-run which is used for Tasks Unit Tests

This PR includes changes that are made to the azure-pipelines-task-lib to replace the Mockery package with Sinon. Despite not utilizing the vulnerable method in Mockery (CVE-2022-37614 in Mockery 2.1.0), it was decided to make this change because Mockery is outdated. Sinon appeared to be the most suitable package. The changes proposed in this PR affect the unit tests of Pipeline Tasks, and some tasks may need adjustments when updating to the new version of task-lib.
Changelog:

Replaced Mockery with Sinon: Sinon has been added as a new dependency, replacing Mockery in the project.
Refactoring TaskMockRunner: TaskMockRunner has been refactored to accommodate the changes brought by the transition from Mockery to Sinon. The new methods have been adjusted accordingly.

Impact of Changes:
The changes require additional alterations in several situations when updating Pipeline Tasks to the new version of task-lib:

Relative Path: If a relative path was used for mocking a local module, changes are required.
Import Aliasing: If import aliasing was used in the task implementation, and it is being mocked in unit tests, changes are needed.
Initialization Order: Changes may occur because the sequence in which you initialize the task-lib and set inputs in tests is important. Setting inputs should go before initialization of task-lib.
Module Clone and Recursive Calls: To maintain the original behavior within a mocked function in Sinon, you need to add module's clone, otherwise it may lead to recursive calls.
Localization Changes: If a localized error message was used, it will now go through a mocked loc function and hence, get a mocked localization, not the real one.

Testing:
The changes were thoroughly tested using the unit tests of tasks under our ownership in the Pipeline Tasks repository. Out of around 200+ tasks, half are under our ownership. Out of these, not all are affected by these changes. Around 40-50 tasks that were affected have been tested.
Documentation:
After the PR gets merged, the documentation for the TaskMockRunner class should be updated to reflect the new and refactored methods and the usage of Sinon.js over Mockery. It should provide examples of how to use the new methods to accommodate the changes made.
Note:
This PR doesn't directly handle the localization changes, module initialization, relative path adjustments, recursive calls, and import aliasing. A separate migration guide will be released to help others navigate the necessary modifications in their tasks.

:eyes: eagerly waiting for this to be merged <3 :)

Fixes: #955


Productionize hm-miner for RockPi

A proof of concept was demonstrated but production ready code must be delivered: https://github.com/NebraLtd/hm-miner/tree/marvinmarnold/rockpi

Closed by https://github.com/NebraLtd/helium-miner-software/pull/245


Support defining bucket ownership

Is your feature request related to a problem? Please describe.
The S3 source validates that an S3 bucket is owned by the same account as the SQS queue. This can protect against reading from buckets in unknown accounts. This approach uses S3's bucket ownership verification.
Pipeline authors can disable this by setting disable_bucket_ownership_validation to true. This completely disables the bucket ownership validation. There is no way to validate that buckets are owned by specific accounts other than the SQS queue account.
Describe the solution you'd like
Provide two options for bucket validation:

bucket_owners - A simple map of bucket name to expected owner.
default_bucket_owner - A scalar value with an accountId to use for any bucket not in the map above. If specified, this will override the SQS accountId.

s3:
  sqs:
      queue_url: "https://sqs.us-east-1.amazonaws.com/000000000000/MyQueue"
  bucket_owners:
    my-bucket-01:<PHONE_NUMBER>12
    my-bucket-02:<PHONE_NUMBER>9
  default_bucket_owner:<PHONE_NUMBER>11

In the example above, the S3 source will set an expectation that my-bucket-01 is owned by<PHONE_NUMBER>12. It will expect that my-bucket-02 is owned by<PHONE_NUMBER>9. It would expect that any other bucket (say my-bucket-02) is owned by<PHONE_NUMBER>11. It will never expect any bucket to be owned by the SQS queue -<PHONE_NUMBER>00.
Describe alternatives you've considered (Optional)
The existing functionality allows for skipping validation. So it is possible that no additional functionality is needed. But, then there is no bucket validation. However, the S3 documentation recommends validation: We recommend using bucket owner condition whenever you perform a supported S3 operation and know the account ID of the expected bucket owner.
Additional context
Original PR adding the current functionality: #1526

Alternatively we should consider option where customer wants to disable this check completely instead of specifying account IDs. We give control to customer to do this based on their deployment needs. Like just 1 knob s3-bucket-sqs-ownership-check: disable.

Alternatively we should consider option where customer wants to disable this check completely instead of specifying account IDs. We give control to customer to do this based on their deployment needs. Like just 1 knob s3-bucket-sqs-ownership-check: disable.

@sharraj , This is already available as the disable_bucket_ownership_validation configuration. However, this is not recommended as S3 suggests checking the bucket owner to improve security.
https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/s3/#configuration


Web support

Any plan to support web platform?

I just tried to add web support but unfortunately it does not work yet due to this Flutter issue. As soon as the issue is resolved I'll release it.

almost 1.5 years later and the Flutter issue is still not resolved.

Using this inside Flutter Web project. Is working fine. I think this issue can be closed.
You can try out here: https://app.ehwplus.com/#/features
After two lines magic begins to happen.

Still not working on Flutter HTML renderer. Text presents just expanded without any button

Still not working on Flutter HTML renderer. Text presents just expanded without any button.
Any Solution to the this yet. I have the same issue?


fix amount format with 8 decimal place

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind backend-change
/kind ui-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #1690
Special notes for your reviewer:
Does this PR introduce a user-facing change?:


tests

@rultor merge

@rultor merge

@driver733 OK, I'll try to merge now. You can check the progress of the merge here

Coverage remained the same at 10.594% when pulling 03af53b62b2b0965b81f76b4bc393f861662f650 on tests into 2ad80953cfc72b1a7dba5cddd010c703e96da5d4 on master.

@rultor merge

@driver733 Done! FYI, the full log is here (took me 5min)

Coverage remained the same at 10.594% when pulling 03af53b62b2b0965b81f76b4bc393f861662f650 on tests into 2ad80953cfc72b1a7dba5cddd010c703e96da5d4 on master.


Allow to set the active Tab in JSX declaration

Problem description
When using JSX it is not possible to declare the active Tab in a TabFolder. Currently one has to select the active tab after the JSX declaration in regular js/ts code. This also has the unwanted side effect that the first tab always runs thru its appear callback although it will not be shown to the user.
Expected behavior
Allow to declare the selected tab in the tab folder declaration. The snippet below sketches such a feature.
Environment

Tabris.js version: 3.x

Code snippet
<TabFolder>
  <Tab />
  <Tab selected={true}/>
</TabFolder>

Variation:
<TabFolder selection='#two'>
  <Tab id='one'/>
  <Tab id='two'/>
</TabFolder>

I looked into it. There are issues with both variations, assuming we want to keep the JSX API identical to the Widget API (which i do).
Tab property selected:

Allows contradicting declarations
Redundant to TabFolder selection property
Unclear behavior when Tab is parentless. It would logically be forced to be false, in which case we still can't set the selection in JSX.

TabFolder property selection with selectors.

Asymmetrical API -> set selector, but get tab?
What if no Tab matches the selector?
What if a tab is added/removed and thereby the match changes?

Best i could come up with is a separate (additional) TabFolder property selectionIndex. It can still only be used to select already added tabs, but we can ensure that JSX adds the tabs before it sets the value.

The proposal for selectionIndex sounds good. It would also be a good addition in general where the index of the selected tab would be more important than the tab itself.

Implemented.


SUMO crashes in scenario's with a high density of cars

The problem is probably that SUMO uses a "MinGap" distance to prevent collisions while we use an amount of time. In situations with a high density of cars, vehicles will drive very slow, still keeping 2.5 seconds between each car, but driving closer together then the minimal gap allows for.
This causes SUMO to take over and the vehicle will start brake to assure the minimal gap. Since we do not account for this slowdown in our calculations, vehicles will eventually overlap (collide).

This issue can be fixed by disabling SUMO interference. The MinGap value is defined in rou.xml and is currently set to 0, Fixing this bug.


你这个好像iOS版本比较低，我就自己写了一个

然后就不知道怎么调用原生的了~~~

兄弟吃肉留口汤啊

Supporting the promotion of your own open source projects, if there is a better solution, it is also welcome to discuss, but there is no meaning without the substance.


JSLint error on Side effect import

Describe the bug
JSLint error on Side effect import:
import './mod.js';

JSLint - [JSLint was unable to finish] Expected '{' and instead saw './mod.js'.

Jslint edition:
vscode-jslint v2023.4.29
Expected behavior
No error

added grammar to recognize side-effect import-statement and not throw a syntax-error
currently still raise warning but can be suppressed now:

import './mod.js'; //jslint-ignore-line


Refactor the "is_streaming..." logic to be RPC centric

Currently a task class has an is_streaming_output_task method to determine the output-streamingess of a task. But tasks will now define unary + streaming flavors of their inputs and outputs, so the "streamingness" is now a property of each RPC that a task supports.
The CaikitRPC class should expose its own streamingness instead.

Should be fixed by https://github.com/caikit/caikit/pull/303


Consider adding Bandit as pre-commit hooks

Wait until we get some user feedback/discuss with the team before piling on more linting tools.
For reference:

https://github.com/PyCQA/bandit # Checks for know security problems

This ticket use to be about considering Black and Bandit, but we already added Black as an optional linting tool (along with Pylint and no linter).
Bandit is an interesting tool, and would be relatively easy to install as a pre-commit hook. All that would be required is to copy the contents of this file (https://github.com/PyCQA/bandit/blob/main/.pre-commit-hooks.yaml) into the python-project-template .pre-commit-hooks.yaml file (https://github.com/lincc-frameworks/python-project-template/blob/main/python-project-template/.pre-commit-config.yaml.jinja) in the appropriate place.
However, it would be good to include some documentation about it so the user knows what it is. And it would likely make sense to ask the user if they are interested in having that pre commit hook installed at all.
Bandit is similar to linting tools in that it has a set of tests that it executes against the code base, and some of those test might be really annoying for the user, or us :) And like linting tools, it is configurable. So an additional unit of work would be to add at least a placeholder in the pyproject.toml file that will exclude a test - just so that the end user will know where to add those.

[ ] Determine if we want to include this Bandit (and if so, do the following)
[ ] Add it to pre-commit-hooks.yml file
[ ] Probably make it optional with a question in the copier.yml file
[ ] Add documentation to the README about Bandit, and where to go for more info
[ ] Add a stub in pyproject.toml so that people know where to go to customize it.

Closing this out since it's been around for more than a year and no one seems to want it.


the modal will cover navigation

hi,when i use modal with react-navigation,the modal will cover navigation,how can i set the modal's layer

@onfuns Hello!!.. do you have any conclusion? I'm facing a similar issue with react-navigation

Why was this closed? Facing this exact issue right now.

@phbn a "modal", by definition, will cover the entire app screen. See the latest comments on #39


Adds unwanted line breaks to html output

HTML output seems to add line breaks to the output code. Not  tags, but actual line endings. While whitespace is ignored by html, when pasting into wordpress, the new lines are turned into line breaks which affects the flow of text.

We originally developed this to convert to Markdown (which is sensitive to whitespace). HTML renderers should be more forgiving. While this is probably a bug with Wordpress, I'll check it out when I get a chance.

Yes, this is a result of the WordPress formatting. Line breaks are converted to either <br> or <p> tags. Was very excited about this extension for being able to export clean html for WordPress, but the line breaks are a deal breaker.

If we take the view that we're just converting the content and marking it up with either Markdown or HTML, then perhaps the right thing to do is not to do any line wrapping. If folks really want to wrap HTML, they can use HTML Tidy for that.

Planning to change to default no-wrap (and add an option to wrap HTML output). Will ping this bug and mark fixed when the fix is live.

Fixed in v1.0β4. Default is now not to wrap HTML text, with option to wrap.

fixed in v1.0β4.

Sounds good. If you break it, don't forget to file a bug!


Support for Pulsar 2.4.0 features

These are changes required for supporting the new negative acknowledgements and delayed/scheduled delivery features in Pulsar 2.4.0.

I've set this as draft only because we can't release until the official Pulsar 2.4 release is out. Review is welcome though.

@sksamuel This is ready for review, except for one issue: Pulsar actually validates JSON schemas in 2.4 so we need to provide a proper JSON schema. This makes me think we should actually be generating a JSON schema for Pulsar to validate. For now I just set it to accept any JSON.

poke @sksamuel can it be merged?

Yeah sorry I've been busy.
On Mon, 22 Jul 2019 at 10:05, Alexandre DUVAL<EMAIL_ADDRESS>wrote:

poke @sksamuel https://github.com/sksamuel can it be merged?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sksamuel/pulsar4s/pull/44?email_source=notifications&email_token=AAFVSGQUJ3NQPPBOEHU4HXDQAXEDTA5CNFSM4HDFARI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2QHCJQ#issuecomment-513831206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFVSGRWGMUYUOZ2PVIINM3QAXEDTANCNFSM4HDFARIQ
.

@sksamuel poke.

@sksamuel (just a reminder, do not take it as spam :p) poke.

@gmethvin can you release a new version of the package? :)

@gmethvin when you're ready for the release let me know and I will release to maven central.

@sksamuel I think we can do a release now. I was trying to decide if it was worth merging #67 as well, but that requires some more potentially breaking changes (e.g. dropping Scala 2.11 support).

@sksamuel?

2.4.0 is now released.
On Fri, 9 Aug 2019 at 07:01, Alexandre DUVAL<EMAIL_ADDRESS>wrote:

@sksamuel https://github.com/sksamuel?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sksamuel/pulsar4s/pull/44?email_source=notifications&email_token=AAFVSGXJEPGXOSTTQGOOTJLQDVMBTA5CNFSM4HDFARI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD36O54A#issuecomment-519892720,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFVSGQNAACNH2ABJKND77LQDVMBTANCNFSM4HDFARIQ
.

@sksamuel @gmethvin  yay, many thanks!

@sksamuel can you ping me when it's available on maven central?

Should be up there in a couple of minutes, it's already been marked as
released in their ui
On Fri, 9 Aug 2019 at 08:18, Alexandre DUVAL<EMAIL_ADDRESS>wrote:

@sksamuel https://github.com/sksamuel can you ping me when it's
available on maven central?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sksamuel/pulsar4s/pull/44?email_source=notifications&email_token=AAFVSGQJCELY7TLWWRF6VEDQDVVDJA5CNFSM4HDFARI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD36USDA#issuecomment-519915788,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFVSGTAYYVS5BGVQXRFFV3QDVVDJANCNFSM4HDFARIQ
.


HTTP: list keys support

Updated PR from #147 (CLIENTS-820) to address https://github.com/doctrine/cache/issues/206

@christophermancini Yes, we're aware of the performance caveat for listing keys. We don't do this in production, but in our dev environment, we do use it to clean up before/after testing.

:tada:


[Pagination] Example passes string for pageSize, breaking getRangeLabel

Bug, feature request, or proposal:
Bug
What is the expected behavior?
When I set page size to 1 then go to next page, it should changes from 1 - 1 of 100 to 2 - 2 of 100. Then next page again it should be 3-3 of 100
When I set page size to 2 then go to next page, it should changes from 1 - 2 of 100 to 3 - 4 of 100. Then next page again it should be 5-6 of 100
What is the current behavior?

When I set page size to 1 then go to next page, it changes from 1 - 1 of 100 to 2 - 20 of 100. Then next page again it should be 3-30 of 100
When I set page size to 2 then go to next page, it changes from 1 - 2 of 100 to 3 - 22 of 100. Then next page again it should be 5-42 of 100
What are the steps to reproduce?
https://material.angular.io/components/paginator/examples
What is the use-case or motivation for changing an existing behavior?
I am just trying to test it for the first time
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 5.0.3
Angular Material  5.0.0-rc.1
Is there anything else we should know?
Plunkr example is not working too(In most of the time for other examples too actually)
https://github.com/angular/material.angular.io/issues/334

The example takes the form field's value for the page size and passes it to the MatPaginator. However, it's being passed as a string, which is fine for all the operations the paginator does (e.g. multiply page size by page index) but getRangeLabel does startIndex + pageSize which coerces to a string rather than uses the size as a number.
Will need to fix this by using coerceNumberProperty

This fix is available in last build? I have the same error with the last version.


[Ember-Migration] [Tests] Cards Component

Issue
Closes #351
What is the change?

Added tests for card component

Is Development Tested?

[x] Yes

Due to PR being stale, the conflicts are being not resolved, therefore continuing the work in separate PR.
PR -> #369


Improve UX while widget loads

Show a spinner or some animation during widget loading to improve user experience.
Explore if there are ways to improve load times

Added spinner in 3.0.0


[cleanup][broker] PIP 45: Deprecate zookeeper settings

Motivation
To deprecate the zookeeper settings. PIP 45 introduced a unified metadata store API for Pulsar,
so we should make the metadata-related configuration start with metadataStore, not zooKeeper/ZK.
Modifications

Change managedLedgerMaxUnackedRangesToPersistInZooKeeper to managedLedgerMaxUnackedRangesToPersistInMetadataStore
Change ML config maxUnackedRangesToPersistInZk to maxUnackedRangesToPersistInMetadataStore.

Verifying this change

[x] Make sure that the change passes the CI checks.

Does this pull request potentially affect one of the following parts:

The default values of configurations: (yes)

Documentation

[x] doc-required
(Your PR needs to update docs and you will update later)

Compatibility
Introduce getManagedLedgerMaxUnackedRangesToPersistInMetadataStore method to compatible with previous configurations.

Need to update broker.conf, too.

Fixed, thanks to you.

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


Implement endpoint to get all users

Authentication
The endpoint requires a valid JWT token for authentication.
If the JWT token is missing or invalid, the endpoint should return a 401 Unauthorized status code.
Retrieve List of Users:
When a valid JWT token is provided, the endpoint should return a list of users.
The list should include user details such as username, email, and other relevant information.
Pagination:
The endpoint should support pagination to limit the number of users returned per request.
It should accept parameters for 'page' and 'size' to specify the page number and the number of users per page, respectively.
The default page should be 0, and the default page size should be 20.
Sorting:
Users can be sorted based on different attributes such as username, email, or any other relevant field.
The endpoint should accept a 'sort' parameter to specify the sorting criteria.
The default sorting direction should be ascending, but it should support both ascending and descending order.
The default sorting field should be number, but it should support any field.
Error Handling:
The endpoint should handle errors gracefully and provide meaningful error messages.
If there are validation errors in the parameters (e.g., invalid page number or invalid sorting criteria), the endpoint should return a 400 Bad Request status code with details on the error.
Security:
The endpoint should ensure that only authorized users can access the list of users.
The JWT token should be verified, and unauthorized access should be denied.

Pending to review endpoint spec.


Improve performance when reading sectors

This addresses item 1. in #1343.

Just thought that I should also test this on a Pi Zero, not just on a Pi 4. On the Zero optimization 2. in #1343 may (also) be interesting, even though it is not useful for the Pi 4. Making this PR to a draft until I have results on a Pi Zero.

On the Pi Zero there is also a slight improvement, and it definitely did not get slower.

So about 1% increased read throughput on either RPi model ?

On the Pi Zero you do not really see a difference. On the Pi 4 it is about 1%. Not much, but anyway: More speed because of less code ;-).


Slide-out in traverse tries to delete the current branch but fails

Hi, this issue is marked for 3.6.1. I'm currently using 3.7.0 and still have this problem, is it expected or should I create a new issue?

Whoops it shouldn't occur anymore... lemme check 🤔

Hmmm I cannot really reproduce the issue... can you provide a screen recording? is the problem deterministic, or just happens occasionally?

Whoops okay I see! that's a different issue indeed, lemme close this one and open a dedicated one...


How to increase post_max_size?

Issue Type

Bug Report / Support Request

Your Environment

Vagrant 1.9.7
"VirtualBox `vboxmanage --version`"
'ansible' is not recognized as an internal or external command,
operable program or batch file.

Your OS

Windows (7 Professional)

Summary
I'm trying to use Adminer to upload a database export that is 70MB. Since the post_max_size is set to 32M, I'm getting the following error when I try to import the file:
Too big POST data. Reduce the data or increase the 'post_max_size' configuration directive.

Things I've Tried

Adding php_post_max_size: "100M" to config.yml and re-provisioning
Modifying line 62 of provisioning\roles\geerlingguy.php\defaults\main.yml from php_post_max_size: "32M" to php_post_max_size: "100M" and re-provisioning
SSH-ing into the VM and changing post_max_size: "32M" to post_max_size: "100M" for the following files (and executing sudo service apache2 restart to reboot the server):

/etc/php/7.1/apache2/php.ini
/etc/php/7.1/cli/php.ini
/etc/php/7.1/fpm/php.ini

@thom8 Thanks for the reply.
I did try that, but even after provisioning the box, the old settings were still in effect.
I've discovered that if I destroy and rebuild the box, my settings will take effect.
Any idea how I can get the settings to take effect without destroying the rebuilding the box?

you could try vagrant reload --provision which basically restarts the VM, then runs the provisioning.
Otherwise something is not right with your setup if the config files aren't updated after a normal provision.

Just to note to @ssteigen that by default apache is passing requests to php-fpm so you should restart PHP-FPM service if you manually edit the php.ini file not apache the apache service.

@ssteigen and in addition to what @thom8 said, if you update your config.yml (or local.config.yml) file, you can also run vagrant provision on a running VM, and it should do all the correct steps to modify php.ini and restart php-fpm automatically.
I'm closing this out as I think between @thom8, @FinBoWa, and this response, you should be covered for making changes more dynamically.


tree from requirements files?

I am having a problem resolving conflicting versions of packages from several requirements.txt files needed to setup a venv.
Is there a way to use pipdeptree to show the dep tree from a list of requirements.txt type files?
so for pip I run something like
pip install -r requirements.txt -r test-requirements.txt -r http://other-repo/global-requirements.txt -r http://another/upper-constraints.txt
would be nice to run pipdeptree and pass all of those files in and get a dump of the reqs and what file each of the req comes from to help track down the conflicts.

Hi,
pipdeptree can't use requirement files as input as it's not a dependency resolver and completely relies on pip for the list of dependencies. So it can only be used after the packages are installed in an environment.
Have you tried using the new version of pip with improved dependency resolver? It may not meet your exact requirements but I think it should be able to prevent conflicting packages from getting installed.
You may also check  pipgrip, poetry (I am not quite familiar with them though)

Hi,
pipdeptree can't use requirement files as input as it's not a dependency resolver and completely relies on pip for the list of dependencies. So it can only be used after the packages are installed in an environment.
Have you tried using the new version of pip with improved dependency resolver? It may not meet your exact requirements but I think it should be able to prevent conflicting packages from getting installed.
You may also check  pipgrip, poetry (I am not quite familiar with them though)

As detailed above this would be out of scope for this project.


55 3.14 send emails ui

Fixed new lines in Emails + Fixed small layout errors

Coverage decreased (-0.1%) to 99.857% when pulling 9c9855da1c5bde19e7be7887ec2131450a6c30ab on 55_3.14_sendEmailsUI into 466db106a16882c2beafd87d1361d96dc1e1aa6b on dev.

This PR will be closed and not merged, all changed that where pushed to this branch after the last PR was merged are now in PR #268 .


is it possible to customer c3.js to meet my new type of chart requirements?

I have a requirement of the new graphs Zoomable Sunburst With Updating Data (http://bl.ocks.org/kerryrodden/477c1bfb081b783f80ad), Heat Map (http://jsfiddle.net/indiemaps/gzPDU/), Zoomable Circle Packing chart (http://bl.ocks.org/mbostock/7607535), Co-occurrence Matrix  (http://bost.ocks.org/mike/miserables/)  Is there is any possibility for me to customize c3.js to yield these charts?

I also have a requirement of graph Zoomable Sunburst With Updating Data . How can I use c3js to add this chart ?

Sunburst charts are super useful!
Consider if you will parent child groupings... for things like:

Fruits (25%)
-- Apple (20%)
-- Banana (20%)
-- Orange (20%)
-- Cherry (20%)
-- Strawberry (20%)
Vegetable (25%)
-- Lettuce (33%)
-- Brussels Sprouts (33%)
-- Carrot (33%)
Meat (25%)
-- Pork (33%)
-- Beef (33%)
-- Chicken (33%)
Dairy (25%)
-- Yogurt (25%)
-- Cheese (25%)
-- Ice Cream (25%)
-- Milk (25%)

Here a sunburst would allow you to do an inner ring with (Fruit, Vegetable, Meat, Dairy) and an outer ring of all the rest of them but segmented off to match their parents in the inner ring.
The following example is simplified and shows age ranges (larger groups ex 18-34, and smaller child groups 18-24, 25-29, 30-34)


chore(deps): update terraform terraform-ibm-modules/cos/ibm to v6.11.2

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/cos/ibm (source)
module
minor
6.10.0 -> 6.11.2

Release Notes

terraform-ibm-modules/terraform-ibm-cos (terraform-ibm-modules/cos/ibm)
v6.11.2
Compare Source
Bug Fixes

deps: update terraform-module (#429) (d7bf2fb)

v6.11.1
Compare Source
Bug Fixes

add a description to auth policy created by this module (#432) (70aec00)

v6.11.0
Compare Source
Features

update required ibm provider version to >= 1.56.1 (#428) (ecc6ca6)

v6.10.1
Compare Source
Bug Fixes

added workaround for known provider issue (#426) (62b27a8)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

:tada: This PR is included in version 7.6.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Multi-Monitor Support (3+ Monitors)

Doesn't work with more than 2 monitors.

This release supports multimonitor support
https://github.com/vhanla/TaskbarDock/tree/v0.1.62


response classes updated with current json responses

Repository.cs basic re-factor.

Coverage increased (+6.14%) to 76.14% when pulling 9fe8154e0881be3f0f8e8a004d0d4c7275beb590 on rodkings:master into 0fe17af4125863376ad3f1a43c9f2573a8cd92c6 on tparnell8:master.

Coverage increased (+6.14%) to 76.14% when pulling ef07db2298ada8e1fa4eddb447d7f935fc96b356 on rodkings:master into 0fe17af4125863376ad3f1a43c9f2573a8cd92c6 on tparnell8:master.


Github connection pending handshake

Github connection stuck in pending handshake and service creation failed with "Failed to retrieve the latest commit from your source repository. Be sure you configure your service with a valid connection to your GitHub repository" message

Yes, because for now terraform didn't support github connection directly Please check https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/apprunner_connection
For now, You have to configure your Github connection manually.

As per the doc "After creation, you must complete the authentication handshake using the App Runner console." but complete handshake button is greyed out and it starts getting deleted as soon as GitHub connection is created


Unable to configure the closing of the browser when finishing debug

Hello,
I have an API in .NET 5 that i configured to open the browser with swagger everytime i start a debugging session in VS Code. Now when I stop debugging i would like for this window to close was well, otherwise i will end up with a lof of windows that i have to close manually. I have this behavior in Visual Studio.
Is possible to have it in VS Code?
Thank you in advance
{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/src/WebApi/bin/Debug/net5.0/${workspaceFolderBasename}.WebApi.dll",
            "args": [],
            "cwd": "${workspaceFolder}/src/WebApi",
            "stopAtEntry": false,
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+http://\\S+:([0-9]+)",
                "uriFormat": "http://localhost:%s/swagger"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            },
            "justMyCode": true,
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        },
    ]
}

VS Code out of the box does not have a feature to close a tab or window in an external application.

Ok, thank you @weinad. Is okay for me to add it was a "Feature request" ?

I've added the "feature request" label.
Since the serverReadyAction is implemented as a small built-in extension (https://github.com/microsoft/vscode/tree/main/extensions/debug-server-ready), I see an excellent opportunity for anyone interested to build a better serverReadyAction extension or contribute a PR for the existing.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


New Netatmo integration looses entities after HA restart

The problem
Since the recent refactoring of the Netatmo integration in 0.105 the Netatmo entities often show up as "Unavailable" after a restart of HA. To fix the problem I need to remove the Netatmo integration and add it again. The problem does not appear after every restart of HA. Usually if I restart HA several times shortly after I fixed the problem, the problem does not appear again. However, when I restart HA after it was running for a few hours the entities always disappear. If the problem once appeared it wont go away by a restart of HA, so really only removing and adding the Netatmo integration fixes it.
I am not sure, if this problem is related to the fact that I have to rename all the entities in the HA registry manually. I have to do this because the default entity names seem to have changed with the refactored Netatmo integration. Because I am recording the values in an InfluxDB I need the entity names to stay the same as before because it seems also not possible to rename the recorded names in InfluxDB easily.
Environment

Home Assistant release with the issue: 0.106.1
Last working Home Assistant release (if known): 0.104
Operating environment (Hass.io/Docker/Windows/etc.): RPi with manually installed HA
Integration causing this issue: netatmo
Link to integration documentation on our website: https://www.home-assistant.io/integrations/netatmo/

Problem-relevant configuration.yaml
netatmo:
  client_id: hidden
  client_secret: hidden

Traceback/Error logs
In the log I see the following after the problem appears:
2020-02-29 11:19:10 ERROR (MainThread) [homeassistant.components.binary_sensor] Error while setting up netatmo platform for binary_sensor
Traceback (most recent call last):
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/binary_sensor.py", line 95, in async_setup_entry
    async_add_entities(await hass.async_add_executor_job(get_entities), True)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/binary_sensor.py", line 60, in get_entities
    for camera in data.get_all_cameras():
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 258, in get_all_cameras
    self.update()
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/util/__init__.py", line 240, in wrapper
    result = method(*args, **kwargs)
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 282, in update
    self.camera_data = pyatmo.CameraData(self.auth, size=100)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/camera.py", line 28, in __init__
    resp = self.authData.post_request(url=_GETHOMEDATA_REQ, params=postParams)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
    raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomedata'
2020-02-29 11:19:10 ERROR (MainThread) [homeassistant.components.camera] Error while setting up netatmo platform for camera
Traceback (most recent call last):
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 64, in async_setup_entry
    async_add_entities(await hass.async_add_executor_job(get_entities), True)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 52, in get_entities
    for camera in camera_data.get_all_cameras():
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 258, in get_all_cameras
    self.update()
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/util/__init__.py", line 240, in wrapper
    result = method(*args, **kwargs)
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 282, in update
    self.camera_data = pyatmo.CameraData(self.auth, size=100)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/camera.py", line 28, in __init__
    resp = self.authData.post_request(url=_GETHOMEDATA_REQ, params=postParams)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
    raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomedata'
2020-02-29 11:19:11 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up netatmo platform for sensor
Traceback (most recent call last):
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/sensor.py", line 128, in async_setup_entry
    async_add_entities(await hass.async_add_executor_job(get_entities), True)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/sensor.py", line 115, in get_entities
    dc_data = data_class(auth)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/home_coach.py", line 15, in __init__
    super(HomeCoachData, self).__init__(authData, urlReq=_GETHOMECOACHDATA_REQ)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/weather_station.py", line 24, in __init__
    resp = self.authData.post_request(url=self.urlReq)
  File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
    raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomecoachsdata'

Additional information

Could you please switch logging for the netatmo integration to debug to gather more information?

The log I get with debug level enabled when it fails is this here:
2020-02-29 18:52:10 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.climate] No thermostat devices available
2020-02-29 18:52:10 ERROR (MainThread) [homeassistant.components.binary_sensor] Error while setting up netatmo platform for binary_sensor
Traceback (most recent call last):
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/binary_sensor.py", line 95, in async_setup_entry
async_add_entities(await hass.async_add_executor_job(get_entities), True)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/binary_sensor.py", line 60, in get_entities
for camera in data.get_all_cameras():
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 258, in get_all_cameras
self.update()
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/util/init.py", line 240, in wrapper
result = method(*args, **kwargs)
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 282, in update
self.camera_data = pyatmo.CameraData(self.auth, size=100)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/camera.py", line 28, in init
resp = self.authData.post_request(url=_GETHOMEDATA_REQ, params=postParams)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomedata'
2020-02-29 18:52:10 ERROR (MainThread) [homeassistant.components.camera] Error while setting up netatmo platform for camera
Traceback (most recent call last):
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 64, in async_setup_entry
async_add_entities(await hass.async_add_executor_job(get_entities), True)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 52, in get_entities
for camera in camera_data.get_all_cameras():
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 258, in get_all_cameras
self.update()
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/util/init.py", line 240, in wrapper
result = method(*args, **kwargs)
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/camera.py", line 282, in update
self.camera_data = pyatmo.CameraData(self.auth, size=100)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/camera.py", line 28, in init
resp = self.authData.post_request(url=_GETHOMEDATA_REQ, params=postParams)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomedata'
2020-02-29 18:52:14 DEBUG (SyncWorker_15) [homeassistant.components.netatmo.sensor] weather station detected!
2020-02-29 18:52:14 DEBUG (SyncWorker_15) [homeassistant.components.netatmo.sensor] Adding module Büro 70:ee:50:05:73:58
2020-02-29 18:52:14 DEBUG (SyncWorker_15) [homeassistant.components.netatmo.sensor] Adding module Aussen 02:00:00:05:6e:d6
2020-02-29 18:52:14 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up netatmo platform for sensor
Traceback (most recent call last):
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 179, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/sensor.py", line 128, in async_setup_entry
async_add_entities(await hass.async_add_executor_job(get_entities), True)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/homeassistant/lib/python3.7/site-packages/homeassistant/components/netatmo/sensor.py", line 115, in get_entities
dc_data = data_class(auth)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/home_coach.py", line 15, in init
super(HomeCoachData, self).init(authData, urlReq=_GETHOMECOACHDATA_REQ)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/weather_station.py", line 24, in init
resp = self.authData.post_request(url=self.urlReq)
File "/opt/homeassistant/lib/python3.7/site-packages/pyatmo/auth.py", line 122, in post_request
raise ApiError(f"Error when accessing '{url}'")
pyatmo.exceptions.ApiError: Error when accessing 'https://api.netatmo.com/api/gethomecoachsdata'
After I fixed it again by removing and adding the integration it looks like this:
2020-02-29 19:01:08 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.climate] No thermostat devices available
2020-02-29 19:01:08 DEBUG (SyncWorker_0) [homeassistant.components.netatmo.binary_sensor] No camera entities to add
2020-02-29 19:01:09 DEBUG (SyncWorker_7) [homeassistant.components.netatmo.camera] No cameras found
2020-02-29 19:01:12 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.sensor] weather station detected!
2020-02-29 19:01:12 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.sensor] Adding module Büro 70:ee:50:05:73:58
2020-02-29 19:01:12 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.sensor] Adding module Aussen 02:00:00:05:6e:d6
2020-02-29 19:01:13 DEBUG (SyncWorker_1) [homeassistant.components.netatmo.sensor] No home coach entities found

Could you please run this selftest script to gather further information? Feel free to contact me on Discord to discuss this further for privacy reasons as the log contains more details about your home.

I got the following output from the script:
Energy Public Camera WeatherStation HomeCoach Smokedetector
Checking for available weather stations...
Büro (70:ee:50:05:73:58)
Büro Büro (70:ee:50:05:73:58)
Temperature - 22.4
CO2 - 2051
Humidity - 47
Noise - 59
Pressure - 1000.1
wifi_status - 72
min_temp - 19.9
max_temp - 22.4
reachable - True
Büro Aussen (02:00:00:05:6e:d6)
Temperature - 9.8
Humidity - 74
rf_status - 89
battery_vp - 5788
battery_percent - 91
min_temp - 6.3
max_temp - 14.1
reachable - True
WeatherStation [OK]
Checking for available home coach stations...
warning, no home coach station available for testing
Checking for available cameras...
warning, no camera available for testing
Checking for available smoke detectors...
warning, no smoke detectors available for testing
Checking for available thermostats/valves...
warning, no energy devices available for testing
Checking for public data...
Public [OK]
Let me know if you need anything else.

The good thing, it doesn’t look like a HA problem. The question still is why is only your weather station reported. Let’s discuss this on discord if possible.

It looks like this was actually a problem of the Netatmo API and not HA. I still don't really understand what exactly caused the problem, but after I did the following the problem disappeared:

While I had the problem, I had two devices which used the same Netatmo App/client_id to query the Netatmo API. Now I created a second App/client_id for the second device.

I pressed the 'Reset keys' button on the Netatmo dev site for the first App/client_id which created a new client_id/client_secret for it.

Maybe this at least helps other people who see the same strange behavior.


UI improvements for library table and back button

Apply Sweep Rules to your PR?

[ ] Apply:  All new business logic should have corresponding unit tests.
[ ] Apply:  Refactor large functions to be more modular.
[ ] Apply:  Add docstrings to all functions and file headers.

This is an automated message generated by Sweep AI.