Conventions and Guidelines » Historie » Verze 17
Alex Konig, 2021-06-10 14:33
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 | 14 | Alex Konig | Use this status, 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 | 15 | Alex Konig | * *Invalid* |
18 | Use this status when the issue is not going to be worked on. Or after the end of an iteration if an issue was not worked on at all. |
||
19 | 16 | Alex Konig | * *Closed* |
20 | Use this status after the end of an iteration on fulfilled issues or on issues that have not been done 100% but were worked on during the iteration. |
||
21 | 5 | Eliška Mourycová | |
22 | h4. Priority |
||
23 | |||
24 | Available priority levels are: |
||
25 | |||
26 | * *Low* |
||
27 | * *Normal* |
||
28 | * *High* |
||
29 | * *Urgent* |
||
30 | |||
31 | 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. |
||
32 | 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. |
||
33 | |||
34 | h4. Tracker |
||
35 | |||
36 | 3 | Eliška Mourycová | This section explains, which tracker should be used for which type of issue. |
37 | 1 | Eliška Mourycová | |
38 | 3 | Eliška Mourycová | * *Bug* |
39 | 2 | Eliška Mourycová | Use this tracker when the issue references a known bug that needs to be fixed. |
40 | 1 | Eliška Mourycová | * *Enhancement* |
41 | 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?)_ |
42 | 1 | Eliška Mourycová | * *Task* |
43 | 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. |
44 | 1 | Eliška Mourycová | * *Support* |
45 | Use this tracker for issues related to non-implementation task, e.g. any meeting issues, wiki editing, ... |
||
46 | * *Feature* |
||
47 | 11 | Roman Kalivoda | Use this tracker for issues related to the implementation of a designed/analyzed part of the system. |
48 | 2 | Eliška Mourycová | |
49 | 1 | Eliška Mourycová | h3. Logging Time |
50 | 3 | Eliška Mourycová | |
51 | 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. |
52 | 3 | Eliška Mourycová | |
53 | 2 | Eliška Mourycová | h4. Activity for Time Logging |
54 | 3 | Eliška Mourycová | |
55 | 1 | Eliška Mourycová | * *Unspecified* |
56 | Do not use this activity. |
||
57 | * *Analysis* |
||
58 | 12 | Roman Kalivoda | Use this activity, when you're logging time for anything analytical, for example, research/brainstorming of any kind/... |
59 | 1 | Eliška Mourycová | * *Design* |
60 | 12 | Roman Kalivoda | Use this activity, when you're logging time for designing something, however, *Analysis* can be used instead. |
61 | 3 | Eliška Mourycová | * *Implementation* |
62 | 5 | Eliška Mourycová | Use this activity, when you're logging time for implementing (coding) anything. |
63 | 3 | Eliška Mourycová | * *Verification* |
64 | 12 | Roman Kalivoda | Use this activity, when you're logging time for verifying someone else's work. _(+ testing?)_ |
65 | 3 | Eliška Mourycová | * *Documentation* |
66 | 12 | Roman Kalivoda | Use this activity, when you're logging time for creating/editing some documentation for example in some wiki page(s). |
67 | 2 | Eliška Mourycová | * *Administrative* |
68 | 13 | Eliška Mourycová | Use this activity for meetings and repository management (e.g. merging). |
69 | 1 | Eliška Mourycová | |
70 | 12 | Roman Kalivoda | If the work you did matches more than one of the activities, either log time separately or choose such activity you spent the most time doing. |
71 | 1 | Eliška Mourycová | |
72 | 17 | Alex Konig | h4. Bug reports |
73 | |||
74 | To save time in final phases of development bugs are reported with details (screenshots, descriptions of input etc.) in our private discord server. Bugs are then logged into redmine as a Bug, without any details, just names that provide easy identification. Bugs are not logged into any iteration, only after someone starts working on them they can change the version to current iteration. |
||
75 | |||
76 | 1 | Eliška Mourycová | h2. Code Contributions (Commits) |
77 | |||
78 | h3. Linking Commits to Issues |
||
79 | 4 | Eliška Mourycová | |
80 | 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. |
||
81 | 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). |
||
82 | It is preferable for the keyword(s) to appear at the very beginning of a commit message. |
||
83 | 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. |
84 | |||
85 | 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). |
||
86 | |||
87 | h3. Commit messages |
||
88 | |||
89 | Every commit must have a commit message briefly explaining what the changes in the commit do. |
||
90 | |||
91 | |||
92 | 3 | Eliška Mourycová | h3. End of Iteration Tags |
93 | 1 | Eliška Mourycová | |
94 | 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. |
95 | 1 | Eliška Mourycová | |
96 | |||
97 | h2. Coding and Code Documentation |
||
98 | |||
99 | 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. |
||
100 | |||
101 | 3 | Eliška Mourycová | |
102 | h3. General Naming Conventions |
||
103 | https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions |
||
104 | |||
105 | 7 | Eliška Mourycová | Choose easily readable identifier names. |
106 | Favor readability over brevity. |
||
107 | Do not use underscores, hyphens, or any other nonalphanumeric characters. |
||
108 | Name identifiers in English. |
||
109 | 3 | Eliška Mourycová | |
110 | h3. Capitalization Conventions |
||
111 | 1 | Eliška Mourycová | https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions |
112 | |||
113 | 4 | Eliška Mourycová | Use PascalCasing (i.e. camelCasing with the first character capitalized) for naming the following types of identifiers: |
114 | * Namespace |
||
115 | * Type |
||
116 | * Interface |
||
117 | * Method |
||
118 | * Property |
||
119 | * Event |
||
120 | * Field |
||
121 | * Enum value |
||
122 | 3 | Eliška Mourycová | |
123 | 6 | Eliška Mourycová | Use camelCasing for parameters. |
124 | Use ALL_CAPS for constants. |
||
125 | 1 | Eliška Mourycová | |
126 | 3 | Eliška Mourycová | h3. Code Commenting |
127 | |||
128 | 7 | Eliška Mourycová | Write all comments in English. |
129 | 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) |
130 | 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 |
||
131 | Sign each file you create (at the beginning of the file add a comment with the following line): "Author: Your Name" |
||
132 | 3 | Eliška Mourycová | |
133 | h2. Wiki Documentation |
||
134 | 4 | Eliška Mourycová | |
135 | On the wiki main page, you can find links to most of the important pages related to the project. |
||
136 | 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. |
||
137 | Write/edit pages in English. |