Skip to content

Guidelines for transferring projects to Web API Contrib

Jordan Gray edited this page Apr 10, 2014 · 5 revisions

If you have a project you would like to transfer to Web API Contrib, join the WebApiContrib Google Group and tell us about it! We'll take a look and decide if it would be a good fit with Web API Contrib. (Don't worry—we're friendly and we love hearing about new projects!)

Things to know in advance

Project maintenance

If you transfer a project to Web API Contrib we expect you to continue to maintain it, both in terms of documentation and bug fixes. A number of projects we've rolled in now require a few of us to maintain, and we don't really have the time to do them all justice.

Copyright

Feel free to retain any copyright to the original source, though future contributions may amend that copyright. We don't have any sort of agreement in place to transfer copyright to the original owner.

Future contributions

We will allow others to contribute who have owner or contributor rights to the project.

You can follow either a pull request workflow for your own code or just push directly as you do now. We don't have a standard workflow, though we often follow the pull request workflow to facilitate comments and review.

Preparing for the transfer

Once you have go-ahead, there are a few things you can do to help to make your project consistent with other projects in Web API Contrib.

Project names

Projects in Web API Contrib should be named after the project namespace. Most projects will fit into one of the following parent namespaces:

  • WebApiContrib.Formatting if it is a MediaTypeFormatter implementation;
  • WebApiContrib.IoC if it is a dependency resolver;
  • WebApiContrib.Tracing if it is a TraceWriter implementation; or
  • WebApiContrib if it doesn't fit into one of the above categories.

If you know which of these your project best fits into, you can save time before the transfer by renaming it and changing the namespace accordingly.

Project organisation

Most projects in Web API Contrib follow a set of organisational conventions. Following these makes it easier for new contributors to work with your code by maintaining consistency between different projects.

  • samples: sample projects.
  • src: source code projects.
  • test: unit test projects.
  • tools: configuration for development/build tools, e.g. nunit, psake. Each tool generally has its own subfolder within the tools folder.

You may not need all of these folders for your project, but we recommend that you use them when they are relevant. The project solution file should be located in the root of your repository.

psake build

Most of our projects have a standard psake build, though it's not strictly required. If you would like to add one but are not sure where to start, look for the tools/psake folder in some of our existing projects for examples.

How to transfer

We need to give you admin privileges before you make the transfer, so once you're ready, ping us on the Google Group and we'll set that up.

Once you've heard back from us, you can make the transfer by following the instructions on transferring repositories to another user:

  1. Open the repository's page on GitHub.
  2. Click Settings from the repository action bar.
  3. Click Transfer—it's near the bottom of the page in the Transfer ownership section.
  4. Enter the repository name to confirm that you understand what you are doing and agree to it.
  5. Type "WebApiContrib" under new owner and click I understand, transfer this repo.

After transferring

Your project is now part of Web API Contrib! Of course, we hope you will continue to maintain it by addressing issues and improving on it. You may also wish to add your project to the main project readme and update the wiki.

Chris Missal runs the CI builds on myget and generates NuGet packages upon request.