|
HowToContribute
Would you be interested in making AdBlock better for millions of users? I would love any help that you wanted to give! As you can see below, you don't need to know how to program to help out. Ways to contributeTriage the Issue trackerThis would help a LOT! Several new Issues arrive every day, and the more people willing to triage them, the less chance of an Issue going unnoticed. Bookmark the list of Issue updates and watch for new or updated Issues. Then do any of these helpful things:
If you think you'll do this more than once or twice, feel free to ask on adblockforchrome-dev@googlegroups.com and I'll happily make you an official Contributor to the project, so that you can close/merge/prioritize bugs directly. Improve the existing translationsAdBlock is translated into dozens of languages, but sometimes the translations are out of date, resulting in missing or incorrect phrases. If you'd like to help correct problems you've noticed in your language, see HowToTranslate. Fix a bugAdBlock is written in Javascript, HTML, and CSS -- see the Chrome extension tutorial for details. If you see an Issue that you'd like to fix,
After you do this once, feel free to ask on adblockforchrome-dev@googlegroups.com and I'll happily make you an official Contributor to the project, so that you can commit directly to the repo. Tell your friends!Spreading the word via social networks / mailing lists / megaphones is always appreciated!
For ContributorsHere's more info for official Contributors (see above for how to become one). Mailing listsSubscribe to the adblockforchrome-dev Google Group, which is where we do all our discussion that isn't in Issues or code reviews. Also subscribe to the adblockforchrome-discuss Google Group to help answer FAQs from users. Issue triageIf an Issue is filed that is missing some info required by the report template, and it doesn't look like a critical issue, feel free to set Status:Invalid with a comment explaining that the report was incomplete. I am very OK with not fixing bugs that are only reported incompletely by one person. If you need more info on an Issue, leave a comment asking for clarification and label it MoreInfoNeeded, to be removed when they respond. Issues that remain MoreInfoNeeded for more than 2 weeks can be closed as Invalid with a comment that more info wasn't forthcoming. Status:Duplicate merges duplicate Issues. Status:WaitingOnChrome and WaitingOnSafari close Issues that we can't act upon until something changes in the browser itself. The OpSys, Browser, and Area labels limit Issues to only applying to a certain operating system, browser, or area of the the extension (e.g. the AdBlock button.) If you aren't able to handle an Issue yourself, see "Getting Help" below. Ad reportsIn addition to triaging bugs, you can triage ad reports. They come in via a reporting wizard that makes sure they shouldn't have reported the ad to a filter list maintainer instead. Verify the ad, find the filter that fixes it (you can test it via the Customize tab), put it directly into trunk/filters/adblock_custom.txt, and set Status:Fixed. Blocking filters are preferred over hiding filters; here is a filter syntax tutorial. If you put in a bad filter you can break all of AdBlock (e.g., no images load on the entire web), so be extra-sure that you get this right! If someone manages to file a report about an ad when they clearly haven't gone through the reporting wizard, you can set Status:Invalid and ask them to turn on AdBlock Options -> Advanced, and then click the AdBlock toolbar button -> "Report an ad on this page". Committing codeInstead of fixing Issues via a patch file, you should make branches/issue-NNNN for the Issue and make your changes there. When you commit to that branch, start your commit message with the line Update issue NNNN which will automatically leave a comment on Issue NNNN (more info here). When you're done and you've tested your branch thoroughly, mark the Issue as Status:NeedsReview to get your code reviewed for bugs/style. If it needs work it goes back to Status:Accepted until it's fixed. When all looks good I'll merge your branch to trunk and set Status:Fixed. I'll also mark my own code as Status:NeedsReview and would appreciate extra pairs of eyeballs on it. Leave comments with your thoughts, and set Status:Accepted if you find problems. If you're confident in your coding abilities and you think it's ready for me to merge to trunk, set Status:ReadyForRelease. Coding stylePlease comment every function you write with a description of what it does, a list of inputs, and what it returns. See background.html for some examples. Variables should be clearly named instead of short. When in doubt about whether a chunk of code makes sense, lead it with a comment explaining what's going on. When in doubt about capitalization, follow the rules of the code around you. It's mostly ClassName.functionName with_underscored_vars. The code isn't 100% (or even 80%, probably) adherent to the rules in the previous paragraph. Refactoring is great -- whenever you touch some code, feel free to clean it up. Getting helpThe best thing you can do to help me is probably to handle a bug or ad report entirely without me knowing about it until it's NeedsReview or Fixed :) But if you get stuck, or have a question, you can cc adblockforchrome on the Issue and I'll get emailed about it. If there's a critical issue that needs my immediate attention, label it Priority:Critical. I'll get an email automatically at my personal address. Feel free also to label Priority:High on any issue that you think should be on the shortlist to complete (or just set yourself as owner and start coding!) More questions?Email adblockforchrome-discuss@googlegroups.com . |