Thanks for your interest in contributing to the RoundhousE project! These guidelines will make it easier for the team to incorporate your submissions into the product.
The guidelines for contributing to RoundhousE follow closely those for the Chocolatey project. Please start by reviewing the Chocolatey guide here.
Chocolatey Contributing Guide
This guide contains much of what you will need to know.
As noted in the Chocolatey contributors guide, it is difficult to incorporate changes if the new code has been formatted in a different style from what is already prevailing in the existing code base.
Please observe the following code style in your own contributions.
Class, interface, and Enum names use UpperCaseStyle
except for the automated test classes (see tests style below). Interface names do not use the letter I so they are named just like classes.
public interface KnownFolders
public sealed class DefaultKnownFolders : KnownFolders
public enum RecoveryMode
{
NoChange,
Simple,
Full
}
Other items are named with all_lower_case
style. This includes namespaces, parameters, methods, variables, properties, fields, and constants.
long version_the_database(string repository_path, string repository_version);
private readonly FileSystemAccess file_system;
string current_version = database.get_version(repository_path);
The automated test class names also use the all_lower_case
style.
In addition to the case style the automated test classes use (BDD) behavior driven design naming. A review of the existing tests is the best way to get a feel for this so please look these over and use them as the basis for your own automated tests.
public class when_asking_the_container_to_resolve_an_item_and_it_does_not_have_the_item_registered : concern_for_container
public void should_throw_an_exception()
Indentation is 4 spaces without tabs. Braces are on a new line using BSD style.
namespace N
{
public class C
{
void foo();
private int prop_name { get; set; }
}
}
A .DotSettings file has been included in the solution for those using this tool. The ReSharper settings file contains the RoundhousE specific naming rules that differ from ReSharper defaults so if your own ReSharper settings differ significantly from the defaults the solution settings file will not cover all cases.
The EditorConfig extension for Visual Studio can be used to control some common settings including the tab size and use of spaces instead of tabs. An .editorconfig file is included for those using this extension. The EditorConfig extension is available in the Visual Studio extensions gallery.
NOTE: If you are new to EditorConfig please be aware that if you open a solution with an editorconfig file the extension will change and save your Visual Studio settings to match the file. Your Visual Studio settings will not revert back to their previous values automatically.