| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks Bazel build on Ubuntu 15.10. Manually tested that rolling this back fixes the build.
*** Original change description ***
sandbox: Mount input files and directories actually read-only.
Fixes #1364.
RELNOTES[INC]: Bazel's sandbox mounts input files read-only in this release. If your build suddenly fails due to tools not being able to write to files, then this is probably working as intended (you should never modify input files in your build), but please feel free to provide feedback.
--
MOS_MIGRATED_REVID=125439581
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new configuration option that allows disabling the creation of symlink forest for runfiles.
On Windows, symlink forest is disabled by default; only the runfiles manifest is created.
For shell tests, a function 'rlocation' is provided that converts from runfiles location to a real location.
Work towards #1212.
--
MOS_MIGRATED_REVID=125439553
|
|
|
|
|
|
|
| |
causing LocalLinuxSandboxedStrategyTest to fail due to unexpected lines in the output.
--
MOS_MIGRATED_REVID=125439352
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125428066
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the experimental UI always shows the 3 oldest, still running actions.
While this seems a reasonable default, some users requested to be able to change
the number of actions shown. Hence replace the hard-coded value by a flag.
While there, also fix an off-by-one error in deciding when to put the ellipsis
symbol.
--
Change-Id: I037d208360fa1d3f100c99ab1ab1f5fc140138ac
Reviewed-on: https://bazel-review.googlesource.com/#/c/3811
MOS_MIGRATED_REVID=125427168
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Doesn't handle aapt that doesn't generate R.txt properly.
--
MOS_MIGRATED_REVID=125405481
|
|
|
|
|
|
|
|
| |
to remove the call from RuleConfiguredTarget.getProvider() and instead check the
types when the providers ImmutableMap is built.)
--
MOS_MIGRATED_REVID=125389561
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For android_binary rules, we regenerate all of
the R.java of the libraries to get the final
resource IDs. Compiling all of them together can
be slow with the normal JavaBuilder, so add a
specialized class writer.
Example build with many R.java classes:
- R.java -> R.class via JavaBuilder: over 80s
- ErrorProne takes about 40% of that. So turning off
ErrorProne would be projected to be 48s.
Some of ErrorProne slowness is from static field
checks (e.g., on Flag classes), which may look
up the same Type over and over.
In comparison, if we write our own bytecode with ASM:
- ~16s total
- 4.7s to parse R.txt
- 4.8s to write class files
- 5.8s to copy and compress .jar
TODO: clean up SymbolLoader patching (upstream)
This only creates the action. We will need to
separately wire this up in blaze.
NOTE: This also makes the exising R.txt loading
used by live code multi-threaded, since that is
partly I/O-bound. Something to watch out for
(for flakiness, etc.) once this is submitted.
--
MOS_MIGRATED_REVID=125384467
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configurations.
This is important for dynamic configurations.
invalidatePackages() invalidates every file. This includes CROSSTOOL,
which the CppConfiguration fragment depends on.
For static configurations, this doesn't matter because all configurations
and their fragments are pre-computed at the beginning of the build (or
in the case of tests before the test case starts).
For dynamic configurations, the configuration can get custom-created
each configured target. When that happens after invalidatePackages,
a new CppConfiguration instance gets created. This can impact code
like CcLibraryHelper.addDeps(), which assumes equality (CppConfiguration
has no .equals() method).
Normally that's not a problem because the same CppConfiguration instance
is used for every target in the post-invalidatePackages() graph. But
host configurations break this: we keep a non-Skyframe host config cache
in SkyframeBuildView.hostConfigurationCache. Without this change, it
doesn't get cleared out, so it keeps old pre-invalidation references that
under certain circumstances get applied to post-invalidation targets.
--
MOS_MIGRATED_REVID=125379342
|
|
|
|
|
|
|
|
| |
Avoids constructing and manipulating expected value sets
for containsExactlyElementsIn when containsExactly will do.
--
MOS_MIGRATED_REVID=125371446
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125368119
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125362963
|
|
|
|
|
|
|
|
|
|
|
| |
nodes, where there is no work to do anyway.
This triggered some non-determinism that we explicitly workaround in the unit tests.
Also add a comment about a potential but unrelated optimization.
--
MOS_MIGRATED_REVID=125355303
|
|
|
|
|
|
|
| |
Fixes #1314.
--
MOS_MIGRATED_REVID=125340361
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To keep the noise of messages in the scroll-back buffer low, limit
which test summaries are shown there.
- If a test fails to build, the error message about the build failure
is already in the scroll-back buffer---and more useful to the user
anyway.
- If a test is not run (either because the user interrupted the build,
or because of a build error), then either the user is aware of it
anyway or the information about the build failure is present and
more useful. Also, this is only detected at the end of the build,
were a summary of the tests is shown; hence avoid duplication here.
- If a test has status failed and there is precisely one failure log,
then the summary does not provide any useful information compared
to the individual FAIL message in the scrollback buffer.
While there, also show the precise status of the summary.
--
Change-Id: I13665db24f956c8d8b651dc38859649085b8bbcf
Reviewed-on: https://bazel-review.googlesource.com/#/c/3830
MOS_MIGRATED_REVID=125339810
|
|
|
|
|
|
|
| |
Part 1 of many for #1262, rolling forward.
--
MOS_MIGRATED_REVID=125334954
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Newly passing:
//src/test/java/com/google/devtools/build/...
lib:syntax_test
lib/skylark:SkylarkTests
lib:analysis_actions_test
lib:pkgcache_test
--
Change-Id: Iefdcf9e90ad28e664126aa7269487db95da1000a
Reviewed-on: https://bazel-review.googlesource.com/#/c/3840
MOS_MIGRATED_REVID=125324588
|
|
|
|
|
|
|
|
|
| |
Fixes #1364.
RELNOTES[INC]: Bazel's sandbox mounts input files read-only in this release. If your build suddenly fails due to tools not being able to write to files, then this is probably working as intended (you should never modify input files in your build), but please feel free to provide feedback.
--
MOS_MIGRATED_REVID=125324318
|
|
|
|
|
|
|
| |
(But this will make it easier to try out the overlayfs-based sandbox later.)
--
MOS_MIGRATED_REVID=125320914
|
|
|
|
|
|
|
| |
passed-in modified file sets.
--
MOS_MIGRATED_REVID=125173579
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125171507
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125166943
|
|
|
|
|
|
|
|
|
|
| |
In the experimental UI, for the running actions also report their strategy.
This will give a more complete picture of what Bazel is currently doing.
--
Change-Id: I9553c952ed494e0db225b2a1ae5e8eba00f68617
Reviewed-on: https://bazel-review.googlesource.com/#/c/3820
MOS_MIGRATED_REVID=125162808
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125160288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configuration creation fails because transitive fragment
visitation hits these cycles.
This makes CircularDependencyTest pass with dynamic
configurations.
It's a little bit unfortunate that BuildViewTestCase
follows a different code path to create configured targets
than production (BuildView.getConfiguredTargetForTesting
vs. BuildView.update). As a result, doing an actual build over
the rules defined in CircularDependencyTest#testTwoCycles
correctly reports the cycle, while the test itself doesn't.
That means the test isn't 100% faithfully testing production
logic.
But I'm not interested in fixing the gap between
BuildView.update and BuildView.getConfiguredTargetForTesting
in this change. That's part of a larger refactoring effort
on the various forked ways of acccessing configured targets
and dependencies in BuildView.
--
MOS_MIGRATED_REVID=125118553
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
repositories
One interesting side effect of how this is implemented is that for external
repositories, bin/ and genfiles/ are combined. External repo output is under
bazel-out/local-fastbuild/repo_name for each repo.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
--
MOS_MIGRATED_REVID=125095799
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, another 5 java_test targets of Bazel passed on Windows:
//src/test/java/com/google/devtools/...
build/lib/bazel/repository/downloader:DownloaderTests
build/lib:graph_test
build/lib:java-rules-tests
build/lib:profiler-tests
build/lib:windows_test
Already passing targets are:
//src/test/java/com/google/devtools/...
build/android/ziputils:ziputils-tests
build/lib:BazelDocumentationTests
build/lib:objc-rules-tests
build/skyframe:skyframe_base_test
common/options:options_test
--
Change-Id: Ibb63f29615b84d6df44289c902f6d85ab6569d61
Reviewed-on: https://bazel-review.googlesource.com/#/c/3821
MOS_MIGRATED_REVID=125084737
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add toolchain configuration for x64_windows in MOCK_CROSSTOOL
This makes the following targets pass:
//src/test/java/com/google/devtools/build/...
docgen:DocumentationTests
lib:analysis_config_test
lib:analysis_constraints_test
lib:analysis_select_test
lib/bazel/repository:RepositoryTests
lib:bazel-rules-tests
lib:packages_test
lib/rules/repository:RepositoryTests
lib:runtime-tests
lib:exec-tests
lib:filegroup-rules-tests
--
Change-Id: If8a0bfca0a2506ee2c344803ca3776cc31bc4441
Reviewed-on: https://bazel-review.googlesource.com/#/c/3822
MOS_MIGRATED_REVID=125084693
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Local repositories were not marked, so if a WS file switched from
remote->local->remote, on the first run the remote rule would create a mark
file, on the second run the local rule would ignore it, and then on the third
run the remote rule would look at the mark file and see, "I'm already
up-to-date," leaving the repository as a local repo.
Fixes #977.
--
MOS_MIGRATED_REVID=125060180
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125013752
|
|
|
|
|
|
|
| |
8be7fd0bb7cc8f0819f23ef4bbf6328472110db7 when NotifyingNodeEntry stopped inheriting from InMemoryNodeEntry.
--
MOS_MIGRATED_REVID=124960351
|
|
|
|
|
|
|
|
|
|
| |
It's still not a great test, but hopefully a few second variation won't make it
flake.
Fixes #1283.
--
MOS_MIGRATED_REVID=124866329
|
|
|
|
|
|
|
| |
functionality was only used in tests.
--
MOS_MIGRATED_REVID=124841573
|
|
|
|
|
|
|
|
|
|
|
|
| |
While there is little value in using the experimental UI if no
progress output is desired, we still want the experimental UI to
serve as a drop-in replacement for the old one, including the
ability to not show any progress.
--
Change-Id: I54c67a6f432541611da8b4ab7e7f88bb85926391
Reviewed-on: https://bazel-review.googlesource.com/#/c/3803
MOS_MIGRATED_REVID=124833575
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124832306
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Relatively few locations are set relative to the number of attributes.
Replace the sparse array with a dense one.
- BitSet requires a minimum of two objects (48 bytes in our current JVM),
but we set an average of just six bits. Replace it with a list of
indices packed into a byte[], shared with the locations array.
Also add some assertions to help the next reader.
--
MOS_MIGRATED_REVID=124830576
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optional and named parameters are now specified using `defaultValue`
and `named` (and `positional`). The new structure allow for parameters
that are both named and positional (which was forbidden before).
This new structure will be used to give the @SkylarkCallable annotation
the possibility to provide named and default arguments. It should be
a functional no-op for Bazel users.
--
MOS_MIGRATED_REVID=124821455
|
|
|
|
|
|
|
| |
This test is no longer flaky and it has been run automatically on ci.bazel.io for a long time
--
MOS_MIGRATED_REVID=124820520
|
|
|
|
|
|
|
|
|
| |
This involved refactoring BuildViewTestCase a bit so that its behavior is closer to that of Bazel with --experimental_interleave_loading_and_analysis.
RELNOTES:
--
MOS_MIGRATED_REVID=124816624
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124792198
|
|
|
|
|
|
|
|
| |
2. In PopulateTreeArtifactAction, create the parent directories for TreeFileArtifacts before executing the spawn.
3. Allow empty tree artifacts in CustomCommandLine and PopulateTreeArtifact.
--
MOS_MIGRATED_REVID=124759286
|
|
|
|
|
|
|
|
|
| |
Instead of resolving them to the underlying file.
Fixes #1384.
--
MOS_MIGRATED_REVID=124746179
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124744073
|
|
|
|
|
|
|
| |
RELNOTES[INC]: Removed predefined Python variable "generic_cpu".
--
MOS_MIGRATED_REVID=124611269
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124594694
|
|
|
|
|
|
|
|
| |
This resolves them relative to the repository root directory (the same way
.tar.gz paths do).
--
MOS_MIGRATED_REVID=124573519
|
|
|
|
|
|
|
| |
making it easier to create PackageFactory instances in unit tests.
--
MOS_MIGRATED_REVID=124566862
|
|
|
|
|
|
|
| |
--
Change-Id: I2f08a61c06a1a6fda6a8e30c347cca3336b01b95
Reviewed-on: https://bazel-review.googlesource.com/#/c/3780
MOS_MIGRATED_REVID=124544524
|
|
|
|
|
|
|
|
| |
The @SkylarkCallable annotation is very limited and to extend it
it is best to share a similar API than the @SkylarkSignature annotation.
--
MOS_MIGRATED_REVID=124473056
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, analysis-time cycle detection expects all cycles to come from ConfiguredTargetFunction.
With dynamic configurations, ConfiguredTargetFunction calls out to TransitiveTargetFunction to figure out which configuration fragments its deps need.
If there's a cycle between the current target and a dep, the dep's TransitiveTargetFunction fails, which the current cycle detection code can't handle.
But even if it could handle it, since the failure occurs in the dep we'd get error messages like:
"in cc_library rule //the:dep: cycle in dependency graph"
instead of the expected:
"in cc_library rule //the:top_level_rule: cycle in dependency graph"
This used to not be a problem because loading-phase cycle detection caught the cycle before all this triggered. But interleaved loading and analysis removes that gate.
Tested: BuildViewTest cycle detection tests with dynamic configurations turned on
--
MOS_MIGRATED_REVID=124391277
|