| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
Fixes #352.
RELNOTES: Files in external repositories are now treated as mutable, which will make the correctness guarantees of using external repositories stronger (existent), but may cause performance penalties.
--
MOS_MIGRATED_REVID=109676408
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=109579490
|
|
|
|
|
|
|
|
|
|
|
|
| |
We achieve this by computing the directory symlink's metadata hash, which the
Google-internal Fileset rule writes in the fileset_manifest file, from the
hashes of all files under it. This adds complexity but is necessary, because
the symlink's FileStateValue remains the same even if the directory's contents
change, so the FileStateValue alone is inadequate to compute the metadata for
the fileset_manifest.
--
MOS_MIGRATED_REVID=109577723
|
|
|
|
|
|
|
|
|
|
| |
This is a subtle change that'll go a long way: there's a bug in the handling of
directory symlinks (changes in the link target are not picked up) which I'll
fix by combining the metadata hashes of all items in the directory, and use
that as the directory symlink's metadata hash.
--
MOS_MIGRATED_REVID=109564943
|
|
|
|
|
|
|
|
| |
Using this class it's easier to create ResolvedFile instances for tests that
don't care about metadata eqality.
--
MOS_MIGRATED_REVID=109562578
|
|
|
|
|
|
|
| |
Also remove unnecessary `type` members; they are constant.
--
MOS_MIGRATED_REVID=109560348
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=109420721
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL changes the class structure, moving from inheritance to implementation
and composition. In particular, it turns the abstract base class ResolvedFile
into an interface which the earlier subclasses now simply implement rather than
extending it.
This change makes the code cleaner: implementors may write more complicated
getters (and that's my plan to do in a subsequent CL) instead of just returning
the members.
--
MOS_MIGRATED_REVID=109405650
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=109195426
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=108964575
|
|
|
|
|
|
|
|
|
|
|
| |
RELNOTES[NEW]: Skylark macros are now enabled in WORKSPACE file.
Design document at https://docs.google.com/document/d/1jKbNXOVp2T1zJD_iRnVr8k5D0xZKgO8blMVDlXOksJg/preview
Fixes #337
--
MOS_MIGRATED_REVID=108860301
|
|
|
|
|
|
|
|
|
|
|
| |
1. attr.<type> functions return a wrapper object instead of
Attribute.Builder dierctly.
2. RuleClass is created once per the life-time of RuleFunction, during
export
3. Attributes are added to the RuleClass at exporting.
--
MOS_MIGRATED_REVID=108774581
|
|
|
|
|
|
|
| |
RepositoryValue and not depending it from repository functions.
--
MOS_MIGRATED_REVID=108685867
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=108532339
|
|
|
|
|
|
|
|
|
| |
target pattern.
Apart from the tests, I also tested this manually running "bazel query //..." in a tree with convenience symlinks.
--
MOS_MIGRATED_REVID=108325454
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically, given:
config_setting(
name = 'foo',
values = {'copts': '-DABC'})
this requires a dependency on the Cpp configuration fragment.
config_setting rules are unique in that this dependency comes
from string representations of option names.
--
MOS_MIGRATED_REVID=108268831
|
|
|
|
|
|
|
| |
for the purpose of change pruning.
--
MOS_MIGRATED_REVID=108203369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as its input.
e.g. given input {"attr": [':a', ':b']}
the trimmed version also keeps ':a' in front of ':b'.
This preserves the expected invariant that prerequisites are
navigatable in BUILD declaration order.
--
MOS_MIGRATED_REVID=108170921
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=108154189
|
|
|
|
|
|
|
|
|
| |
label-based loading machinery) when the containing file is in a subdirectory of a package.
Also, while we're in the neighborhood: correct two nearby tests of relative loads that were passing for the wrong reasons.
--
MOS_MIGRATED_REVID=108072189
|
|
|
|
|
|
|
|
|
|
|
| |
in ConfiguredTargetFunction.trimConfigurations to preserve
key insertion order.
This ensures that RuleContext.getPrerequisites returns an
attribute's deps in the same order they were declared.
--
MOS_MIGRATED_REVID=108063142
|
|
|
|
|
|
|
| |
FileSystemValueChecker when checking for dirty actions.
--
MOS_MIGRATED_REVID=108046467
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
include Skylark-declared requirements (which use names instead of fragment
class, e.g. "cpp" vs. CppConfiguration.class).
Also add "cpp" to Skylark java_* definitions, since java_* rules are
used to trigger LipoDataTransitions and thus expected to have a
CppConfiguration fragment.
Test coverage: skylark.BindTest with --experimental_dynamic_configs=1.
(and other Skylark tests).
--
MOS_MIGRATED_REVID=108041244
|
|
|
|
|
|
|
| |
A prerequisite is to pass RuleContext to ConfiguredAspect, so we can read from it the registered actions when we build() the aspect.
--
MOS_MIGRATED_REVID=107997593
|
|
|
|
|
|
|
| |
Become a bit more restrictive to keep our exception cases tight.
--
MOS_MIGRATED_REVID=107953779
|
|
|
|
|
|
|
| |
load a Skylark file not contained in a package.
--
MOS_MIGRATED_REVID=107811126
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107808413
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107805824
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107800790
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configurations contain regardless of whether their rules explicitly
require it.
This is used to ensure all rules have BazelConfiguration. That
fragment supplies the path to the shell, which powers
BuildConfiguration.getShExecutable(), which powers any rule that
generates a SpawnAction.
Since SpawnActions are such a ubiquitous pattern we only want to
accelerate going forward, there's no point not to make this
automatically available to every rule.
--
MOS_MIGRATED_REVID=107786879
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
internally. The load location for a Skylark Aspect is specified via a PathFragment, for consistency with current non-Aspect Skylark loads.
This should be a semantics-preserving change for users. In a subsequent CL, I'll change the Skylark syntax to allow load statements to use labels as well as paths, with the goal of eventually deprecating the latter.
Also:
- Removed the hack for handling relative loads in the prelude file.
- Refactored some redundant functionality in PackageFunction and SkylarkImportLookupFunction for handling loads.
- Removed the ability to put the BUILD file for the package containing a Skylark file under a different package root than the Skylark file itself. This functionality isn't currently used and is inconsistent with Blaze's handling of the package path elsewhere.
- Added BUILD files to a number of tests that load Skylark files; this is consistent with the requirement that all Skylark files need to be part of some package.
- Changed the constants used to set the location of the prelude file from paths to labels.
--
MOS_MIGRATED_REVID=107741568
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN" will *not* be traversed for transitive target patterns. The motivation here is to allow directories that intentionally contain wonky symlinks (e.g. foo/bar -> foo) to opt out of being consumed by Blaze. For example, given
<workspace>/foo
bar
bad -> .
DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN
the 'bad' symlink will *not* be traversed by the pattern '//foo/...'.
--
MOS_MIGRATED_REVID=107738930
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107726105
|
|
|
|
|
|
|
| |
is guaranteed not to be a package. Instead, start with its parent. This will be faster and take less memory.
--
MOS_MIGRATED_REVID=107725767
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107719658
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move
the trimming logic into key() itself to:
a) eliminate code redundancy
b) guarantee all future calls to key() also do this.
--
MOS_MIGRATED_REVID=107713353
|
|
|
|
|
|
|
| |
stack depth.
--
MOS_MIGRATED_REVID=107688035
|
|
|
|
|
|
|
| |
default this is disabled.
--
MOS_MIGRATED_REVID=107644420
|
|
|
|
|
|
|
|
|
| |
configuration transition *before* trimming the options. This
is because the transition may read fragments that aren't
in the dep itself.
--
MOS_MIGRATED_REVID=107624186
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
trim the BuildOptions to only those needed by the fragment.
This guarantees that the same fragment only gets instantiated
once (for example: we don't want to have two copies of a
CppConfiguration because one copy had PythonOptions and the
other didn't).
This also prevents crashes, e.g. in the Preconditions check in
CcLibraryHelper.addDeps.
--
MOS_MIGRATED_REVID=107609270
|
|
|
|
|
|
|
| |
Otherwise we have potential correctness and performance problems on a missing Skylark import dep.
--
MOS_MIGRATED_REVID=107605200
|
|
|
|
|
|
|
|
|
| |
replacing MemoizingEvaluator#getValues et al with WalkableGraph usage. I initially attempted to do this but punted once I realized how much work it would be.
Also make DirectoryListingStateValue and FileStateValue public for use in outside callers of FilesystemValueChecker.
--
MOS_MIGRATED_REVID=107447425
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Any Package name starting with a blacklisted prefix is treated as a deleted package.
Note the relation to prior art in Blaze:
1. Deleted packages indicates to Blaze to pretend certain packages do not exist. The deleted packages are passed in as fully resolved package names. This is important because the invalidation logic when these values changes references the exact package names, as opposed to prefix patterns.
2. Negative patterns in target parsing. (eg, "foo/..., -foo/bar/..."). Note that if //foo:biz depends on //foo/bar:bang, we still visit that dependency. In other words, the negative patterns just control the target pattern parsing, but not the later evaluation of those targets.
Blacklisting acts like both (1) and (2), but in the form of a Precomputed injected value (so modifying the value would be more expensive than modifying deleted_packages).
--
MOS_MIGRATED_REVID=107431993
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107420673
|
|
|
|
|
|
|
|
| |
Aspect => ConfiguredAspect
AspectWithParameters => Aspect
--
MOS_MIGRATED_REVID=107375211
|
|
|
|
|
|
|
|
|
| |
The loading phase runner is now always created by the SkyframeExecutor, and
the duplicate test is dropped in favor of subclassing and overriding one
method.
--
MOS_MIGRATED_REVID=107188756
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configurations get trimmed to the same fragments as target
configurations. This isn't correct, because null fragments
in the target configuration (which in practice don't exist)
shouldn't necessarily be excluded from the host config.
In the worst case then can crash fragment loaders, which
expect the fragment options to exist even if the fragment
ends up being null.
--
MOS_MIGRATED_REVID=107173093
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107071400
|
|
|
|
|
|
|
| |
package loading from the LoadingCache default of 4 to value of --legacy_globbing_threads.
--
MOS_MIGRATED_REVID=107056166
|
|
|
|
|
|
|
|
|
| |
aspect-attributes.
The former contains both.
--
MOS_MIGRATED_REVID=106961145
|