Conventions and Guidelines » Historie » Verze 6
Eliška Mourycová, 2021-04-18 11:25
1 | 1 | Eliška Mourycová | h1. Conventions and Guidelines (WIP) |
---|---|---|---|
2 | |||
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 | Use this status, when the issue is for a doing work on a task, which was not originally requested by the sponsor??? |
||
13 | * *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 | * *Invalid* |
||
18 | Use this status, when the issue is not going to be worked on. |
||
19 | |||
20 | |||
21 | h4. Priority |
||
22 | |||
23 | Available priority levels are: |
||
24 | |||
25 | * *Low* |
||
26 | * *Normal* |
||
27 | * *High* |
||
28 | * *Urgent* |
||
29 | |||
30 | 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. |
||
31 | 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. |
||
32 | |||
33 | h4. Tracker |
||
34 | |||
35 | 3 | Eliška Mourycová | This section explains, which tracker should be used for which type of issue. |
36 | 1 | Eliška Mourycová | |
37 | 3 | Eliška Mourycová | * *Bug* |
38 | 2 | Eliška Mourycová | Use this tracker when the issue references a known bug that needs to be fixed. |
39 | 1 | Eliška Mourycová | * *Enhancement* |
40 | ??? |
||
41 | * *Task* |
||
42 | 3 | Eliška Mourycová | Use this tracker for issues related to implementation of a designed/analyzed part of the system. |
43 | 1 | Eliška Mourycová | * *Support* |
44 | Use this tracker for issues related to non-implementation task, e.g. any meeting issues, wiki editing, ... |
||
45 | * *Feature* |
||
46 | 3 | Eliška Mourycová | ??? |
47 | 2 | Eliška Mourycová | |
48 | 1 | Eliška Mourycová | h3. Logging Time |
49 | 3 | Eliška Mourycová | |
50 | 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. |
51 | 3 | Eliška Mourycová | |
52 | 2 | Eliška Mourycová | h4. Activity for Time Logging |
53 | 3 | Eliška Mourycová | |
54 | 1 | Eliška Mourycová | * *Unspecified* |
55 | Do not use this activity. |
||
56 | * *Analysis* |
||
57 | 5 | Eliška Mourycová | Use this activity, when you're logging time for anything analytical, for example research/brainstorming of any kind/... |
58 | 1 | Eliška Mourycová | * *Design* |
59 | 5 | Eliška Mourycová | Use this activity, when you're logging time for designing something, however *Analysis* can be used instead. |
60 | 3 | Eliška Mourycová | * *Implementation* |
61 | 5 | Eliška Mourycová | Use this activity, when you're logging time for implementing (coding) anything. |
62 | 3 | Eliška Mourycová | * *Verification* |
63 | 5 | Eliška Mourycová | Use this activity, when you're logging time for verifying someone else's work. |
64 | 3 | Eliška Mourycová | * *Documentation* |
65 | 5 | Eliška Mourycová | Use this activity, when you're logging time for creating/editing some documentation for exaplmple in some wiki page(s). |
66 | 2 | Eliška Mourycová | * *Administrative* |
67 | 5 | Eliška Mourycová | Use this activity for meetings. |
68 | 2 | Eliška Mourycová | |
69 | 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. |
||
70 | 1 | Eliška Mourycová | |
71 | |||
72 | |||
73 | h2. Code Contributions (Commits) |
||
74 | |||
75 | h3. Linking Commits to Issues |
||
76 | 4 | Eliška Mourycová | |
77 | 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. |
||
78 | 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). |
||
79 | It is preferable for the keyword(s) to appear at the very beginning of a commit message. |
||
80 | 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. |
81 | |||
82 | 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). |
||
83 | |||
84 | h3. Commit messages |
||
85 | |||
86 | Every commit must have a commit message briefly explaining what the changes in the commit do. |
||
87 | |||
88 | |||
89 | 3 | Eliška Mourycová | h3. End of Iteration Tags |
90 | 1 | Eliška Mourycová | |
91 | 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. |
92 | 1 | Eliška Mourycová | |
93 | |||
94 | h2. Coding and Code Documentation |
||
95 | |||
96 | 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. |
||
97 | |||
98 | 3 | Eliška Mourycová | |
99 | h3. General Naming Conventions |
||
100 | https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions |
||
101 | |||
102 | 4 | Eliška Mourycová | Choose easily readable identifier names |
103 | Favor readability over brevity |
||
104 | Do not use underscores, hyphens, or any other nonalphanumeric characters |
||
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 | 3 | Eliška Mourycová | |
122 | h3. Code Commenting |
||
123 | |||
124 | 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) |
125 | 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 |
||
126 | Sign each file you create (at the beginning of the file add a comment with the following line): "Author: Your Name" |
||
127 | 3 | Eliška Mourycová | |
128 | h2. Wiki Documentation |
||
129 | 4 | Eliška Mourycová | |
130 | On the wiki main page, you can find links to most of the important pages related to the project. |
||
131 | 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. |
||
132 | Write/edit pages in English. |