commit | 5b70246e83a0a8b1cb4ae0221767e3c0b69eddcf | [log] [tgz] |
---|---|---|
author | adgar <adgar@google.com> | Wed Sep 30 13:30:18 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Sep 30 13:31:15 2020 -0700 |
tree | 553d47ab73d56449a755dc2e694816da690857c7 | |
parent | 3ed7ed57e2ba144933da37c19c7d93b89d39a90e [diff] |
File names reported as artifact names in BEP are encoded UTF-8. The build tool has generally inconsistent support for preserving UTF-8 strings largely due to the absence of UTF-8 support in BUILD files. Most artifact names in BEP do come from BUILD files where it is assumed UTF-8 identifiers do not appear. In the cases where artifact names are determined from file names, and the file name is UTF-8, we may re-encode the generated artifact name as UTF-8 before adding it to a `named_set_of_files` BEP message. This issue only leads to incorrect BEP on Unix-like systems due to our treatment of paths returned by Unix filesystem APIs - we always pass them to Java as with a Latin-1 encoding. When UTF-8 bytes are in a Latin-1-encoding String and are passed to a protobuf string field, UTF-8 conversion is applied to UTF-8 bytes. This does not happen on Windows because we do not produce Java strings with incorrect encodings. RELNOTES: None. PiperOrigin-RevId: 334667088
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md