Hi David,
I'm not aware of any current effort to add support for Metro. There was some mention of someone attempting it a long time ago, but I've never heard back from them so I don't expect that effort still exists.
For contributing to GitHub, you basically just want to fork the repository you want to work on.
Add your changes on your own fork, and then when the changes have been tested and are ready for merging, just issue a pull-request:
GitHub provides a good guide on how to do this here:
Basically if you want to do any disruptive changes or are unsure whether a feature should be added to the main project, you should consult this list. Most new features should ideally be added via
plugins.
If you want to add support for a different platform, then we just use #define build symbols, there's plenty of examples in the ServiceStack.Text and ServiceStack.Common code-bases. Basically each new platform should take a copy of the project file in its own directory, and the
VS.NET project should include the build symbol for your platform, see the different platforms in ServiceStack.Text as an example:
Only the client libraries (e.g. ServiceStack.Text + ServiceStack.Common) are needed in order to call ServiceStack services.
Thanks,