Projekt

Obecné

Profil

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.