I use a code generator plugin to generate the server stub from the OpenAPI specifications.
I want to know if I should commit the generated code to version control.
I use a code generator plugin to generate the server stub from the OpenAPI specifications.
I want to know if I should commit the generated code to version control.
In general, yes.
The reasoning is simple: if I'm a downstream user of your code—that is, I want to merely include your library as a dependency or build your application,—there is no point in creating additional burden on me for building your code; I should be able to merely go build
/go install
your code and call it a day.
If, instead, I intend to actually develop your code—either with the intent to have my changes included upstream or for maintaining these changes unpublished—it's perfectly OK to require me to regenerate certain files where it is required.
That would depend on the context of the code generation.
ideally you'd want to add a go generate
step to your CI pipeline before the test and build steps.
In your repo readme file you should add instructions explaining how to generate the files while developing.
However, if the generation is something that can only be run on your development machine than you can add this to your source control.