Contributing

jschementi edited this page Nov 24, 2010 · 69 revisions
Contributing a patch
Contribution Ideas
Who is working on what

Contributing a patch

The steps to contribute a change are:

  • Fork the IronRuby repository as mentioned at Getting the sources
  • Make your changes on you machine, ensure irtests.bat runs successfully, and commit your changes.
  • If your change uses multiple commits, and the commits are not consecutive (because you pulled new updates from the main ironruby repo), use “git rebase” to make the commits consecutive so that a single “git diff” command can be used to review all the changes together.
  • Push the commits to your fork. This way your name will be the author of the commit in the main IronRuby tree (once they commits are pulled into the main tree).
  • Send an email requesting a code reivew to ironruby-core with a brief description of your commit, a link to the commit website.
  • Once you get a reply to the email, send a pull request from your github.com fork website.
  • The IronRuby team will pull contributions every week or so. An email is generally sent to the mailing list about when this will happen so the contributors can do a fresh pull from irmain into their fork and do any necessary merge conflict resolutions.

If you must submit a patch, For details on how to contribute a patch, check out this post by Scott Hanselman. It’s written for SourceForge and DasBlog, but the same thing applies to RubyForge and IronRuby. Also, http://www.eqqon.com/index.php/Collaborative_Github_Workflow has a very good description of the workflow and tips and tricks when contributing to a project hosted on GitHub.

Ideas for contributions

See the Contribution Ideas page.

Who is working on what

See the People page for contact information of the contributors, or send an email to the mailing list. If you want to collaborate on any of the tasks, please contact the persons listed below. They would appreciate getting help, and you can coordinate your efforts.

If you have your name listed below, please update this page with information about your status (even if it is to say something like “I wont be working on this for the next two weeks…”), if there are tasks you are looking for collaborators, etc.

Also, make sure your project is represented in ironruby-contrib.

Rails

Jimmy Schementi, Ray Vernagus

Details status about setting up Rails, running the unit tests, etc, is at http://www.ironruby.net/Documentation/Rails.

Silverline – Rails and Silverlight integration

Jimmy Schementi

This was last demoed at RailsConf 2008.

RubyGems

Shri Borde, Jirapong Nanta

We have reduced the number of failueres from 200+ down to about 20. The current results are here. The tests can now be run from a Dev.bat environment, and will soon be part of continuous integration. So this project is mostly wrapping up (successfully).

Cucumber

Chamini Gallage

Magic

Thibaut Barrère

IronRuby MVC

Jimmy Schementi, Ivan Porto Carrero

Hpricot

Daniele Alessandri

Status: the master branch (compatible with Hpricot 0.6.164) and the 0.7_experimental branch (compatible with Hpricot 0.8.1) in the repository both pass all the tests of the original Hpricot test suite, what is left is a major clean up and some refinements to the code.

Json

Daniele Alessandri

Status: it somewhat works but needs to be tested, so bugs are expected at this stage. A rewriting of the original definition file for Ragel is planned to improve the C# code of the ParserEngine class which currently is not so object oriented.

Silverlight

Jimmy Schementi

IRDb / activerecord-irdb-adapter

Project State: Alpha
Developer(s): Ray Vernagus
A 100% Ruby wrapper on top of the .NET Data Provider Model. It currently supports SQL Server and Oracle but will gradually include all databases that publish a .NET Data Provider. IRDb can be used alone or it can be used in conjunction with Rails through the activerecord-irdb-adapter.

OpenSSL

Jirapong Nanta

Status: There are about 330 methods for OpenSSL library. Less than ten RubySpec are available. The focus of the project will be implementation the functionality that is needed for RubyGems and Rails scenarios. e.g. OpenSSL::X509::Certificate. Current results of running mspec ci library\openssl can be found here.

Work process:

  • Checkout ruby 1.8 source code
  • review OpenSsl implementation in C (ruby_1_8\ext\openssl)
  • review OpenSsl usage in RubyGems (e.g. rubygems\lib\rubygems\gem_openssl.rb)
  • write RubySpec
  • implement a wrapper to System.Security.Cryptography namespaces
  • Refactor < – > Push

Some useful documentations can be found at http://technorama.net/~oss/ruby/openssl/doc/

Porting SOAP Weather Widget

Shay Friedman

Status – project was created, started porting the Silverlight code.

IO.popen

Thibaut Barrère

RubySpec bugs

Tim Chen

Mixing Ruby mocking with .NET mocking frameworks

Mark Ryall, Ivan Porto Carrero

Investigated Moq and NMock and found that they were not a good match. A project called Caricature has been started to implement mocking directly in IronRuby

IronNails

Ivan Porto Carrero

IronRuby DBIADO.NET DBI implementation

Ivan Porto Carrero

ironruby-rack

Run Rack-based Ruby application on IIS with IronRuby

Jimmy Schementi, Justin Rudd

IronRubyInline

Compile C#, Visual Basic, or F# code inline with your IronRuby programs!

Ray Vernagus