Skip to content

Latest commit

 

History

History
87 lines (44 loc) · 4.03 KB

CONTRIBUTING.md

File metadata and controls

87 lines (44 loc) · 4.03 KB

Contributing

Code of Conduct

While contributing to this project, you must follow our Code of Conduct, which is a set of rules that you must follow to ensure the quality of the project and the safety of the developers and users of any application made by it.

Types of contributions

Bug reports & feature requests

If you discover a bug or want to ask for a feature, you will want to create a new issue on the issues and select the Issue or Feature request as the template.

Security vulnerabilities

Security vulnerabilities are something serious, and while they're not fixed, they must be kept private, so if you discover a security vulnerability, you must report it privately through Github to ensure that the vulnerability is fixed before it's exploited. This can be done through the Security Advisories.

Code contribution

Any major contribution made by collaborators must be made through a pull request, and it must be approved by at least one of the collaborators. This also counts for users that want to contribute to the project.

Minor contributions, such as fixing typos, can be made directly through the GitHub interface and pushed directly to the main branch.

Pull Request & Issues

You must follow the pull request template when creating a pull request or an issue, and you must follow the pull request checklist.

Always be sure that you're using the latest branch, and that you're not creating a pull request or an issue that's already made.

Reviewing

All reviews must check the code quality of the code generator and the output code.

Code generator

Code quality

The code of the code generator must have the best quality possible, generating the best code possible, and it must be easy to understand and maintain.

Reviews must ensure that the new code follows the same indentation, spacing, and other code style rules as the rest of the project.

Performance

While the code generator performance is not a priority, it must be kept in mind if it starts to take too long to generate the code.

Reviews must check if there is no unnecessary code, like loops that can be optimized to be faster by asynchronizing them.

Output code

Code quality

Code quality of the output code is extremely important, to ensure the quality of the project and the safety of the developers and users of any application made by it.

It must never have duplicated code, unnecessary checks or loops.

Reviews must ensure that the new code follows the same indentation, spacing, and other code style rules as the rest of the output codes.

Performance

Even though VNs don't need to be extremely fast, we must ensure that the output code is as fast as possible, to ensure that we follow the PerformanC philosophy.

Reviews must ensure that no optimizations can be done to the output code, even in special cases like 1 scene with a character, in all cases.

The PerformanC philosophy

The PerformanC philosophy is a set of rules that we follow to ensure that the project is the best it can be and that it follows the PerformanC philosophy.

Listed in priority order, the topics are:

Security

Before everything, security is the most important thing, ensure that the code is impossible to exploit and hard to misuse.

Portability

One code, multiple platforms. A good code can be used on multiple platforms, and it must be easy to port the code to other platforms.

Code quality

Always make good code, that is easy to understand, maintain and re-use. Think like it will last forever.

Performance

Don't wait for machines to get faster, make the code faster. Performance is never enough if you can make it faster without sacrificing code quality, security or portability.

Innovation

Innovate the wheel if that will make it better. Don't be afraid to try new things, and don't be afraid to fail. Everything from this world was someone that went against the flow and tried something new.