First of all, thank you for wanting to contribute to CUITe! Support from the community is what makes open source such a wonderful thing.
We want to keep it as easy as possible to contribute changes that get things working in your environment. There are a few guidelines that we need contributors to follow so that we have a chance of keeping on top of things.
A great way to contribute to the project is to send a detailed report when you encounter an issue. We always appreciate a well-written, thorough bug report, and will thank you for it!
Check that your issue isn't already submitted. If you find a match, please add a comment. Doing this helps prioritize the most common problems and requests.
All contribution is welcome. Did you find a typo? Found a bug and know how to fix it? Want to implement a new awesome feature? Do it! We will appreciate it. Any significant improvement should be documented as a GitHub issue before anybody starts working on it. This allows us to help and guide you on your way.
For the unexperienced GitHub developer, GitHub Collaborating contains information about forking and syncing while GitHub Flow describes the preferred way of working with branches.
To help easily identify what has actually changed between commits in the main repository, we recommend squashing commits down to as few discreet changesets as possible before submitting a pull request. Fixing a bug usually only requires one commit but adding a large feature may require a few commits in order to help track the improvements with each change.
See Squashing commits with rebase for help.
Some changes may have been made in the main repository while you were working in your fork. If that's the case, rebase your changes on top of the latest source code from the main repository.
See About Git rebase for additional help.
Your commit should have a descriptive message like "Fixed #123: CodedUI SetFocus on TextBox".
See Changing a commit message if you need help to change your commit message.
To successfully build and run tests, the following prerequisites are required:
- Visual Studio 2013 Premium or Ultimate
- Selenium components for Coded UI Cross Browser Testing
- Microsoft Visual Studio 2013 Coded UI Test Plugin for Silverlight
ReSharper is configured to our code guidelines. If you need to make changes to the configuration, please select Visual Studio menu item ReSharper > Manage Options... > Solution 'CUITe' team-shared > Edit Layer and make sure to save the changes. Use ReSharper and act on its error and warnings. Other than that the following guidelines are of importance:
- Indent with 4 spaces, not tabs
- Use
var
only when type is obvious - Use the C# type aliases for types that have them, e.g.
int
instead ofInt32
,string
instead ofString
etc - Use meaningful names
Run Build.bat from a command prompt to build and pack the NuGet packages using the Release configuration.
Run Test.bat from a command prompt to execute all unit and UI tests.