protobuf icon indicating copy to clipboard operation
protobuf copied to clipboard

Sort import for plugin outputs

Open sbalabanov opened this issue 3 years ago • 0 comments

If generatePlugin() function is used to generate Go code, imports are not ordered. Because imports are technically a map inside a Generator and iteration order over a map is not deterministic, it results to import ordering in the resulting generated file be non-deterministic too. This creates a problem for build tools that extensively use remote cache based on hashes of input targets, like Bazel. The change adds sorting through AST. Ideally, generatePlugin() function should reuse the code for Generate() function, that already has this sorting among other things.

sbalabanov avatar Nov 02 '21 08:11 sbalabanov