TracNav
<notextile> Checking out the source </notextile>
The Subversion repository resides at http://svn.typosphere.org/typo, so checking out the current trunk can happen with a command like: svn co http://svn.typosphere.org/typo/trunk

<notextile> Creating a patch </notextile>

Tickets are fine, but patches are great. If you want to change something in typo or fix a bug you've run across, there's no faster way to make it happen than to do it yourself. typo thrives on the contributions of the many contributors all around the world. Please do become one of them.

1. Get typo ready for patching

  • Check out the trunk using: svn co http://svn.typosphere.org/typo/trunk
    2. Make a test-driven change
  • Add or change unit tests that would prove that your change worked.
  • Make the change to the source
  • Verify that all existing tests still work as well as all the new ones you added by running rake
    3. Share your well-tested change
  • Create a diff with your changes: svn diff > my_properly_named_patch.diff
  • Please note: Running the diff command from the root of your typo install eases the main developers jobs since they don't need to bother with changing into subdirectories when applying it
  • Create a new ticket with [PATCH] as the first word in the summary and upload (not paste) your diff.
  • Keep an eye on your patch in case there are any reservations raised before it can be applied.
    4. Bask in the glory of being a typo contributor!

Blatantly ripped from http://dev.rubyonrails.com

Source style

See wiki:CodingStyle

Why Didn't My Patch Get Accepted?

  • The maintainers are busy doing other stuff
  • You added functionality without adding tests. Tests are vital. Without tests we don't know what's deliberate and what's accidental, we don't know what you patch is supposed to do. Without tests we can't be confident that when we extend typo we're not breaking something else.

Seriously, any patch that isn't a behavior neutral refactoring must come with tests. Give me a failing test suite that explains the functionality you need and I'll be far happier than if you give me a fabulous patch that does everything you want, but which doesn't explain itself with tests.

And yes, I know I've broken the 'new functionality => new tests' rule on occasion, but I usually end up paying for it the hard way.

Also available in: HTML TXT