How to support and maintain authors of custom code?

As previously stated there is no 'help' to the issue arising, you will never rid the world of terrible people who do terrible things, that is a fantasy.

2 Likes

And like I said there are far bigger project who have dealt with these issues and still do. But as long as everybody reacts with a dismissal and stick their head in the sand, then you are right. I still have hope for a solution and (like the start of this issue) you are entitled to your opinion. It doesn't mean you have to stop me from looking for a solution. Especially as I think it's in your interest too.

2 Likes

I know exactly where you're coming from.

Maybe some "best-practices" should be documented for people who are using drivers/apps they find online would be useful.

  1. Make sure the code has an OSI Compatible License or you have some sort of financial arrangement with the author.
    • For example you likely don't need to worry about the license for a driver provided by the company you bought the device from.
  2. If the driver/app is on GitHub fork the repository and use that fork to pull in updates. This ensures that even if the source repository is deleted you still have access to the code and history.
  3. If you want to participate (ask for changes, file bugs, send pull requests) learn how to participate well.

I'm sure there are more items that could be added, but some rules of the road for using custom apps/drivers would probably be good for both the consumers and producers of that code.

2 Likes

Although I really appreciate your post and the information. The topic is actually about the author and not about the user.

Sure, but the reason why the author may need that is bad user behavior right? Users would benefit from better education on how to participate well results in a healthier OSS ecosystem. Sorry if I'm too off topic :slight_smile:

No worries, you might have a good point. And maybe even an angle I didn't think about.

I've been working professionally in OSS for close to 20 years now, a lot of the issues I've seen app/driver developers run into with users of that code are problems that all OSS runs into. Sadly it gets worse the more accessible the code is for use by people that have likely never programmed or really interacted with an OSS community before.

I do agree that a central "Hubitat OSS" repo would be a good approach to help alleviate some of the pain. It has some complexities, primarily it is a legal nightmare if contributors aren't willing to sign an ICLA giving the entity that runs the repo some level of control over the licensing of the code in the repo. On the plus side if you can get some folks with solid OSS backgrounds they are used to saying "I'd be happy to review a pull request for the feature you want" when people post FRs and get grumpy they aren't getting done.

There's a year-ago thread that is not dissimilar. I thought having a Hubitat Repo would be a great addition,

There's currently 13 members and 9 pending Invites.

It's quite simply, not used.. I think it was @mike.maxwell that said something like: there's a couple of attempts and the response has been "crickets"

I was hoping it would be step 1 of a 9 step effort to get some organization around the drivers and apps. I use it :smiley: it's great for ME. LOL

1 Like

And... How do you deal with cases like... 1) User requests new feature 2) user is told that the feature is not possible 3) user threatens that if the feature is not added then user will hunt down the developer and make his/her life a living hell.

And it's always fun to deal with users that want monetary compensation because the feature you just removed (because the device no longer supports it) was the only reason they bought the controller...

And the real kicker is having to deal with this type of user on a platform that is actively hostile to developers and usurps control of your code without warning (No... Not Hubitat, but a platform with a system in place to allow developers to distribute their code).

Sorry... Kinda turned into a rant 8-(

Suffice it to say... Even with systems in place, there really is not fool-proof system...

Well, maybe that serves as an argument that it's not the right solution. I don't think it would have helped Andy in the current issue either. Maybe the solution lies in a piece of documentation about custom apps and a disclaimer (about the responsibilities of the author, or lack of it when it suits he/her).

And yes, maybe there is no total solution to the issues. But we could at least try to make it all a better place ad maybe assist in dealing with issues (since we can't all code, we can at least help with the rest).

I think the reason there are so many replies to your posts is that you haven't been clear enough on exactly what you are trying to solve.

If you are looking for a way to remove unrealistic expectations from entitled people, the consensus is...not going to happen...people are people...and right now @Cobra seems to be having a people problem.

Otherwise, please be as specific as possible as to what the exact problem/issue you are attempting to resolve. I appreciate what you are trying to do but also want the discussion to be productive.

3 Likes

No question.

The point is, attempts HAVE been made. That's all. We now know of two things that don't work.

Forum moderation should ban users that behave like that, Github lets you block users as well.

Sure, and they can complain all they want, if it becomes harassing they should be banned/blocked.

If you are releasing code under an OSI approved license you need to understand what level of control you give. If you don't want someone to copy your code and use it commercially use a license then license it under GPLv3. People on the forums could freely use it, they can modify it for personal use without having to publish their modifications. Big Company could NOT copy any of that code for use in their product without getting a proprietary license from you.

No worries about the rant, this is a frustrating topic, we can try to improve user behavior and then the other side is people that contribute have to deal with angry/annoyed/frustrated users. Saying NO becomes a common response when running a OSS project.

1 Like

It's a good as Hubitat... because my plugin integrates Hubitat devices :smile:

Are you the same @cybrmage from Vera?

I ask and bring this up, because people here going through this now are just a re-run of the events that occurred with Vera and that community. From the users, user contributed development, the issues from that and from the platform stability caused by user apps/drivers etc. All of this is a re-run that has happened before on the Vera platform and others as well.

1 Like

Maybe this is a way.

Actually, that gives me an idea. Because, this can be split up. So that coders don't have to do this. Because I don't mind doing first line communication for our community developers. If that is what keeps them from being harassed.

What I want, is to create an environment where developers can enjoy doing what they are good at and users can enjoy their work. So that in the future developers don't all stop sharing and helping others.

And yes, that might be optimistic, but I'm still going to try. And if I even only succeed for 20% it still is a win, compared to the current situation.

A noble undertaking to save the world from human beings and their behavior.

I have also had experiences similar to Cobra's, as Rule Machine was originally a community app in the SmartThings community. It was one of two "serious" apps at the time. The other app, SmartTiles, was pulled from open source by the author for similar reasons, complicated by ST's fumbling of their failed effort to publish user apps. Of course SmartTiles went on to become a commercial product, ActionTiles.

Rule Machine was pulled after the SmartThings platform went through a phase of total unreliability, with SmartThings support blaming Rule Machine for the platform's problems. And of course, it went on to become a cornerstone app for Hubitat.

Is that a pattern? Will we see Cobra's Apps as a commercial product? Probably not in the near term.

We do our best to assist users that are writing code to share with others. Sometimes they report an issue with our platform, which we fix. Sometimes we or others report problems with their apps, and help them address those. Most of this isn't done in public.

As for people who behave like jerks in this community, we do our best to moderate and respond. I, for one, do not read every topic posted, nor attempt to "moderate" every conversation. It's very easy to get my attention however if someone feels the need for some moderation to take place. Flagging a post is one way certain to get my attention. But, irrespective of community moderation, people will be people, some nice, some entitled, some arrogant, some wrong, some helpful and some, unfortunately, just jerks... It's not ever going to be a perfect environment.

15 Likes

App/driver developer here.

Before Hubitat, I tried Smarthings, HomeAssistant, and OpenHab. Smartthings was too unreliable. I liked the customizability of HomeAssistant and OpenHab, and I generally like open source, but they required spending way too much time as a Sys Admin. I just wanted my house to work. I chose Hubitat and have stayed with it because I really like its combination of being an easy-to-use consumer device, but also letting me write my own code for my special cases, which I did.

And I released it on Github and on this forum, because I like the idea that other people might want to do similar things as me, and my code might help them. And the more they are helped, the more likely the Hubitat platform is to spread, which is good for me. So it comes full circle.

That said:

  • My code (like all code) will have bugs, of varying degrees of severity.
  • I am not paid to do this. I give my code freely. If it's a severe bug, or it affects me personally, I will likely fix it quickly. Or I might not. I am not anyone's employee when I'm writing apps/drivers.
  • I DO accept pull requests! If you find a bug and can fix it, I'm GLAD to accept the help!
  • No one has treated me rudely so far, but I can absolutely imagine that if enough of that happened, I might pull my code, without regrets. But so far, everyone has been lovely.
  • If somehow this situation feels unfair or if you think it's too risky because I may pull my code or not fix bugs fast enough for your taste, you are absolutely free not to use my code.

The joys of open source! :smiley: We're all just people you're interacting with, not faceless economic entities.

9 Likes