## Contributing **General Rules** - As much as possible, try to follow the existing format of markdown and code. - Don't forget to run `npm run check`,`npm run lint` and `npm test` before submitting pull requests. - Make sure that **100%** of your code is covered by tests. **Conventional Commits**
Identifier Purpose
feat Introduce a new feature
fix Fix an error or defect
chore General maintenance tasks (e.g., build, configuration, dependencies)
docs Documentation changes (additions, updates, fixes)
style Changes in code style, formatting, whitespace, etc. (no impact on functionality)
refactor Code refactoring (typically, no functional changes)
perf Performance optimizations
test Changes related to tests (additions, updates, fixes)
build Changes to the build system or external dependencies
ci Changes related to continuous integration and deployment (CI/CD)
revert Revert a previous commit
merge Merge branches or pull requests
release Commits related to version releases
**Contributing new features** - To ensure that there are no conflicts when merging the branch into the main branch, - it is necessary to perform the following steps each time new development is going to be conducted on non-main branches: - `git pull`, - `git rebase main` - resolve conflicts before continuing the development. - After new features developed - `git add .` - `git commit -m "feat(rbtree): features` - `feat(rbtree):` needs to be replaced by the module you have modified - `features` must be replaced by the detailed description about the features you implemented - `git push` - click the `New pull request` on Github https://github.com/zrwusa/data-structure-typed/branches **Contributing New Data Structures** - Make your pull requests to be **specific** and **focused**. Instead of contributing "several data structures" all at once contribute them all one by one separately (i.e. one pull request for "RBTree", another one for "AATree" and so on). - Modify **README.md** for each of the data structure **with explanations** of the algorithm and **with links** to further readings. - Describe what you do in code using **comments**.