How do I suggest a code change in an open source project?

I am reading the code of some open source project. I see that in one of the places the code is poorly written and can be changed a little to improve readability / design / whatever, which improves the code and makes it easier to work with this code.

Is there a general way to communicate such changes? I know that you can become a contributor, make a patch, suggest something. But if you don't want to devote too much of your time to this project, you just downloaded it, read it, thought about changing it, wrote it, posted it somewhere as a proposal.

In fact, I would have preferred the ability to post suggestions for everyone to see, and that's like learning with the community, but just made it flexible.


source to share

3 answers

You can post snippets with comments to the project forum, bug tracker, or mailing list. Each project handles messages and messages differently. Example. I've heard that Mozilla developers tend to ignore Bugzilla comments, so this might not be a good place to comment on changes in Firefox.

If you want to write a very long play on it, you might be better off blogging about it and then getting attached to it. I would be careful about your tone. Things can be this way for good reasons. Try to understand where they are going with the project and their schedule. Perhaps ask why this is the case and clearly state what might be the problem and who might be affected.

Making corrections for changes is considered good practice and encourages people to accept your submissions. If you are not actively patching projects, it is often not so quick to rewrite a patch for something like this, but it can give you more impact. My personal opinion is that this is good. He separates the wheat from the chaff in terms of ideas, and people must be persistent.



If your efforts to fix a specific project do not meet some minimum request, is it only there to contribute. It will take some time to adapt your changes, look at your patch, test, integrate, etc. And if you spend too little time, chances are your patch will be of poor quality, address an issue already discussed, or become a simple misunderstanding of concepts.

So developers who mostly work for free risk their precious time to peek into your patch with the likelihood of eventually completely rewriting it and wasting the time they are going to devote to more important issues. But if you spend more time at work, there will be less risk to them. How can you tell if you've worked hard? Well, then the effort required to communicate with the developers would be less of your overall effort, so you wouldn't find yourself having trouble getting past some bureaucracy when reporting problems.

The fastest ways:

  • Submit the patch to the short description mailing list.
  • Go to the project's IRC channel and copy the patch, making sure one of them takes care of it.
  • Post the bug in your bug tracker, briefly describe the bug or improvement, and attach the patch there.

Too hard? Ha! To contribute to the OpenJDK project, you must sign an agreement and send it to Sun (by mail or fax). Well, that's what "difficult" means! And register with bugzilla, activate your account and open the patch issue, it's not difficult.



To get started, there is a saying in the Netherlands that goes something like this:

"Advice that nobody asked for is rarely appreciated."

If you want to help, make sure you help.

Don't try to look smart by simply pointing out other people's mistakes without helping them later. It will not benefit the project, it will demote the developers and it will make you look bad. Plus, it's likely that the software author is more aware of the issues that threaten the project than you are.

Good example:

"I've seen you use the x and y technique in your code. I have good experience with z. Have you ever thought about that?"

Good example:

"Hey, I have a lot of fun using this software every day. I noticed that file uploads are a little slow. I checked the code and suggest caching the result x and y between iterations. I have time to make a patch, so I reported a problem with my suggestion in your bugtracker. "

Bad example:

"Dude, I'm just looking at your code. Man, what a mess. Any noob knows you have to use useful variable names. No wonder the software is unstable."

In short, make sure your feedback is positive.



All Articles