Coding Protocol
Before starting to code, make sure the task is tracked on Issues or Kanban board.
For minor changes navigate to the Issues tab, and check to see whether the issue you want to address is already listed. If not list it and assign it to yourself.
For implementing new algorithms or data structures navigate to the Kanban board, and check to see whether the feature you want to implement is listed under any of the columns. If not add it under ToDo column, and assign it to yourself. Once the implementation is complete and the feature is merged in with the master branch add it to the Content page.
Other than that you can also pick existing items in the Issues or ToDo column in the Kanban board, or add new items.
When the work item is documented and tracked:
On your local machine, clone this repository:
git clone https://github.com/PiJei/CSFundamentalAlgorithms.git
Create a new local branch:
git checkout -b dev/{username}/{feature}.
Be aware that direct pushes to the master branch are prevented by default.
When your implementation is complete and it is ready for a code review push your local branch to the repository:
git push --set-upstream origin dev/{username}/{feature}.
Navigate to your branch via GitHub API and create a pull request.
Once your pull request is reviewed/approved and you have addressed all the comments, squash and merge it with the master branch.
Coding guidelines
Coding standards for this repository are moderated via .editorconfig file at the root directory.
Our recommended IDE is Visual Studio latest version (2019 as of this writing).
Every *.cs file should start with the License Header. If using Visual Studio, install License Header Manager. For guidelines on how to use this extension see here.
To name unit test follow standards here, or briefly follow this pattern: {Name of the method being tested}_{What is being tested}_{Expected behavior}.
For other naming conventions follow Microsoft General Naming Conventions.
Make sure to provide XML documentation for all the methods and their parameters using XML documentation features. The repository also uses DocFx for generating readable documentation. Install DocFx, and run
docfx .\docfx_project\docfx.json --serve .\docfx_project\_site\
, to visit the site locally, navigate tohttp://localhost:8080
.Any new algorithm and data structure implementation should be decorated with time and space complexity attributes, and should be completely tested by adding unit tests.
- Continuous integration (build and test) is enabled using CircleCI tool.