Conventions and Guidelines » Historie » Verze 11
Roman Kalivoda, 2021-04-19 09:29
1 | 9 | Eliška Mourycová | h1. Conventions and Guidelines |
---|---|---|---|
2 | 1 | Eliška Mourycová | |
3 | h2. Issue Management |
||
4 | |||
5 | 5 | Eliška Mourycová | h3. Creating/Editing an Issue |
6 | 1 | Eliška Mourycová | |
7 | 5 | Eliška Mourycová | h4. Status |
8 | |||
9 | * *New* |
||
10 | Use this status, when you're creating an issue and you don't know, which team member should resolve it, or if the issue concerns the whole team (e.g. team meetings) |
||
11 | * *Accepted* |
||
12 | 10 | Roman Kalivoda | Use this status, when the issue is for doing work on a task, which was not originally requested by the sponsor. _(Use it to distinguish issues in progress from new issues.)_ |
13 | 5 | Eliška Mourycová | * *Assigned* |
14 | Use this status when there is a known assignee for the issue. In such a case, fill in the assignee as well. |
||
15 | * *Resolved* |
||
16 | Use this status, when you finished working on the issue. |
||
17 | 10 | Roman Kalivoda | * _Invalid_ |
18 | _Use this status when the issue is not going to be worked on._ |
||
19 | 5 | Eliška Mourycová | |
20 | h4. Priority |
||
21 | |||
22 | Available priority levels are: |
||
23 | |||
24 | * *Low* |
||
25 | * *Normal* |
||
26 | * *High* |
||
27 | * *Urgent* |
||
28 | |||
29 | Setting a priority other than *Normal* is especially important, when dealing with issues in back log. That is, if an issue was not resolved in a past iteration and the issue needs to be finished as soon as possible, assign *High* or *Urgent* priority to it. If resolving the issue can wait, use *Low* priority. |
||
30 | Also, when an issue is due a date before the end of the iteration, because some other isues depend on it, it should have *High* or *Urgent* priority as well. |
||
31 | |||
32 | h4. Tracker |
||
33 | |||
34 | 3 | Eliška Mourycová | This section explains, which tracker should be used for which type of issue. |
35 | 1 | Eliška Mourycová | |
36 | 3 | Eliška Mourycová | * *Bug* |
37 | 2 | Eliška Mourycová | Use this tracker when the issue references a known bug that needs to be fixed. |
38 | 1 | Eliška Mourycová | * *Enhancement* |
39 | 11 | Roman Kalivoda | Use this tracker for issues related to tasks that were not originally requested. _(Use it for major project tasks, as product backlog?)_ |
40 | 1 | Eliška Mourycová | * *Task* |
41 | 8 | Eliška Mourycová | Use this tracker for "general" issues which only say "something should be done" but could contain within them analysis, implementation and more. |
42 | 1 | Eliška Mourycová | * *Support* |
43 | Use this tracker for issues related to non-implementation task, e.g. any meeting issues, wiki editing, ... |
||
44 | * *Feature* |
||
45 | 11 | Roman Kalivoda | Use this tracker for issues related to the implementation of a designed/analyzed part of the system. |
46 | 2 | Eliška Mourycová | |
47 | 1 | Eliška Mourycová | h3. Logging Time |
48 | 3 | Eliška Mourycová | |
49 | 5 | Eliška Mourycová | When logging time for an issue, you should write a short comment, unless the subject of the issue is self-explanatory and the issue is going to be resolved, after you log the time, e.g. logging time for meetings. |
50 | 3 | Eliška Mourycová | |
51 | 2 | Eliška Mourycová | h4. Activity for Time Logging |
52 | 3 | Eliška Mourycová | |
53 | 1 | Eliška Mourycová | * *Unspecified* |
54 | Do not use this activity. |
||
55 | * *Analysis* |
||
56 | 5 | Eliška Mourycová | Use this activity, when you're logging time for anything analytical, for example research/brainstorming of any kind/... |
57 | 1 | Eliška Mourycová | * *Design* |
58 | 5 | Eliška Mourycová | Use this activity, when you're logging time for designing something, however *Analysis* can be used instead. |
59 | 3 | Eliška Mourycová | * *Implementation* |
60 | 5 | Eliška Mourycová | Use this activity, when you're logging time for implementing (coding) anything. |
61 | 3 | Eliška Mourycová | * *Verification* |
62 | 5 | Eliška Mourycová | Use this activity, when you're logging time for verifying someone else's work. |
63 | 3 | Eliška Mourycová | * *Documentation* |
64 | 5 | Eliška Mourycová | Use this activity, when you're logging time for creating/editing some documentation for exaplmple in some wiki page(s). |
65 | 2 | Eliška Mourycová | * *Administrative* |
66 | 5 | Eliška Mourycová | Use this activity for meetings. |
67 | 2 | Eliška Mourycová | |
68 | If the work you did matches more than one of the activities, either log time separately or choose such activity you spent most time doing. |
||
69 | 1 | Eliška Mourycová | |
70 | |||
71 | |||
72 | h2. Code Contributions (Commits) |
||
73 | |||
74 | h3. Linking Commits to Issues |
||
75 | 4 | Eliška Mourycová | |
76 | Every commit must be linked to an issue, i.e. in each commit use the key word *Re #<issue-no>*. Alternatively, you can use the key word *refs #<issue1-no>, #<issue2-no>*, although it is preferable for each commit to be linked with exaclty one issue. |
||
77 | If you think your commit is not related to any existing issue, link it to the "Refactoring" issue (such issue will be prepared for every iteration). |
||
78 | It is preferable for the keyword(s) to appear at the very beginning of a commit message. |
||
79 | 1 | Eliška Mourycová | You can use other keywords for referencing issues in commit messages, e.g. *closes, fixes, done, fixed* - these keywords also affect the issue itself. It is not required to use these keywords. |
80 | |||
81 | Note.: The keywords are caseinsensitive and at least one blankspace or colon is needed between the keyword and the first hash to produce a match (taken from Redmine doc). |
||
82 | |||
83 | h3. Commit messages |
||
84 | |||
85 | Every commit must have a commit message briefly explaining what the changes in the commit do. |
||
86 | |||
87 | |||
88 | 3 | Eliška Mourycová | h3. End of Iteration Tags |
89 | 1 | Eliška Mourycová | |
90 | 5 | Eliška Mourycová | At the end of every iteration, the team members' work in separate branches should be merged into the master branch. This merge commit should be tagged as the end of iteration. |
91 | 1 | Eliška Mourycová | |
92 | |||
93 | h2. Coding and Code Documentation |
||
94 | |||
95 | When coding, use the generally known best practices (whether they concern the used language or not), see some of the coding conventions for C# at https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions. |
||
96 | |||
97 | 3 | Eliška Mourycová | |
98 | h3. General Naming Conventions |
||
99 | https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions |
||
100 | |||
101 | 7 | Eliška Mourycová | Choose easily readable identifier names. |
102 | Favor readability over brevity. |
||
103 | Do not use underscores, hyphens, or any other nonalphanumeric characters. |
||
104 | Name identifiers in English. |
||
105 | 3 | Eliška Mourycová | |
106 | h3. Capitalization Conventions |
||
107 | 1 | Eliška Mourycová | https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions |
108 | |||
109 | 4 | Eliška Mourycová | Use PascalCasing (i.e. camelCasing with the first character capitalized) for naming the following types of identifiers: |
110 | * Namespace |
||
111 | * Type |
||
112 | * Interface |
||
113 | * Method |
||
114 | * Property |
||
115 | * Event |
||
116 | * Field |
||
117 | * Enum value |
||
118 | 3 | Eliška Mourycová | |
119 | 6 | Eliška Mourycová | Use camelCasing for parameters. |
120 | Use ALL_CAPS for constants. |
||
121 | 1 | Eliška Mourycová | |
122 | 3 | Eliška Mourycová | h3. Code Commenting |
123 | |||
124 | 7 | Eliška Mourycová | Write all comments in English. |
125 | 4 | Eliška Mourycová | Use documentation comments for classes and methods (see https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/documentation-comments) |
126 | Use in-code comments too - the rules for this aren't strict, but try to comment every line/block of code, which might be even a little unclear to the reader |
||
127 | Sign each file you create (at the beginning of the file add a comment with the following line): "Author: Your Name" |
||
128 | 3 | Eliška Mourycová | |
129 | h2. Wiki Documentation |
||
130 | 4 | Eliška Mourycová | |
131 | On the wiki main page, you can find links to most of the important pages related to the project. |
||
132 | On some of the pages, the links to child pages appear in the text - if you struggle to find anything, go to *Index by title* and find the page you are looking for there. |
||
133 | Write/edit pages in English. |