Ubuntu – Are there guidelines for requesting enhancements of open source projects

community

Occasionally I think of enhancements for open source software applications I use. Generally I track down wherever it is the project is hosted and log an request. I do not intend to contribute any code, I just want to make a suggestion.

Some projects have guidelines for such requests (not allowing them, allowing them but frowning on "me toos", etc), but others don't. Are there any broadly applicable guidelines or widely referred to articles on how to do this appropriately? (And any notes on making a request from an Ubuntu context?)

Best Answer

  1. Ask in the right place.

    One thing that really annoys developers is people asking things in the wrong place. This applies to all sorts of communications and finding out the right way for a particular project does take some investigative work.

    Start with the project documentation. Most large projects have a section about bugs and these tend to hint at where the best place is for certain types of bug. If the project is smaller or more informal, direct communication (email or chat/IRC) isn't a bad idea.

    If the developer does get annoyed with you for sending direct emails and you've looked for alternatives, it's sort of their fault for not making it clear.

    In our (Ubuntu's) context, Launchpad for bugs, Brainstorm for wider feature requests. In a lot of cases you want to swim upstream to where the project lives though. If you can get something fixed or added upstream, them you can talk to the Ubuntu maintainers about getting the patch or update pulled into Ubuntu.

  2. Check that there isn't an existing request.

    We close a lot of duplicates here and I know Launchpad does too. Duplicates waste people's time because they have to go through the triage process. If you can find an existing thread about something, go there.

    Most trackers have a "subscribe" feature so you can stay up to date. If the progress looks stalled, I don't think too many people would mind a "What's the progress?/Can I do anything to help?"-style poke.

  3. Be polite. Be thorough. Be helpful.

    We are almost never owed anything by an open source developer (except in the case where you hire them outright) so just remember that they're people with lives and jobs. Your requests should be clear, courteous and complete to avoid wasting time going through a waterfall of need-more-info/incomplete requests.

    Regardless of your ability, always find out if there's anything you can do to help a situation. Even if you can't help directly if you can tease out what needs to happen from the developer, other people can help. If you know people who could do certain elements, you could introduce them to the thread and ask if they fancy a crack at helping you.

  4. If you can, think about donating, sponsoring or hiring.

    Yeah I think I'm suggesting bribery. If you really need a feature to the point where not having it costs you money (directly or through wasted time), I don't think it's unfair to want to directly sponsor an improvement.

    A lot of projects don't like cash-for-bug payments but some developers may be open to it. They are people and people (unfortunately) need money. I have hired a small project's main developer for a day to improve something that was commercially very important to me but was very low-level on the scale of the project.

    If you can't get anybody in the project to help there are always freelance sites where people code for cash. I see no reason you couldn't hire somebody to work on your bug, pushing patches to the bug tracker for review. Just make it clear that they need to work to the guidelines set out in the project and explicitly state how their work will be licensed.

    This isn't really a very sustainable way of doing things but it is a way of giving back that might directly help you. It's worth a look if you're ever desperate.