!!! 1.1 %html{ :xmlns => "http://www.w3.org/1999/xhtml" } %head %meta{ :content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type" } %title Amp | Version Control Revolution | Contribute = stylesheets :reset, :amp, :all_themes = javascripts "jquery-1.3.2.min.js", "jquery.cookie.js" %body.oneColFixCtr = render("include/_header.haml", :selected => "contribute") .infopage#container .body-width .floatleft{ :style => "width:90%; padding:8px 0em 6px; margin-left:5%;"} %h2 How can I help? %p There's a ton you can do! We need people to write nice fancy writeups for the site, and we need developers who can add features. We've got #{link_to "#list", "lots of places you can help"}, and a #{link_to "#features", "good list of features"} we want to develop to reach #{blue_amp}'s goals, and developers will make that easier! Here's our online resources you can use to help: %ul.bullets{:style => "margin-left:2em;"} %li The #{link_to "http://bitbucket.org/carbonica/amp/", "BitBucket source"}. We accept pull requests! %li Our #{link_to "http://github.com/michaeledgar/amp", "GitHub mirror"}. We accept GitHub pull requests! %li We use #{link_to "http://bitbucket.org/carbonica/amp/issues/?status=new&status=open", "BitBucket's issue tracker."}... %li ... and BitBucket's #{link_to "http://bitbucket.org/carbonica/amp/wiki/Home", "wiki, too."} %li Lastly, we've got a #{link_to "http://groups.google.com/group/amp-vcs/", "Google Group"}. %h2 OK, but how do I submit code? %p #{blue_amp "Amp"} is run on a "commit bit" policy. Get one patch approved, and you have full repo access. Our source is #{link_to "http://bitbucket.org/carbonica/amp/", "hosted at BitBucket"} - just fork us and send a pull request. %p We don't have strict requirements about how you format your patch, but keep in mind that we have to verify your patch is good before we accept the pull. So here's a list of things that will make that faster if you are submitting code: %ul.bullets{:style => "margin-left:2em;"} %li Try to stick to the #{link_to "/contribute/style.html", "code style guidelines"}. %li Include tests! Not required, but it certainly makes it easier to check if your patch works. %li Document your new code! Methods are always documented in #{blue_amp} - end of story. %li Comments-in-code are great for non-trivial algorithms, but we'll be the first to admit our code doesn't have enough inline comments. %li Provide some way for us to know what your patch does - even if you think it's obvious. %p Again, these aren't requirements, but we want you to work on #{blue_amp}, which means we want to approve your patches! %a{:name => "list"} %h2 I'm ready to jump in! Any ideas? %p Here's a list of things to think about, in order from least-to-most effort required: %ul.bullets{:style => "margin-left:2em;"} %li Write for this site! The source for the website is actually stored in the amp repository - a #{shellscript "rake build-website"} will rebuild the site from the source. We like write-ups on major amp features, especially, but anything you think could help, send it in! %li Clean up code in general. If you see code violating style guidelines, fix it up. If you see obvious silliness (branches that never execute, superfluous conditionals, so on) then lend a hand and patch it up! %li Comment existing code. Some methods are undocumented, some enormous methods don't have inline comments explaining things. %li Write tests! We don't have nearly enough tests, and we want to maximize both unit test (where possible) and functional test coverage. %li Ruby-tize the code. There are places where, in our innocent pursuit to port #{hg_link} to Ruby, we directly ported algorithms. We apologize. Help us make it idiomatic. %li Fix bugs on #{lighthouse_link}. These might be simple fixes, they might not. Either way, we'll give you an e-hug. %li Refactor huge methods. There's a few instances where there are simply enormous, mind-numbing methods that need to be cleaned up. They're often the most important methods too, which is probably why nobody has done it yet. Be a hero. %li Take a look at our #{link_to "#features", "feature hit-list"}. These are major goals we hope to achieve in #{blue_amp}'s development. The core team focuses on these when possible. %h2 Feature Hit-List %p These are the features that take the most work, and are the most important to #{blue_amp}'s development. %a{:name => "features"} %ul.bullets{:style => "margin-left:2em;"} %li Support for other repository formats: #{git_link}, #{link_to "http://bazaar-vcs.org/", "bazaar"}, #{link_to "http://subversion.tigris.org/", "svn"}, #{link_to "http://www.nongnu.org/cvs/", "cvs" }, #{link_to "http://darcs.net/", "darcs" }. No shelling out (except when stubbing methods). %li #{workflows_link "Workflows"} for other VCS systems - commands that emulate #{shellscript "bzr push"} instead of #{shellscript "hg push"}, for example. %li Windows support. Honestly, this is primarily just going to be handling file and system paths differently. %li GUI Application on top of #{blue_amp}. Think about that - the one app would support all major VCSs. Cool, eh? %h2 Who works on #{blue_amp}? %p Here's a list of all our contributors, sorted by number of commits: %ul.contributor-list - commit_count.each do |user, commits| %li %span{:style => "width:80px;"}= commits.to_s %span{:style => "width:400px;"}= user = render("include/_footer.haml")