How To Evaluate Contribution Type
When contributing to a codebase, it's crucial to assess the impact and quality of your contributions. Contributions can be categorized into three main types: Bug Fixes, Feature Developments, and Optimizations. Each type has specific criteria to ensure fair evaluation and effective integration into the codebase.
Contribution Types
Feature Development
Name: Provide a short name for the feature you have developed which is aligned with the project requirements. For example, if the requirement is to implement login functionality using Firebase, you should name your submission something like "Firebase Login Button Functionality" to ensure clarity.
Description: Provide a brief description of the feature you have developed. Explain its purpose and how it meets the project requirements. This should give the reviewers a clear understanding of what your submission is intended to achieve.
External Libraries: List any external libraries you used in your project. Include the name and version of each library, and a brief explanation of why it was necessary.
Tools Used: Mention any tools or development environments you used to create your submission. This can include IDEs, version control systems, testing frameworks, etc.
Code: Mention the purpose of any additional files created, and ensure the code you submit is well-documented. You don't need to create a dissertation to accompany it, but at least add some comments explaining the purpose of each function or any variables that may not be understood at first glance.
Bugfix
Summary: Include a summary of the bug you found. Is it a small glitch? Is it an exploit that can steal user information?
Codebase: Mention which files or specific snippets of code generate the bug along with proof.
Impact: Provide an impact score of the bug.
Tools Used: Mention any tools you used to find the bug (e.g., clang static analyzer). You should also provide the result of the tool used if available (note: just for the specific bug).
Mitigation: If the bug can be fixed through coding changes, then provide a mitigation for it. If not, then provide a mitigation solution (e.g., update the version of Node.js from 0.x.x to 1.x.x).
Optimization
Name: Provide a short name for the optimization you have developed.
Description: Mention which part of the code you are optimizing, what effect it has (readability, efficiency, speed), and any metric you can use to quantify your optimization.
Code: Ensure the optimized code is well-documented, explaining the purpose of each change and how it improves the original code. Provide before-and-after metrics if possible.
Formatting
Ensure your submission is clean and well-structured to increase the chances of it being approved by a reviewer. The documentation for each submission type should be thorough and clear, reducing the work required by the reviewer, please refer to How to Present Your Contributions.
Evaluating Contribution Types
When evaluating the contributions, reviewers will consider the following factors:
Impact and Quality
Bug Fixes
High Impact: Directly addresses a critical vulnerability or exploit.
Medium Impact: Fixes significant issues that could lead to indirect damage or performance issues.
Low Impact: Addresses minor glitches or non-critical issues.
Feature Developments
High Quality: Fully meets the project requirements, is well-documented, and integrates seamlessly into the codebase.
Medium Quality: Partially meets the requirements, may need some refinements or additional documentation.
Low Quality: Does not meet the requirements fully or lacks proper documentation.
Optimizations
High Effectiveness: Significantly improves code performance, readability, or efficiency with measurable metrics.
Medium Effectiveness: Provides noticeable improvements but with minor impacts or less quantifiable metrics.
Low Effectiveness: Offers minimal improvements with little to no measurable impact.
Submission Integrity
Documentation: Ensure all necessary documentation is provided to support the contribution, reducing the need for reviewers to seek additional information.
Clarity: Clear and concise explanations help reviewers understand the purpose and impact of the contribution.
Tools and Methods: Use appropriate tools and methods to validate and support your submission.
By adhering to these guidelines, you enhance your chances of making valid contributions and earning rewards.
Last updated