Skip to content

Contributing

Demis Bellot edited this page Dec 3, 2013 · 2 revisions

Ask a question

The easiest way to ask support questions is on Stack Overflow using the #ServiceStack hash tag.

Contributing code

Our source is developed & published on GitHub.com (learn more). If you are new to Git, check out the Pro Git Book online or at your bookseller of choice.

From any of the ServiceStack code repositories on GitHub, you can Fork the code to your own GitHub account.

To get the source on your local development machine, simply clone your local forked repo using Git:

git clone https://github.com/USERNAME/PROJECT.git

Each repository has a README that should be helpful to learn more about the specifics of the language, project and its development environment.

Please ensure any code contributions include tests that should verify the behavior of new features, verify the issue that a fix fixes and to prevent future regressions or even a reproducible failing tests if you want to report an issue.

Contribution License Agreement (CLA)

In order to become a contributor to the ServiceStack projects on GitHub you must follow some legal requirements and approve the ServiceStack Contributor License Agreement.

Until you meet the legal requirements your pull requests / source contributions will not be considered or reviewed.

Please configure your Git client with a name and email address to use for your commits. This will also help the team validate your CLA status:

git config user.name Your Name
git config user.email YourAlias@YourEmailDomain

Step-by-step guide

Checkout the latest code

In order to obtain the source code you need to become familiar with Git (see progit.org/book/) and Github (see help.github.com/) and you need to have Git installed on your local machine. You can obtain the source code from Github by following the these steps on your local machine:

  1. Go to https://github.com/ServiceStack/[PROJECT]
  2. In GitHub Click on the Fork button
  3. Clone the repository on your local machine with the following Git command git clone git@github.com:[USERNAME]/[PROJECT]

Create bug fixes and features

You can then start to make modifications to the code in your local Git repository. For commits to ServiceStack v3, this should be done in the v3 branch. Note: all contributions must come with tests verifying the desired behavior.

You can commit your work with following commands:

  1. Switch to the v3 branch for ServiceStack v3.x git checkout v3
  2. Add and commit your local changes git commit -a -m 'commit message describing changes'
  3. Push your changes from your local repository to your github fork git push origin v3

Once your code is in your github fork, you can then submit a pull request for the team's review. You can do so with the following commands:

  1. In GitHub click on the Pull Request button
  2. In the pull request select your fork as source and ServiceStack/[PROJECT] as destination for the request
  3. Write detailed message describing the changes in the pull request
  4. Submit the pull requst for consideration by the Core Team

If there are conflicts between your fork and the main project one, github will warn you that the pull request cannot be merged. If that's the case, you can do the following:

  1. Add remote to your local repository using the following Git commands git remote add upstream -f git@github.com:ServiceStack/[PROJECT]
  2. Update your local repository with the changes from the remote repository by using the following Git commands (make sure you're in the branch you're submitting the code from) git merge upstream/v3
  3. Resolve any conflicts locally and finally do another push with the command git push origin v3

Please keep in mind that not all requests will be approved. Requests are reviewed by the Core Team on a regular basis and will be updated with the status at each review. If your request is accepted you will receive information about the next steps and when the request will be integrated in the main branch. If your request is rejected you will receive information about the reasons why it was rejected.

Code Reviews

The ServiceStack community has a discussion group used for submitting code reviews and discussing design changes, best practices, and other important topics. Any disruptive changes to any project should be discussed here before any code is contributed.

Expect a good amount of feedback as part of any pull request: not only which branch to merge to and from, but also consistency guidelines, matching existing code, and making targeted, smart changes when fixing bugs.

Thank you

Huge thanks go to the contributors from the community who have been actively working with the ServiceStack community.

You can find a list of contributors here.



  1. Getting Started
    1. Create your first webservice
    2. Your first webservice explained
    3. ServiceStack's new API Design
    4. Designing a REST-ful service with ServiceStack
    5. Example Projects Overview
  2. Reference
    1. Order of Operations
    2. The IoC container
    3. Metadata page
    4. Rest, SOAP & default endpoints
    5. SOAP support
    6. Routing
    7. Service return types
    8. Customize HTTP Responses
    9. Plugins
    10. Validation
    11. Error Handling
    12. Security
  3. Clients
    1. Overview
    2. C# client
    3. Silverlight client
    4. JavaScript client
    5. Dart Client
    6. MQ Clients
  4. Formats
    1. Overview
    2. JSON/JSV and XML
    3. ServiceStack's new HTML5 Report Format
    4. ServiceStack's new CSV Format
    5. MessagePack Format
    6. ProtoBuf Format
  5. View Engines 4. Razor & Markdown Razor
    1. Markdown Razor
  6. Hosts
    1. IIS
    2. Self-hosting
    3. Mono
  7. Security
    1. Authentication/authorization
    2. Sessions
    3. Restricting Services
  8. Advanced
    1. Configuration options
    2. Access HTTP specific features in services
    3. Logging
    4. Serialization/deserialization
    5. Request/response filters
    6. Filter attributes
    7. Concurrency Model
    8. Built-in caching options
    9. Built-in profiling
    10. Messaging and Redis
    11. Form Hijacking Prevention
    12. Auto-Mapping
    13. HTTP Utils
    14. Virtual File System
    15. Config API
    16. Physical Project Structure
    17. Modularizing Services
    18. MVC Integration
  9. Plugins 3. Request logger 4. Swagger API
  10. Tests
    1. Testing
    2. HowTo write unit/integration tests
  11. Other Languages
    1. FSharp
    2. VB.NET
  12. Use Cases
    1. Single Page Apps
    2. Azure
    3. Logging
    4. Bundling and Minification
    5. NHibernate
  13. Performance
    1. Real world performance
  14. How To
    1. Sending stream to ServiceStack
    2. Setting UserAgent in ServiceStack JsonServiceClient
    3. ServiceStack adding to allowed file extensions
    4. Default web service page how to
  15. Future
    1. Roadmap
Clone this wiki locally
You can’t perform that action at this time.