-
Notifications
You must be signed in to change notification settings - Fork 24
/
ReleaseNote.txt
378 lines (314 loc) · 17.3 KB
/
ReleaseNote.txt
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
= Release Note=
* 0.5.0 (2023.??)
- Breaking Change
* Changed command line flag behavior (removed non-functional flags and updated `--var`)
* 0.2.2.13 (2010.10.06)
- Bug Fix
* When running on multiple target directory, the problem which shows incorrect analyzed file count is fixed.
* 0.2.2.12 (2010.09.05)
- Bug Fix
* RULE_3_3_A_start_function_name_with_upperrcase_windows.py
The false alarm which occurs "_tWinMain", "_tmain" is fixed.
* 0.2.2.11 (2010.07.14)
- Bug Fix
* RULE_7_1_B_A_do_not_use_double_assignment.py
The false alarm which occurs when string contains = = is fixed.
* 0.2.2.10 (2010.07.06)
- Bug Fix
* 0.2.2.8의 버그 Fix
* 0.2.2.8 (2010.07.06)
- Bug Fix
* "" 를 스트링으로 인식하지 못해 그 뒤의 " 까지를 스트링으로 처리하는 문제 해결
* 0.2.2.7 (2010.07.05)
- Bug Fix
* 멀티 라인 스트링이 인식되지 않아 False Alarm을 일으키는 문제 해결
* 0.2.2.6 (2010.05.31)
- Bug Fix
* 클래스 정의시 클래스 앞에 매크로를 넣을 경우 매크로를 클래스명으로 인식하는 버그 수정
#define __declspec(dllexport) DLLEXPORT
class DLLEXPORT CCamRecorderFactory
{
}
* 0.2.2.5 (2010.05.28)
- Bug Fix
* Enum 블럭에서 ( ) 를 사용할 경우 RULE_4_1_B_locate_each_enum_item_in_seperate_line.py 오류가 발생하는 문제 해결
* 객체 배열을 구성할 경우, RULE_6_1_A_do_not_omit_function_parameter_names.py 오류가 발생하는 문제 해결
예)
CPoint BtnTeamPos[] = { CPoint(BTN_SINGLE_POS_X, BTN_SINGLE_POS_Y),
CPoint(BTN_TEAM_A_POS_X, BTN_TEAM_A_POS_Y),
CPoint(BTN_TEAM_B_POS_X, BTN_TEAM_B_POS_Y),
CPoint(BTN_TEAM_C_POS_X, BTN_TEAM_C_POS_Y)
};
* 0.2.2.4 (2010.05.20)
- Bug Fix
* "이 아닌 \로 여러라인에 걸쳐 스트링을 작성하는 경우 라인 위치를 잘못 판단하는 문제 해결
* 0.2.2.3 (2010.05.19)
- Bug Fix
* Visual C++의 일부 키워드들을 클래스 명으로 오검출 문제 해결 (__declspec 등)
* Managed C++의 이벤트 키워드들을 함수 명으로 오검출 문제 해결
* 매크로 함수에 대해 함수 선언으로 오검출 문제 해결 - 전체 명칭이 대문자로 구성되었을때 매크로 함수로 인식하도록 처리
* RULE_4_2_A_A_space_around_operator - 후위 증감연산자는 단항연산자임에도 공백을 두도록 오검출하는 문제 해결
* 0.2.2.0 (2010.05.18)
- Bug Fix
* 업데이트 불가 문제 해결
* 0,2.1.3 (2010.05.03)
- Bug fix
* RULE_4_2_A_A_space_around_operator.py 에서
#include <magic++.h> 와 같은 구문에서 오류를 출력하는 문제 해결
* 0.2.1.2 (2010.04.06)
- Bug fix
* operator() 정의 구문을 함수로 인식못하는 문제 해결
* 0.2.1.1 (2010.03.27)
- Bug fix
* RULE_3_2_B_do_not_use_same_filename_more_than_once.py
stdafx 파일의 경우 파일명 중복 사용을 허용함
* 0.2.1.0 (2010.03.27)
- 기능 개선
* basefilelist.txt 를 강제로 사용하지 않게 하는 --noBase 옵션 추가
- Bug fix
* Window Message Macro가 함수로 인식되는 문제 해결
* UnitTest++ 분석시 메모리 사용이 과도하여 Crash 되는 문제 해결
* 0.2.0.7 (2010.02.05)
- Bug Fix
* fo 라는 ID사용시 Crash 되는 문제 해결
* 0.2.0.6 (2010.01.24)
- Bug Fix
* 옵션을 잘못 넣었을때 에러 메시지를 찍지 못하고 Crash 하는 버그 수정
* 0.2.0.5 (2009.12.28)
- Bug Fix
* 다음과 같은 코드에서 std::string("XXX") 원소들을 모두 함수 이름으로 처리하는 오류 해결
const std::string seasons = {
std::string("Spring"),
std::string("Summer"),
};
* 0.2.0.4 (2009.12.23)
- Bug Fix
* 1개 파일을 분석할때 Script 오류가 발생하는 문제 해결
* 0.2.0.3 (2009.11.25)
- 기능 개선
* 외부 서버도 사용가능하도록 빌드 스크립트 수정
- Bug Fix
* 없음
========================================================================================
* 0.2.0.2 (2009.11.19)
- 기능 개선
* 없음
- Bug Fix
* RULE_4_2_A_B_space_around_word.py
- #include <boost/preprocessor/repetition/for.hpp> 구문에서 false alarm 발생 문제 해결
========================================================================================
* 0.2.0.1 (2009.11.18)
- 기능 개선
* 없음
- Bug Fix
* -f -o 옵션 파일명에 " 가 있을 경우, 상대패스로 해석되는 문제 해결
========================================================================================
* 0.2.0.0 (2009.11.18)
- 기능 개선
* FileFilter에 룰이 기재되지 않을 경우, 에러 메시지를 출력하고 프로그램이 종료되도록 수정
* 출력을 최소화한 CI 모드 추가 --ci
* 코드 정리 (Unused Variable 등)
* CheckStyle 결과와 호환되는 XML 결과 출력 - 기존 CheckStyle HudsonPlugin 류 사용 가능
* 업데이트 버젼 검출에서 Version 스트링이 다를 경우 단순히 업데이트 했던 것을 변경하여,
Version이 낮을 경우에만 업데이트하도록 수정
- Bug Fix
* 기존에 동작하지 않던 force-lang 옵션 삭제
========================================================================================
* 0.1.3.4 (2009.10.14)
- 기능 개선
* 없음
- Bug Fix
* RULE_3_3_B_start_private_function_name_with_underbar.py 의 메시지 오탈자 수정
========================================================================================
* 0.1.3.3 (2009.10.06)
- 기능 개선
* 없음
- Bug Fix
* RULE_3_3_B_start_private_function_name_with_underbar.py 가 operator에는 동작하지 않도록 변경
========================================================================================
* 0.1.3.2 (2009.09.30)
- 기능 개선
* 없음
- Bug Fix
* Function Name 룰 실행이 함수 호출에 대해서도 실행되는 문제 수정
========================================================================================
* 0.1.3.1 (2009.09.29)
- 기능 개선
* 없음
- Bug Fix
* RULE_3_3_B_start_private_function_name_with_underbar.py 가 생성자도 검출하는 문제 해결
========================================================================================
* 0.1.3.0 (2009.09.24)
- 기능 개선
* XML Output 기능 추가 (--output=xml)
- Bug Fix
* operator 재정의시 이를 함수로 인식하지 않는 문제 해결
* RULE_3_3_A_start_function_name_with_lowercase_unix.py False Alarm 생성자/파괴자에서 해결
========================================================================================
* 0.1.2.1 (2009.08.28)
- Bug Fix
* exe 파일에 대한 업데이트를 하지 않도록 수정
* 1번째 라인에서 column 이 잘못 계산되는 문제 해걸
* 룰 수정
- RULE_4_1_C_align_long_function_parameter_list.py 에서 메시지가 잘못 나오는 문제 해결
========================================================================================
* 0.1.2.0 (2009.08.28)
- 기능 개선
* Function Rule / Type Rule 이 Prepressor 구문에서는 동작하지 않도록 수정
- Bug Fix
* 파서 수정
- #, ## 키워드를 인식하도록 수정
* 룰 수정
- RULE_3_2_F_use_representitive_classname_for_cpp_filename
* struct도 기준으로 삼도록 변경
- RULE_3_3_A_start_function_name_with_is_or_has_when_return_bool
* Prev Token을 뒤져 bool 을 리턴하는 지 확인할 때, ; 를 먼저 만나면 룰을 중단하도록 수정
- RULE_3_3_A_start_function_name_with_lowercase_unix
* 생성자, 소멸자의 경우 적용하지 않도록 수정
- RULE_4_1_C_align_long_function_parameter_list
* TC 추가
- RULE_4_2_A_A_space_around_operator
* Preprocess 구문에서도 동작하도록 수정. \ 가 뒤에 있을 경우 에러 미출력
- RULE_4_2_A_B_space_around_word
* Preprocess 구문에서도 동작하도록 수정. \ 가 뒤에 있을 경우 에러 미출력
- RULE_6_1_A_do_not_omit_function_parameter_names
* TC 추가
- RULE_6_5_B_do_not_use_lowercase_for_macro_constants
* TC 추가
- RULE_7_1_C_do_not_use_question_keyword
* Macro 구문에서도 동작 하도록 수정
- RULE_7_2_B_do_not_use_goto_statement
* Macro 구문에서도 동작 하도록 수정
- RULE_9_2_D_use_reentrant_function
* toupper의 경우 사용자가 에러 출력 여부를 결정할 수 있도록 수정
========================================================================================
* 0.1.1.0 (2009.08.27)
- 기능 개선
* { } 쌍이 ifdef 문에 의해 서로 쌍이 맞지 않은 경우, 강제로 제일 마지막 매칭 쌍을 대입하도록 처리
* verbose 모드에서 발생한 에러의 function stack trace 출력
* 외부 변수을 입력 받을 수 있도록 수정
- 프로그램 실행시 --var=key:value 또는 filefilter.txt에 % key:value,key,value 형식으로 변수 전달 가능
- 현재 사용중인 변수는 tabsize:4 임.
- Bug Fix
* filefilter에 설정한 절대패스(//로 시작)를 인식하지 못하는 문제 해결
* auto 키워드 인식
* Multiline Preprocess 구문 미인식 문제 해결
* 룰 수정
* RULE_3_3_A_start_function_name_with_upperrcase_windows.py
* RULE_4_1_B_indent_each_enum_item_in_enum_block.py
* RULE_4_1_B_locate_each_enum_item_in_seperate_line.py
* RULE_4_2_A_A_space_around_operator.py
* RULE_4_5_A_brace_for_namespace_should_be_located_in_seperate_line.py
* RULE_4_5_A_braces_for_function_definition_should_be_located_in_seperate_line.py
* RULE_4_5_A_braces_for_type_definition_should_be_located_in_seperate_line.py
* RULE_4_5_A_matching_braces_inside_of_function_should_be_located_same_column.py
* RULE_5_2_C_provide_doxygen_class_comment_on_class_def.py
* RULE_5_2_C_provide_doxygen_namespace_comment_on_namespace_def.py
* RULE_5_2_C_provide_doxygen_struct_comment_on_struct_def.py
* RULE_5_3_A_provide_doxygen_function_comment_on_function_in_impl.py
* RULE_6_1_A_do_not_omit_function_parameter_names.py
* RULE_6_1_G_write_less_than_200_lines_for_function.py
* RULE_6_4_B_initialize_first_item_of_enum.py
* RULE_4_5_A_matching_braces_inside_of_function_should_be_located_same_column.py
* RULE_A_3_avoid_too_deep_blocks.py
* RULE_4_1_B_indent_each_enum_item_in_enum_block.py
* RULE_3_3_B_start_private_function_name_with_underbar.py
* RULE_4_1_B_locate_each_enum_item_in_seperate_line.py
* RULE_4_5_A_indent_blocks_inside_of_function.py
* RULE_8_1_A_provide_file_info_comment.py
========================================================================================
* 0.1.0.1 (2009.08.25)
- Bug Fix
* RULE_6_1_A_do_not_omit_function_parameter_names 룰 오류 수정
* 0.1.0 (2009.08.21)
- 전면 재 개발. google cpplint 를 더이상 사용하지 않음. 신규 개발한 룰엔진 / 룰 구조로 변경 (룰 동적 추가 용이)
- 추가된 기능
* C/C++용 룰 46개 지원.가용 룰은 아래 가용 룰 리스트 참조.
- 룰 리스트 출력 : -r 옵션
* 레가시 파일의 측정 제외를 위한 basefilelist.txt 파일 인식
- basefilelist.txt는 특정 시점의 Code Snapshot(파일명+사이즈쌍)를 포함하는 파일임
- basefilelist.txt가 분석하려는 폴더 내에 있을 경우, 이 파일을 읽어서 현재 파일과
비교하여, 파일명이 없거나 또는 사이즈가 변경되는 경우에만 코드를 분석함.
- nsiqcppstyle은 이 파일의 생성을 지원하지 않으며, 자매 도구인 nsiqcollector 를
사용하여 생성.(-g 옵션)
* 자동 업데이트. 매번 툴을 실행시마다 서버에서 신규 버젼 체크하여, 신규 버젼이 존재시
변경 / 신규 파일의 자동 업데이트
- 이 기능을 원하지 않을 경우 프로그램 실행시 --no-update 옵션을 지정
* 룰 위반 Suppression 기능
- 소스 코드내의 각 위반 발생 라인의 뒤쪽에 // NS 추가하여 해당 라인에서 발생한 모든
위반 Suppression
- 소스 코드내의 첫번째 커멘트에 -- RULE명 을 추가하여, 해당 룰에서 발생한 모든 위반
Suppression (반드시 첫번째 Comment여야 함.)
* 룰 위반 별로 Rule Doc URL 출력 가능 (--show-url 옵션)
- 룰 Doc 서버 제공 http://nsiqcppstyle.nsiq.nhncorp.com:8080/rule_doc
* 위반 결과 출력 방법 추가
- Eclipse : --output=eclipse 옵션
- CSV : --output=csv 옵션
- 코딩 스탠다드 도구 특성상 출력 결과가 방대하기 때문에, 데이터 사이즈 제한이 큰
HTML / Excel 출력은 미지원함.
* Summary Report 출력 개선
- Quality Practice의 요구사항인 Build Quality 결과 바로 출력
- 파일별로 위반한 룰 개수 출력
* 윈도우 : Binary 제공. 윈도우에서는 더 이상 Python 을 별도로 설치할 필요 없음
* 리눅스/맥 : Python 2.3 ~ Python 2.6 지원. Python 3.0은 지원하지 않음.
- 버그 Fix
* 전면 재개발에 따라 기존 버그 없음.
- 가용 룰 리스트
~ RULE_10_1_A_do_not_use_bufferoverflow_risky_function_for_unix
~ RULE_10_1_B_do_not_use_bufferoverflow_risky_function_for_windows
~ RULE_3_1_A_do_not_start_filename_with_underbar
~ RULE_3_2_B_do_not_use_same_filename_more_than_once
~ RULE_3_2_CD_do_not_use_special_characters_in_filename
~ RULE_3_2_F_use_representitive_classname_for_cpp_filename
~ RULE_3_2_H_do_not_use_underbars_for_cpp_filename
~ RULE_3_2_H_do_not_use_uppercase_for_c_filename
~ RULE_3_3_A_start_function_name_with_is_or_has_when_return_bool
~ RULE_3_3_A_start_function_name_with_lowercase_unix
~ RULE_3_3_A_start_function_name_with_upperrcase_windows
~ RULE_3_3_B_start_private_function_name_with_underbar
~ RULE_4_1_A_A_use_tab_for_indentation
~ RULE_4_1_A_B_use_space_for_indentation
~ RULE_4_1_B_indent_each_enum_item_in_enum_block
~ RULE_4_1_B_locate_each_enum_item_in_seperate_line
~ RULE_4_1_C_align_long_function_parameter_list
~ RULE_4_1_E_align_conditions
~ RULE_4_2_A_A_space_around_operator
~ RULE_4_2_A_B_space_around_word
~ RULE_4_4_A_do_not_write_over_120_columns_per_line
~ RULE_4_5_A_braces_for_function_definition_should_be_located_in_seperate_line
~ RULE_4_5_A_braces_for_type_definition_should_be_located_in_seperate_line
~ RULE_4_5_A_braces_inside_of_function_should_be_located_in_end_of_line
~ RULE_4_5_A_indent_blocks_inside_of_function
~ RULE_4_5_A_matching_braces_inside_of_function_should_be_located_same_column
~ RULE_4_5_B_use_braces_even_for_one_statement
~ RULE_5_2_C_provide_doxygen_class_comment_on_class_def
~ RULE_5_2_C_provide_doxygen_namespace_comment_on_namespace_def
~ RULE_5_2_C_provide_doxygen_struct_comment_on_struct_def
~ RULE_5_3_A_provide_doxygen_function_comment_on_function_in_header
~ RULE_5_3_A_provide_doxygen_function_comment_on_function_in_impl
~ RULE_6_1_A_do_not_omit_function_parameter_names
~ RULE_6_1_E_do_not_use_more_than_5_paramters_in_function
~ RULE_6_1_G_write_less_than_200_lines_for_function
~ RULE_6_2_A_do_not_use_system_dependent_type
~ RULE_6_4_B_initialize_first_item_of_enum
~ RULE_6_5_B_do_not_use_lowercase_for_macro_constants
~ RULE_6_5_B_do_not_use_macro_for_constants
~ RULE_7_1_B_A_do_not_use_double_assignment
~ RULE_7_1_C_do_not_use_question_keyword
~ RULE_7_2_B_do_not_use_goto_statement
~ RULE_8_1_A_provide_file_info_comment
~ RULE_9_1_A_do_not_use_hardcorded_include_path
~ RULE_9_2_D_use_reentrant_function
~ RULE_A_3_avoid_too_deep_blocks
========================================================================================
* 0.0.2 (2009.07.27)
- filefilter 가 적용되지 않는 문제 해결
- 마지막 리포팅 시에 룰별 위반 개수 출력하도록 개선
- 툴 이름 변경 nsiqcppcheck ==> nsiqcppstyle
========================================================================================
* 0.0.1 (2009.07.24)
- 초기버젼 릴리즈
- 기능 리스트
* nsiqcollector의 filefilter 사용하여 분석할 파일 범위 / 룰 범위 셋팅
- nsiqcollector에서 사용하는 filefilter.txt내에 사용할 룰을 "~"를 붙여 기록함
* 분석 결과를 console로 출력함.