HomeSeer / Plugin-SDK

Plugin development kit for the 4th major edition of the HomeSeer platform.
https://www.nuget.org/packages/HomeSeer-PluginSDK/
GNU Affero General Public License v3.0
20 stars 4 forks source link

More changes to events will be coming very soon. #303

Closed alexbk66 closed 2 years ago

alexbk66 commented 2 years ago

@jldubz Hi Luke,

Your comment "More changes to events will be coming very soon." at https://github.com/HomeSeer/Plugin-SDK/releases/tag/v1.4.2.0 scares me. Please make sure that "More changes" don't break existing plugins!

I'm tired of wasting my time fixing and re-building and re-testing and re-publishing my 16 plugins because of your breaking changes.

Thank you

jldubz commented 2 years ago

@alexbk66

As I've said before, pull requests are welcome. Recommendations and bug reports are great. Issues like these are not productive. "Don't do bad things" is not actionable input.

I provided advanced notice on changes and an opportunity to review the pull request before it is merged this last version. You responded to this with a criticism of how much time it took us to get to a fix.

If you have some specific suggestions the team is open to hearing them. Make sure you familiarize yourself with the code of conduct in the mean time.

Thanks.

alexbk66 commented 2 years ago

Luke, it's not "Don't do bad things", it's "don't break existing code". It would be understandable during initial HS4 beta period, yes. But not three years later.

For example, adding exception for the "StatusOnly" control type breaks existing plugins. So suddenly users can't use the system after updating HS (minor release)?

Instead you should just remove "StatusOnly" from the enum - so developer's are forced to modify the code they working on.

Same for "Don't set image directly" exception.

These functionalities existed in HS for years. You can't expect developers to fix and re-test all plugins when you just feel like changing existing code.

Some code I can't even test as I don't own the devices - I need to ask users to verify?

Breaking Change Breaks Hearts

jldubz commented 2 years ago

@alexbk66 , You are nothing but rude when you interact with me. Every change we make is done after intense analysis by the team (which is like - 3 people btw). Mistakes happen. You have never acknowledged the work that is being done to improve things. You never contribute. You only seem to speak up when you have something to complain about. You sell your plugins on our store. When are you going to start treating this relationship like the partnership that it is supposed to be?

In the same vain that you are saying...

You can't expect developers to fix and re-test all plugins

You are expecting the exact same thing from us. You are expecting that we can test every single plugin and every single situation every time we make a change. This is hypocritical and unreasonable. How do you expect we do this if you yourself are unwilling to put in similar efforts? We are doing our best, but nothing seems to be good enough for you.

jldubz commented 2 years ago

@alexbk66
Alex,

Have you noticed the continuous additions of unit tests to the SDK in response to situations where we have mistakenly broken something? https://github.com/HomeSeer/Plugin-SDK/tree/master/PluginSdkTests Have you noticed that we have been making a concerted effort to ensure that the API reference and documentation is as detailed as possible? Do you remember what the old documentation was like?

You know what is a more productive conversation here than

"don't break existing code"

You constantly complain about stuff like this, but you never engage in an actual conversation when we present an opportunity. If you want to talk about future changes to make sure it doesn't impact your plugins negatively you need to engage with us on the material in a constructive manner when it is shared. If you contributed more to the SDK and conversation we might have a better idea as to how you are doing things, and we could even write unit tests to cover those scenarios.

Yes. We still have a lot of work to do. I'll say again - pull requests are welcome and encouraged. You have done a bunch of work in a completely separate project that adds onto this SDK. I have consistently asked you to help here since we seem to be working on all of the same stuff. When are you going to submit pull requests and contribute here? When are we going to start talking about how to make this better for everyone instead of circling around every problem you see?

PS. My name is Jon-Luke, not Luke. I would appreciate it if you call be my name or just tag me with my username.

alexbk66 commented 2 years ago

Hi Jon-Luke, sorry, didn't mean to be rude. I appreciate your efforts, I can see the improvements, yes. But HST (not yourself) didn't treat developers with much respect either. That's the reason why many developers dropped out during transition to HS4. And it actually took a bit of effort on our side to get some attention, may be you were not present at this time... And saying that I'm selling the plugins on your store - is rude too - because (a) without third party plugins HS is nothing, and (b) HST is making their cut from the sales, right? This actually shows HST attitude towards plugin developers, unfortunately. But again, it's not your fault, sorry.

And regarding engaging, contribution, pull requests, etc. I tried three years ago - when I created my library for HS3 and I wish HST actually engaged with me when planning HS4.

But since nobody was really interested - I simply had to port my HS3 library to HS4, so I didn't have to spend much effort porting the plugins code itself to HS4.

Again, sorry if I offended you.

alexbk66 commented 2 years ago

And seriously, blaming me for not contributing - is not fair. Please check the stats - who is most actively reporting issue, basically doing testing for you?

image image

jldubz commented 2 years ago

@alexbk66,

And regarding engaging, contribution, pull requests, etc. I tried three years ago - when I created my library for HS3 and I wish HST actually engaged with me when planning HS4.

This was built for HS3 at the same time that we were transitioning to HS4. We released this SDK the same year, open-sourced it, and invited everyone to get involved. You have yet to contribute to this SDK. Creating your own library is not the same thing as working together to improve this one.

And seriously, blaming me for not contributing - is not fair. Please check the stats - who is most actively reporting issue, basically doing testing for you?

Reporting problems is great, and I appreciate those contributions. I really do. You can't have it both ways. If your view of contributing is testing and reporting bugs then why are you constantly complaining about testing and reporting bugs? If you are tired of testing and reporting bugs then help me proactively improve things instead of retroactively repairing them. Again - small team here - loading up our plate with work and then complaining that we aren't working fast enough for you is inconsiderate. Contributing in a productive way would be something like helping to improve the accessibility of a method and maybe creating a pull request to change that private to a public instead of reporting it, leaving it for us, and then criticizing us when we finally get to it. (IE #152)

And saying that I'm selling the plugins on your store - is rude too - because (a) without third party plugins HS is nothing, and (b) HST is making their cut from the sales, right? This actually shows HST attitude towards plugin developers, unfortunately.

Me calling attention to the fact that you sell your products on our stores is that it is a partnership. This relationship goes both ways. We need to work together. Without all of us, we all fail. No HS system = no platform for plugins. No plugins = less functionality for HS. Refusing to acknowledge the relationship for what it is and not working to improve it is hurting us both. I'm sure we could do some really cool stuff if we just worked together. That starts by changing the way we talk to each other; realizing that we are on the same team.

I'd really like it if you would start working with me instead of constantly making me feel like you are fighting me no matter what I do. When can we make this change and start collaborating?

alexbk66 commented 2 years ago

@jldubz I'm not arguing and I'm happy to collaborate.

alexbk66 commented 2 years ago

Honestly, I was offering my "expertise" with the lib I created when HS4 was first released. And unfortunately I wasn't aware or consulted when you were working on HS4, but nobody was interested in my input.

jldubz commented 2 years ago

@alexbk66,

You say...

I'm not arguing and I'm happy to collaborate.

And then you turn right around and point fingers at us and blame us for the situation. Own your part. You will occasionally chime in on conversations with insults or underhanded remarks aimed at HomeSeer or its staff, and we still try to work with you. If you feel like you are not getting the response you want from us consider how you are interacting with us.

HomeSeer made a deliberate attempt to engage with every plugin developer as soon as we had a viable release. I personally invited you to come discuss the development of this SDK here on GitHub when it was first released. It took you more than a year to create your first issue or comment on anything here; so I'm not sure what you mean when you say "nobody was interested in your input". The SDK was starting to be published here in September 2019. Your fist ticket was in December 2020. You didn't start commenting on issues until late January 2021. Since then, we have been working to engage with you on every issue you open as fast as we can.

I keep asking for your input. It's hard to hear your input when it is frequently drowned out by your crassness when you are upset or frustrated.

If you truly want to collaborate let's discuss solutions, not complain about things that happened. I suggest starting by going through the issues you have created, add some labels, kindly bump some for replies (because there is a lot going on), add sample code and clear steps to reproduce, fix it yourself if its simple and in the SDK and submit a pull request. We need to work together. Working together means focusing on the goal we want to achieve - which is a better and more feature rich SDK, right?