talos

Форк
0
/
prototool.yaml 
99 строк · 11.6 Кб
1
protoc:
2
  version: 3.19.1
3
  includes:
4
    - vendor/
5

6
lint:
7
  group: empty
8
  ignores:
9
    - id: FILE_OPTIONS_GO_PACKAGE_NOT_LONG_FORM
10
      files:
11
        - vendor/google/rpc/status.proto
12

13
  rules:
14
    # The specific linters to add.
15
    # TODO Enable more: https://github.com/siderolabs/talos/issues/2722.
16
    add:
17
      # All rules except language-specific (C#, Java, Obj-C, PHP, Ruby, but not Go).
18
      # prototool lint --list-all-linters | grep -vE '(CSHARP|JAVA|OBJC|PHP|RUBY)'
19
      - COMMENTS_NO_C_STYLE                                            # Verifies that there are no /* c-style */ comments.
20
      - COMMENTS_NO_INLINE                                             # Verifies that there are no inline comments.
21
      # - ENUMS_HAVE_COMMENTS                                            # Verifies that all enums have a comment of the form "// EnumName ...".
22
      # - ENUMS_HAVE_SENTENCE_COMMENTS                                   # Verifies that all enums have a comment that contains at least one complete sentence.
23
      # - ENUMS_NO_ALLOW_ALIAS                                           # Verifies that no enums use the option "allow_alias".
24
      # - ENUM_FIELDS_HAVE_COMMENTS                                      # Verifies that all enum fields have a comment of the form "// FIELD_NAME ...".
25
      # - ENUM_FIELDS_HAVE_SENTENCE_COMMENTS                             # Verifies that all enum fields have a comment that contains at least one complete sentence.
26
      - ENUM_FIELD_NAMES_UPPERCASE                                     # Verifies that all enum field names are UPPERCASE.
27
      - ENUM_FIELD_NAMES_UPPER_SNAKE_CASE                              # Verifies that all enum field names are UPPER_SNAKE_CASE.
28
      # - ENUM_FIELD_PREFIXES                                            # Verifies that all enum fields are prefixed with [NESTED_MESSAGE_NAME_]ENUM_NAME_.
29
      # - ENUM_FIELD_PREFIXES_EXCEPT_MESSAGE                             # Verifies that all enum fields are prefixed with ENUM_NAME_.
30
      - ENUM_NAMES_CAMEL_CASE                                          # Verifies that all enum names are CamelCase.
31
      - ENUM_NAMES_CAPITALIZED                                         # Verifies that all enum names are Capitalized.
32
      # - ENUM_ZERO_VALUES_INVALID                                       # Verifies that all enum zero value names are [NESTED_MESSAGE_NAME_]ENUM_NAME_INVALID.
33
      # - ENUM_ZERO_VALUES_INVALID_EXCEPT_MESSAGE                        # Verifies that all enum zero value names are ENUM_NAME_INVALID.
34
      - FIELDS_NOT_RESERVED                                            # Verifies that no message or enum has a reserved field.
35
      - FILE_HEADER                                                    # Verifies that the file header matches the expected file header if the file_header option is set in the configuration file.
36
      - FILE_NAMES_LOWER_SNAKE_CASE                                    # Verifies that the file name is lower_snake_case.proto.
37
      # - FILE_OPTIONS_EQUAL_GO_PACKAGE_PB_SUFFIX                        # Verifies that the file option "go_package" is equal to $(basename PACKAGE)pb.
38
      # - FILE_OPTIONS_EQUAL_GO_PACKAGE_V2_SUFFIX                        # Verifies that the file option "go_package" is equal to the last two values of the package separated by "."s, or just the package name if there are no "."s.
39
      - FILE_OPTIONS_GO_PACKAGE_NOT_LONG_FORM                          # Verifies that the file option "go_package" is not of the form "go/import/path;package".
40
      - FILE_OPTIONS_GO_PACKAGE_SAME_IN_DIR                            # Verifies that the file option "go_package" of all files in a directory are the same.
41
      - FILE_OPTIONS_REQUIRE_GO_PACKAGE                                # Verifies that the file option "go_package" is set.
42
      - GOGO_NOT_IMPORTED                                              # Verifies that the "gogo.proto" file from gogo/protobuf is not imported.
43
      - IMPORTS_NOT_PUBLIC                                             # Verifies that there are no public imports.
44
      - IMPORTS_NOT_WEAK                                               # Verifies that there are no weak imports.
45
      # - MESSAGES_HAVE_COMMENTS                                         # Verifies that all non-extended messages have a comment of the form "// MessageName ...".
46
      # - MESSAGES_HAVE_COMMENTS_EXCEPT_REQUEST_RESPONSE_TYPES           # Verifies that all non-extended messages except for request and response types have a comment of the form "// MessageName ...".
47
      # - MESSAGES_HAVE_SENTENCE_COMMENTS_EXCEPT_REQUEST_RESPONSE_TYPES  # Verifies that all non-extended messages except for request and response types have a comment that contains at least one complete sentence.
48
      - MESSAGES_NOT_EMPTY_EXCEPT_REQUEST_RESPONSE_TYPES               # Verifies that all messages except for request and response types are not empty.
49
      - MESSAGE_FIELDS_DURATION                                        # Verifies that all non-map fields that contain "duration" in their name are google.protobuf.Durations.
50
      # - MESSAGE_FIELDS_HAVE_COMMENTS                                   # Verifies that all message fields have a comment of the form "// field_name ...".
51
      # - MESSAGE_FIELDS_HAVE_SENTENCE_COMMENTS                          # Verifies that all message fields have a comment that contains at least one complete sentence.
52
      - MESSAGE_FIELDS_NOT_FLOATS                                      # Verifies that all message fields are not floats.
53
      - MESSAGE_FIELDS_NO_JSON_NAME                                    # Verifies that no message field has the "json_name" option set.
54
      # - MESSAGE_FIELDS_TIME                                            # Verifies that all non-map fields that contain "time" in their name are google.protobuf.Timestamps.
55
      - MESSAGE_FIELD_NAMES_FILENAME                                   # Verifies that all message field names do not contain "file_name" as "filename" should be used instead.
56
      - MESSAGE_FIELD_NAMES_FILEPATH                                   # Verifies that all message field names do not contain "file_path" as "filepath" should be used instead.
57
      - MESSAGE_FIELD_NAMES_LOWERCASE                                  # Verifies that all message field names are lowercase.
58
      - MESSAGE_FIELD_NAMES_LOWER_SNAKE_CASE                           # Verifies that all message field names are lower_snake_case.
59
      - MESSAGE_FIELD_NAMES_NO_DESCRIPTOR                              # Verifies that all message field names are not "descriptor", which results in a collision in Java-generated code.
60
      - MESSAGE_NAMES_CAMEL_CASE                                       # Verifies that all non-extended message names are CamelCase.
61
      - MESSAGE_NAMES_CAPITALIZED                                      # Verifies that all non-extended message names are Capitalized.
62
      # - NAMES_NO_COMMON                                                # Verifies that no type name contains the word "common".
63
      # - NAMES_NO_DATA                                                  # Verifies that no type name contains the word "data".
64
      # - NAMES_NO_UUID                                                  # Verifies that no type name contains the word "uuid".
65
      - ONEOF_NAMES_LOWER_SNAKE_CASE                                   # Verifies that all oneof names are lower_snake_case.
66
      - PACKAGES_SAME_IN_DIR                                           # Verifies that the packages of all files in a directory are the same.
67
      - PACKAGE_IS_DECLARED                                            # Verifies that there is a package declaration.
68
      - PACKAGE_LOWER_CASE                                             # Verifies that the package name only contains characters in the range a-z0-9 and periods.
69
      - PACKAGE_LOWER_SNAKE_CASE                                       # Verifies that the package is lower_snake.case.
70
      # - PACKAGE_MAJOR_BETA_VERSIONED                                   # Verifies that the package is of the form "package.vMAJORVERSION" or "package.vMAJORVERSIONbetaBETAVERSION" with versions >=1.
71
      - PACKAGE_NO_KEYWORDS                                            # Verifies that no packages contain one of the keywords "internal,public,private,protected,std" as part of the name when split on '.'.
72
      # - REQUEST_RESPONSE_NAMES_MATCH_RPC                               # Verifies that all request names are RpcNameRequest and all response names are RpcNameResponse.
73
      - REQUEST_RESPONSE_TYPES_AFTER_SERVICE                           # Verifies that request and response types are defined after any services and the response type is defined after the request type.
74
      # - REQUEST_RESPONSE_TYPES_IN_SAME_FILE                            # Verifies that all request and response types are in the same file as their corresponding service and are not nested messages.
75
      # - REQUEST_RESPONSE_TYPES_ONLY_IN_FILE                            # Verifies that only request and response types are the only types in the same file as their corresponding service.
76
      # - REQUEST_RESPONSE_TYPES_UNIQUE                                  # Verifies that all request and response types are unique to each RPC.
77
      # - RPCS_HAVE_COMMENTS                                             # Verifies that all rpcs have a comment of the form "// RPCName ...".
78
      # - RPCS_HAVE_SENTENCE_COMMENTS                                    # Verifies that all rpcs have a comment that contains at least one complete sentence.
79
      # - RPCS_NO_STREAMING                                              # Verifies that all rpcs are unary.
80
      - RPC_NAMES_CAMEL_CASE                                           # Verifies that all RPC names are CamelCase.
81
      - RPC_NAMES_CAPITALIZED                                          # Verifies that all RPC names are Capitalized.
82
      - RPC_OPTIONS_NO_GOOGLE_API_HTTP                                 # Verifies that the RPC option "google.api.http" is not used.
83
      # - SERVICES_HAVE_COMMENTS                                         # Verifies that all services have a comment of the form "// ServiceName ...".
84
      - SERVICES_HAVE_SENTENCE_COMMENTS                                # Verifies that all services have a comment that contains at least one complete sentence.
85
      # - SERVICE_NAMES_API_SUFFIX                                       # Verifies that all service names end with "API".
86
      - SERVICE_NAMES_CAMEL_CASE                                       # Verifies that all service names are CamelCase.
87
      - SERVICE_NAMES_CAPITALIZED                                      # Verifies that all service names are Capitalized.
88
      # - SERVICE_NAMES_MATCH_FILE_NAME                                  # Verifies that there is one service per file and the file name is service_name_lower_snake_case.proto.
89
      - SERVICE_NAMES_NO_PLURALS                                       # Verifies that all CamelCase service names do not contain plural components.
90
      - SYNTAX_PROTO3                                                  # Verifies that the syntax is proto3.
91
      - WKT_DIRECTLY_IMPORTED                                          # Verifies that the Well-Known Types are directly imported using "google/protobuf/" as the base of the import.
92
      # - WKT_DURATION_SUFFIX                                            # Verifies that all google.protobuf.Duration field names are "duration" or end in "_duration".
93
      # - WKT_TIMESTAMP_SUFFIX                                           # Verifies that all google.protobuf.Timestamp field names are "time" or end in "_time".
94

95
break:
96
  include_beta: false
97
  allow_beta_deps: false
98

99
# We don't use prototool for code generation, so there are no settings for that.
100

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.