Linter rulesProtobufimport-no-weak

import-no-weak

Since 0.9.0

This rule checks whether a Protobuf file uses import weak.

Rule Details

A weak import lets a file compile when the imported file is not linked into the program. It is an undocumented feature, supported by few code generators, and its semantics differ between them.

The import-no-weak rule reports Import '<import>' should not be weak for every import weak statement.

Configuration

This rule has no options.

Examples

Good.

syntax = "proto3";

package acme.pets.v1;

import "google/protobuf/timestamp.proto";

message Pet {
  string name = 1;
  google.protobuf.Timestamp born_at = 2;
}

Bad. The linter reports Import 'google/protobuf/timestamp.proto' should not be weak.

syntax = "proto3";

package acme.pets.v1;

import weak "google/protobuf/timestamp.proto";

message Pet {
  string name = 1;
  google.protobuf.Timestamp born_at = 2;
}

When Not to Use It

We recommend to always enable this rule.

Compatibility

This rule is compatible with proto3 files. proto2 and editions files are rejected by the reader and are not linted.

Related rules