-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved logic for ObserveLinesWithRetry #159
Conversation
Hello Adam! Fantastic library! |
Thanks! Sorry, I hadn’t published a new version on NuGet, yet because I was waiting to see if the changes I made resolved the original reporter’s issue (for issues I can’t reproduce myself, I usually publish a version on MyGet so we can see if they solve the problem). If I don’t get a reply in a day or so then I’ll just publish it anyway 🙂 |
(I usually don't use the issue auto-close feature because I only consider an issue closed once the changes have been published to NuGet and the original reporter confirms that their issue has been resolved) |
It wasn't just a day ago; the issue was fixed and merged a month ago. Didn't you receive any feedback from the author over that month? What are you waiting for? It seems you should be confident that the fix is correct. It's quite a risky workflow to await feedback from the majority of authors who are typically silent. Regarding another matter, I reviewed the PR and noticed there were no tests included. Is this a common or an unusual occurrence?
It's advisable to cover the code with tests or replicate the user's scenario to confirm the issue is resolved, and then promptly close the issue without awaiting a response from the author if they remain silent. P.S. Waiting for feedback from issue raisers, who are mostly silent, can cause my project to stall. Typically, if an issue raiser is unresponsive, I proceed by covering the issue with acceptance tests and always try to include unit tests. If the issue raiser engages, I invite them to the testing phase; however, if acceptance tests have been developed, the related issue is automatically closed upon merging the PR. |
If you’re volunteering to contribute I’d certainly appreciate the help; work hasn’t left much time to work on this for a while now 🙂 |
Adam, may I inquire sincerely and receive a truthful response, please?
I've observed that most issues originate from 2018/19/20 and remain open. Is it a matter of time or development capacity? |
Yes, it is a capacity issue; I have many other things going on in my life and while I do my best to keep supporting this project I don’t have as much free time as I used to. The last couple of roles I’ve worked in took up almost all of my capacity/enthusiasm for coding (leaving almost none for my own projects) - my most recent role is at least k8s-related which is why I’ve started working on this in my spare time again, but I still have other things that are more important to me at the moment. I’m always happy to work with anyone who wants to contribute to any of my projects (such as the MSBuild language service) but otherwise they get worked on when I have the time and enthusiasm. |
Can I, in turn, ask you where these questions are coming from?
|
Fair enough! 😄 I could say the same about my Ocelot project, for which I am grateful for contributions.
The Ocelot team continues to utilize your library for Kubernetes integration, so here are the references 👉 We have special |
Please do! I always find it easier to prioritise fixes when I have a sense of their impact (and downstream projects like yours are always going to be higher priority since they may impact more people). I do still care about this project (we use it internally at my current employer) but it’s not always easy to find the time outside of work to work on this stuff. Anytime you find an issue that is impacting you or your users let me know and I’ll do my best to get it onto the top of the pilez PS. I’m a fan of Ocelot - you folks do good work 🙂 |
As for testing, I’ve recently put a significant amount of effort into test infrastructure so future testing efforts may be a bit easier: dotnet-kube-client/test/KubeClient.Extensions.DataProtection.Tests/KeyPersistenceTests.cs Line 59 in 0896dec
https://github.com/tintoy/dotnet-kube-client/blob/develop/test/KubeClient.Extensions.DataProtection.Tests/Mocks/MockKubeApiExtensions.cs (needs to be moved to shared project still) |
Fair enough! 😄 Do you know that YARP project was developed by Microsoft for Microsoft's internal needs. 🤣 It's my developer's joke! 😉
It may not be a KubeClient issue, but we have observed unusual behavior with the |
Sure - I’ll take a look at this first thing tomorrow :) |
@raman-m OK, I think I can see a quick win there: The way KubeClient tends to handle polymorphic response types that don't have a useful common ancestor (something the K8s API does all the time unfortunately) is by segregating response types by status code (usually success vs failure). Pattern is usually something derived from There are extension methods in the KubeClient assembly for handling that type of scenario (something derived from
or, for more-dynamic response handling:
Or if you want to do all the handling yourself, there's a more low-level version: https://github.com/tintoy/HTTPlease/blob/0e872957866fedea194c0f0b4d36d71d1cb85835/src/HTTPlease.Formatters/FormatterResponseExtensions.cs#L287 I think you probably want the second option; the result object it returns will have Or if you use the first option, you can catch a Example usage:
If that doesn't do the trick, let me know and I can open an issue for it. |
#157