Hi there, and thanks for your interest in the C# ALGORITHMS repository. This document serves as a set of general guidelines for open-source contribution.
Please follow the Contributor Code of Conduct for all your interactions.
Please note that an issue is required for all project contributions. The following is a list of the different types of contributions:
-
To help keep the project running smoothly
-
To help improve existing functionality
-
To help increase the projects functionality
Please make sure you check out the issues first, someone might have started working on a similar idea already. If you are sure that what you want to contribute is new, then please open an issue describing what you want to implement before you decide to submit a PR.
Please refer to the Issue Templates to see the different types of contributions.
Pull requests should be submitted from your cloned repository's master
branch to the upstream master
branch. Please make sure that you rebase your local branch against the upstream branch before you submit your pull request.
Please make sure to refer to the Pull Request Guideline when submitting a new one.
We follow the official Microsoft C# Coding Conventions (see: below). Most of the styleguide is supported by default on Visual Studio, but you need to set it up as a policy from the Solution/Project properties window, in case you are using Visual Studio Community.
Please refer to the following guidelines:
If your implementation depends on a 3rd party library, and you think it is critical, then please communicate this before you change the solution/projects references. We are striving to provide a bare-bones library of data structures and algorithms.
In all cases, you should not commit the installed 3rd party libraries into the project. The README document will provide all the steps anyone would need to compile the library on their machine.
You should write a test for every data structure and algorithm you implement. The test should be created under the UnitTest
project and in the corresponding packages:
AlgorithmsTests
: Package hosting unit tests for the Algorithms project.DataStructuresTests
: Package hosting unit tests for the Data Structures project.