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> 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>
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.
