Ask a question
The easiest way to ask support questions is on Stack Overflow using the #ServiceStack hash tag.
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
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:
- Go to https://github.com/ServiceStack/[PROJECT]
- In GitHub Click on the Fork button
- Clone the repository on your local machine with the following Git command
git clone email@example.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:
- Switch to the v3 branch for ServiceStack v3.x
git checkout v3
- Add and commit your local changes
git commit -a -m 'commit message describing changes'
- 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:
- In GitHub click on the Pull Request button
- In the pull request select your fork as source and
ServiceStack/[PROJECT]as destination for the request
- Write detailed message describing the changes in the pull request
- 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:
- Add remote to your local repository using the following Git commands
git remote add upstream -f firstname.lastname@example.org:ServiceStack/[PROJECT]
- 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
- 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.
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.
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.