Skip to content

Latest commit

 

History

History
56 lines (49 loc) · 2.68 KB

File metadata and controls

56 lines (49 loc) · 2.68 KB

Pandora Language Contribution Guide

Hello! Thank you for your interest in this project!
This is contribution guide for Pandora Language - the package description file for Atlas Linux package manager.
If you wanna take a part in this project, please follow provided instructions.

Tip

Github Repository Issues

Found a bug? Want to suggest an improvement? Want to give us some tips?
You can always open new issue in this repository with Issues tab!

Note

Issues requirements:

  1. Your problem wasn't reported earlier (use search for check).
  2. Clear and understandable description of problem.
  3. Provided examples or any other extra information.

Github Pull Requests

Note

Ensure that

  • your code matches the project's code style
  • your code doesn't break program's work
  • you've written readable and understandable code

Note

Please do...

  • Verify your code with project requirements
  • Provide necessary examples or any other extra information of changes
  • Provide detailed description of your work in pull request
  • Format your code with command: make format

Project Code Style

  1. Namings must be clear and understandable.
    Variables/Functions use snake_case, and for public versions prepend the header it is defined in (for types (excluding structures) _t at the end: token_t).
    Structs/Unions/Enums use PascalCase Defined Constants (#define) should have SCREAMING_SNAKE_CASE.
    Other Constants should have prefix k.
  2. Includes are located at the start, standard library headers must be separated from user header files.
  3. Repeating code suggested to be in separated function.
  4. No Magic Numbers. If you need to use that number, declare a constant with it.
  5. Comments should be minimal and helpful. Please do not leave a comment saying "foo gets set to 7"
    Always leave necessary documentation for provided API and changes.
  6. The code blocks should not be "glued together", they should be separated according to their logical meaning. AKA put line breaks after loops, group variables, etc.
  7. Header Guard should follow next syntax: PROJECTNAME_[SUBDIRS_]MODULENAME_H_
    • PROJECTNAME - uppercase project name (here PND)
    • SUBDIRS - optional nested directories
    • MODULENAME - uppercase module name
    • Suffix H is mandatory