CONTRIBUTING.md 1.53 KB
Newer Older
Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
1
2
# Rules for Contribution

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
3
- Respect 100 characters margin.
Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
4

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
5
6
- The indentation is 4 characters. Don't use tab for indentation.

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
7
8
9
10
11
12
13
14
15
16
- Avoid unnecessary comments. The code should be self explanatory.

- Write a simple and readable code.

- All functions and methods should be testable inside *lib* folder.

- Curly brackets for function, class, method and CSS class should be in new line.

- Class name, function, method names and variables should be camel cased.

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
17
- Only main files are allowed in the src folder (such as extension.js, prefs.js, stylesheet.css, metadata.json).
Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
18
19
20
21
22
23
24

- Singleton is not allowed for any files inside *lib* folder.

- Class constructor shouldn't do much. It is preferred to only use dependency injection if it is necessary.

- All image files should be inside *bin* folder.

25
- SVG and Image files should be released under GPLv3 license.
Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
26

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
27
- Overriding GNOME Shell theme is accepted and your style should be applied when the parent has *just-perfection* class in it (or starts with *just-perfection-*). But avoid styling top panel.
Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
28
29
30

- All *ui* files should be inside *ui* folder.

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
31
32
- All changes related to the GNOME Shell should pass through API (lib/API.js). Also API acts as compatibility layer.

Javad Rahmatzadeh's avatar
Javad Rahmatzadeh committed
33
34
35
36
37
38
39
## Translation

- You can find main translation file (pot file) in *po/main.pot*. That's the translation reference file.

- Initial language translation for current languages has been translated via online services. Feel free to edit that.

*This file may be updated in the future. Any change should be applied to all files in this repository.*