What's!? What's happened!?!?

The Arukas provider release as a third-party-plugin included the Windows version, and it was able to build without any problems.
From that time on, the source code has not changed at all, why has the build broken?

I looked for gopkg.in/alecthomas/kingpin.v2 which was in the message from @jbardin.

gopkg.in/alecthomas/kingpin.v2 is a library imported by the Arukas provider.
This library has been used since Arukas provider was released as a third-party-plugin, so I know that it is compatible with Windows.

And, both Terraform and the Arukas provider as a third-party-plugin use govendor for vendoring.
So I decided to compare the files of gopkg.in/alecthomas/kingpin.v2 library copied under vendor directory(that was copied by govendor).

Compare gopkg.in/alecthomas/kingpin.v2 files under vendor directory

The following screen shot shows the comparison result.

It seems that guesswidth.go has not been copied for some reason.

Why??

Answer: govendor was setted to ignore some build tags

The govendor configuration file vendor/vendor.json has the following setting:

govendor compares the value set in ignore in vendor/vendor.json with the file name suffix or build tags to determine if it is the target file to ignore.
In this case test and appengine are specified as ignore targets.

Conclusion

Filtering by build tag has the advantage of being able to reduce the size of the vendor directory, but problems such as being unable to build in some platforms may occur.
In addition, troublesome work such as checking the build tag of individual files to be imported will occur to solve the problem.

For these reason, filtering by build tag should not be used when vendoring.
(Note: I think filtering works well only for "test" and "ignore" tags)

What is a use case that requires filtering when vendoring? I don't have it.
What do you think?
If you have a nice way please comment to this post!