We are a group of people passionate about data structures and algorithms. We eye for implementing all the complex data structures. Our project is licensed under BSD license. See the license file on our repository for details.
We also aim to provide APIs for the code in every programming language starting with C++, Python and Java. Currently we are using Python because, the software development can happen at a much faster pace and it is much easier to test various software designs and APIs as coding them out takes no time.
Our plan of action for adding any new data structures is described in the following steps,
- Use cases and API design - We will start with some use cases of the data structure to be added and then some APIs will be proposed. The discussion will move from specific to generic cases and will be done in a new issue.
- Class design - After discussing the higher level APIs we will move on to discuss the class design. The contributor is expected to propose their abstract class design in a PR.
- Implementation - In this phase the implementation for the proposed data structure should be added in the PR created in the previous phase.
- Adding test cases - Test cases should be added and the code coverage should be maximised. If the test cases pass and the code coverage is satisfactory the PR will be merged.
Our Pull Request policy is given below, The following should be done for any new Pull Request(PR) made to this repository,
- The PR should be labelled with appropriate labels, can be done only by those who have write access.
- Provide reviews - Make sure that the PR doesn’t break any existing tests, coding style.
- Wait period - Wait for the author to respond to the reviews. If they don’t respond for continuously two weeks then close that PR and create an issue if the PR was good and wasn’t fixing any existing open issue.
- If the PR is passing tests and there are no pending reviews then merge the PR, again only for those who have write access.