Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Heavy metal SOAP client
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Contribution Guide

This page describes how to contribute changes to Savon.

Please do not create a pull request without reading this guide first. Make sure to read the documentation for your version at and post questions to the mailing list.

Bug fixes

If you really think you found a bug, please make sure to add as many information as possible to the ticket. You're a developer, we are developers and you know we need tests to reproduce problems and make sure they don't come back.

So if you can reproduce your problem in a spec, that would be awesome! If you can't, please let us know how we could make this easier for you. Also, provide code and the WSDL of the service your working with so others can try to come up with a spec for your problem.

After we have a failing spec, it obviously needs to be fixed. Make sure your new spec is the only failing one under the spec directory. Travis only runs the "unit tests" at spec/savon, but Savon actually has with some additional "integration/example specs" at spec/integration, which you need to run locally to make sure the integration with real world services still works.

Notice that these specs are not run by Travis, because the service's are not guaranteed to work all the time and the specs will timeout after a few seconds when the service is currently down.

Please follow this basic workflow for pull requests:

Improvements and feature requests

If you have an idea for an improvement or a new feature, please feel free to create a new issue and describe your idea so that other people can give their insights and opinions. This is also important to avoid duplicate work.

Pull requests and issues on GitHub are meant to be used to discuss problems and ideas, so please make sure to participate and follow up on questions. In case noone comments on your ticket, please keep updating the ticket with additional information.

Something went wrong with that request. Please try again.