We welcome contributions to the Distributed Task Kernel project! Whether it's bug fixes, new features, documentation improvements, or anything else, your help is appreciated.
Please take a moment to review this document to understand how to contribute effectively.
- Fork the Repository: Start by forking the
dtk-projectrepository to your GitHub account. - Clone Your Fork: Clone your forked repository to your local machine:
git clone https://github.com/M0hanrajp/distributed-task-kernel.git cd dtk-project - Create a New Branch: Create a new branch for your feature or bug fix. Use a descriptive name (e.g.,
feature/add-new-task-type,fix/scheduler-bug):git checkout -b feature/your-feature-name
- Make Your Changes: Implement your changes in the new branch.
- Test Your Changes:
- Ensure the project compiles without warnings or errors.
- Run the application (
./a.out) and manually test the functionality related to your changes. - Confirm that existing features still work as expected.
- If adding a new feature, demonstrate its functionality.
- Commit Your Changes: Commit your changes with a clear and concise commit message mentioned below.
git commit -m "feat: Add support for dynamic node scaling" - Push to Your Fork: Push your new branch to your GitHub fork:
git push origin feature/your-feature-name
- Create a Pull Request (PR):
- Go to your forked repository on GitHub.
- Click the "New Pull Request" button.
- Ensure your branch is selected for the comparison.
- Provide a clear title and a detailed description of your changes in the PR body. Reference any relevant issues.
- Readability: Prioritize clear, readable code. Use meaningful variable and function names.
- Indentation: Use consistent indentation (e.g., 4 spaces).
- Comments: Add comments where necessary to explain complex logic or non-obvious parts of the code. Use Doxygen-style comments (
/** ... */or///) for function documentation, as demonstrated indtk_kernel.hpp. - File Structure: Maintain the existing file structure (
dtk_kernel.hpp,dtk_kernel.cpp,dtk_task_handler.cpp,main.cpp).
If you find a bug, please open a new issue on the GitHub repository. When reporting a bug, please include:
- A clear and concise description of the bug.
- Steps to reproduce the behavior.
- Expected behavior.
- Actual behavior.
- Any relevant error messages or console output.
- Your operating system and compiler version.
We're open to new ideas! If you have a suggestion for an enhancement or a new feature, please open a new issue on the GitHub repository. Describe your idea clearly and explain why you think it would be a valuable addition.
Please follow these guidelines for your commit messages:
- Type: Start with a type tag (e.g.,
feat,fix,docs,refactor,test,build,ci).feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testsbuild: Changes that affect the build system or external dependenciesci: Changes to CI configuration files and scriptschore: Other changes that don't modify src or test files
- Subject: A concise, imperative mood, lowercase subject line (max ~50 chars).
- Body (Optional): A more detailed explanation if necessary. Wrap lines at 72 characters.
Example:
feat: Add dynamic node scaling
- Implemented logic to add/remove nodes during runtime.
- Updated scheduler to rebalance tasks when node count changes.
By contributing to DTK, you agree that your contributions will be licensed under the project's LICENSE file.