This lays down a formal specification on how to contribute to the development of the software. The standard policies are, unlike most larger projects, less stringent and fairly beginner friendly. This is due to the project being in its infancy, at present.
There are four primary principles which every contributor is expected to heed:
- This project welcomes contributors of all levels equally: beginners or seasoned programmers (whom we all can learn a lot from!!). Being respectful and constructive to everyone is expected by default.
- Adherence to standards are a must. Everyone is expected to submit PRs with reasonably clean and standard code, with explanations as to the use of any special design patterns (if implemented). The code must pass all tests (if any) and CodeQL checks.
- No change to any form of design (logo, name, presentation of software) would, at the moment, be accepted. Suggestions to the improvement of the same are always welcome, though.
- As of now, no changes in license (obviously), code of conduct, changelogs, security notice or contribution guidelines are invited.
- A potential contributor should find an issue they wish to work on. Or they can raise one (whatever it may be) if they are unable to see their problem.
- Fork the repo (and maybe star it...? Just kidding)
- Clone the forked project.
- Branch out. It is highly recommended for the branch name to have the issue number the potential contributors are tackling.
- Potential contributors are to make necessary changes and keep committing their work at checkpoints.
- Then they are to make a Pull Request once they are done with all the changes.
- Now wait for code reviews and approvals. If any revisions, changes or improvements on the code are asked for, the contributors are expected to make the required alterations and push the commits.
- The PR would be merged when the moderators are satisfied with the resolution of the issue. In the success of the said event, the potential contributor becomes a contributor.
- When raising an issue, potential contributors are expected to follow the general template (already provided) with comprehensive discussion on it.
- If a potential contributor wishes to work on an issue, they are expected to declare the same in the comments, in which case they shall be assigned to work on the issue.
- A potential contributor has 48 hours in general (and 24 hours during the Hacktoberfest) to supply an update with respect to the issue. Failure to do so shall result in the person being unassigned (not banned in any way) from an issue.
- Declaration of interest to work on issues shall be done on a first-come-first-serve policy. Once unassigned, the next potential contributor to declare interest shall be assigned the issue.
- PRs are not expected to be merged if it doesn't meet the standards of the codebase or they don't solve the issue being tackled.