summaryrefslogtreecommitdiff
path: root/Documentation/CODE
blob: ce7e3a671fc17891f1f30d0cd85c5617097d326d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
WHAT RULES I SHOULD FOLLOW WHEN I WANT WORK ON SOMETHING FOR KDE TEAM?
If you asked this question you are reading right file.

So the rules are these:

 - always use kde4-* eclasses. kde4-base for applications with main CMakeLists.txt in toplevel
   source directory, kde4-meta for applications hidden deeper in source code directory structure
   and requiring common CMakeLists.txt from toplevel directory.
   See also KMEXTRA, KMEXTRACTONLY, KMCOMPILEONLY eclass variables.

 - always report CMake issues about everything directly to upstream and backport their fix.

 - never use -j1 in ebuilds. Always report the issue upstream and wait for the resolution or fix yourself

 - doubleckeck the doc useflag in your package. For kde4-meta style ebuilds - look for doc/${PN}
   or similar directory. Sometimes application handbooks are not trivial to assign (for example
   kde-base/khelpcenter ebuild), in such case ask Gentoo KDE team/HT members or contact upstream.

 - think about adding debug USE flag to your package. Do not add debug USE flag for artwork-only and
   python-only KDE packages. And don't forget to write metadata.xml entries for new local USE flags.

 - always check for linguas and add them to the KDE_LINGUAS variable.

 - always fix automagic packages with macro_optional_ prefixing and report it upstream with patch.

 - check your apps deps with dylink scanner in maintainer folder. Be aware, that this tool does not
   return complete runtime dependency chain, still it will find most automagic linking dependencies.

 - if you want our herd in the application and you are not Gentoo KDE team/HT member - ask us first.

 - handle blocks carefully. Put blocks only in RDEPEND section and comment the reason for the block.
   Block, if possible should contain specific version for the blocker. Below are most typical
   scenarios for kde-base/ related blocks, your should use this as a pattern, unless you know what you're doing.

- all kde4 and kde-live misc applications should be in SLOT="4". Feel free to fix packages that don't
  follow this, and always add the correct blockers (be carefull not to block kde3 packages)

   * ebuild rename not colliding with KDE3 ebuilds (see example kde-menu -> kdebase-menu)

   !kdeprefix? ( !<old_cat>/<old_pkg>[-kdeprefix] )
   kdeprefix? ( !<old_cat>/<old_pkg>:${SLOT} )

TODO
TODO    ie. we introduce blocker for 4.1.87 then we add to the block !<cat/pn-4.1.87
TODO    remember to use correct +-kdeprefix resolution
TODO   !kdeprefix? ( !<cat/pn-version[kdeprefix-] )
TODO   kdeprefix? ( !<cat/pn-version:slot[kdeprefix] )
TODO


Commiting:

 - try to keep one commit per change if possible. If more appropriate - one commit per feature.

 - all commit messages must look like this:

   <category/pn> - <detailed message describing what you did>
   Also append package version, when needed.

Examples:

   kde-base/kdelibs-4.2.3 - Synced with tree: fixed bug #333452, removed unnecessary solid patch, added debug to IUSE.

   kde-base/kdelibs-4.2.3 - Moved to tree.

 - when you commit something related to existing bugzilla bug, add inOverlay to keywords to that bug,
   so that developers know about it. Also add [overlay-name] to bug summary.

 - if you refactor ebuild names in kde-base, *always* synchronize those changes in following locations
   if applicable:

   * sets/

   * Documentation/package.keywords/

   * Documentation/package.unmask/

   Remember to do not edit autogenerated files, as your changes will be lost in next
   regenerate-files tool run.

KDE 3:
 - do what ever you want with one condition, make sure it really compiles/run
 - feel free to commit patches without kde team ack if the above condition is checked
 - all kde3 apps should have SLOT="3.5". Feel free to fix packages that don't follow this
   rule and don't forget to add correct blockers

# NOT FOLLOWING THIS RULES WILL BE PUNISHED!
# no cookies for week!