| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 165910455
|
|
|
|
|
|
|
| |
RuleContext.shouldCreateRunfilesSymlinks() itself.
RELNOTES: None.
PiperOrigin-RevId: 165774395
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now Bazel build a Windows exe to launch the python self-extracting zip
file by default, using --windows_exe_launcher=0 to switch back to cmd
wrapper.
The extra zip file with shebang preprended is not built on Windows
anymore, even when using cmd wrapper.
Change-Id: Ic7060326f19ca6e2e73ea8d8211afd1c7618083c
PiperOrigin-RevId: 165707076
|
|
|
|
|
|
|
|
| |
These are depended upon by analysis code, so need to live in the same library
as lib.analysis. Moving them here makes it possible to split the build-base
library into separate libraries for analysis, execution, and rules.
PiperOrigin-RevId: 164847161
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164446955
|
|
|
|
|
|
|
|
|
|
| |
Consumers using spawn action builder now have access to handy overloads that behind the scene do a lazy String.format. In 95% of cases progress messages are expressible as 0, 1, or 2 argument String.formats.
This saves memory because the format string is constant and shared between all actions, and the captured subjects are usually live on the heap anyway (eg. labels).
Skylark still computes its progress messages eagerly. If we want similar savings there I'd have to follow up with a Skylark proposal.
PiperOrigin-RevId: 164068816
|
|
|
|
|
|
|
|
| |
Follows
https://docs.google.com/document/d/1aAIVWvHPERDz2cv_PCFGwr8dvh5FcAkENFoRsNS4clk/.
RELNOTES: None.
PiperOrigin-RevId: 163728291
|
|
|
|
|
|
|
| |
The option filters proto dependency can be removed from the OptionsParser. This is in response to option parser users that want to avoid the bazel-internal proto file in their dependencies.
RELNOTES: None.
PiperOrigin-RevId: 162249778
|
|
|
|
|
|
|
|
|
| |
SpawnAction on Windows.
RELNOTES: None.
Change-Id: I2d926447511dab5fb804051abdbef9031cb089be
PiperOrigin-RevId: 162201440
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 161772560
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Almost) all native declared providers are accessed as such and not as
native non-declared providers (inheritors of TransitiveInfoCollaction).
There are still three providers that use
TransitiveInfoCollection.WithLegacySkylarkName mechanism, I'll address
them in the follow-up CL.
RELNOTES: None.
PiperOrigin-RevId: 161655315
|
|
|
|
|
|
|
| |
With a few manual fixes for readability.
RELNOTES: None.
PiperOrigin-RevId: 160582556
|
|
|
|
|
|
|
|
| |
Move the default from the annotation to every mention. This makes the incompleteness explicit. Will add the defaults to test targets in a separate change.
Once all dependencies are cleaned up, the Option annotation will no longer allow options without the documentationCategory or effectTag, to prevent new options being added without categories while we migrate to the new option categorization.
PiperOrigin-RevId: 160281252
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cl introduces new action_config type for Crosstool named 'generic'. This
can be used to set the value of CC_FLAGS make variable using much more
expressive mechanism (action_configs + features) than previous make_variable
Crosstool messages. This has been requested by the C++ LPT.
However, as FeatureConfiguration needs RuleContext, CC_FLAGS cannot be
computed using configuration only anymore. Also, FeatureConfiguration is C++
rules specific class, and Bazel build-base cannot depend on it. Therefore we
cannot use FeatureConfiguration for ExtraActions, for example. Because it cannot
be made perfect, this cl is not updating all the possible places that expand
make variables but limits the scope to:
* genrule (the only widely used rule that often expands make variables)
* *_test (CC_FLAGS is used by Tensorflow in the 'args' attribute)
* cc_rules (people sometimes set 'copts' to something like:
"-DCC_STRING=\\\"$(CC)\\\" -DCC_FLAGS_STRING=\"$(CC_FLAGS)\""
The long term plan is to use Skylark C++ API to get C++ command lines, so
CC_FLAGS together with this inconsistent solution will be removed.
RELNOTES: CC_FLAGS can be defined using 'generic' action_config in CROSSTOOL
PiperOrigin-RevId: 157202883
|
|
|
|
|
|
|
|
|
|
|
| |
implementation.
A first step towards applying the same memory optimizations we do for
native provider representation to Skylark providers (declared and
legacy).
RELNOTES: None.
PiperOrigin-RevId: 156111749
|
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 152291766
|
|
|
|
|
|
|
|
|
|
|
|
| |
'create' method.
This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment).
This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations.
RELNOTES: None
PiperOrigin-RevId: 152145768
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Instead of having a single class for both, split them into
{Skylark,Native}ClassObjectConstructors
2) Allow NativeClassObjectConstructors to customize their instantiation
logic.
3) Prepare ClassObjectConstructor.Key to be serializable.
--
PiperOrigin-RevId: 148997553
MOS_MIGRATED_REVID=148997553
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132529035
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132433369
|
|
|
|
|
|
|
|
|
| |
There doesn't seem to be any need for a C++ toolchain to create a Python config
anymore. I looked through the change history, but didn't find any obvious
culprits / reasons for the current code.
--
MOS_MIGRATED_REVID=132429818
|
|
|
|
|
|
|
| |
The only place we now don't handle InterruptedException is in the action graph created after analysis, since I'm not sure that will be around for that much longer.
--
MOS_MIGRATED_REVID=130327770
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This doesn't do anything yet, it's in preparation for the execroot rearranging
change. The execroot will have one bazel-out per repo, so it'll look like:
execroot/
repo1/
bazel-out/
local-fastbuild/
bin/
repo2/
bazel-out/
local-fastbuild/
bin/
genfiles/
repo3/
bazel-out/
local-fastbuild/
testlogs/
and so on. Thus, any output path (getBinDirectory() & friends) needs to know
what the repo name is. This changes so many places in the code I thought it
would be good to do separately, then just flip the functionality in the
execroot-rearranging commit.
While I was poking around, I changed all of the refs I could from getPackageRelativeArtifact() to getBin/GenfilesArtifact(), so that 1) rule implementation don't have to know as much about roots and 2) they'll be more isolated from other output dir changes.
`bazel info` and similar just return roots for the main repository.
The only "change" is passing around a target label in the Java rules.
Continues work on #1262.
--
MOS_MIGRATED_REVID=129985336
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In stub_template.txt, we now unzip the python zip file to a temp
directory if needed.
This will get rid of bash in python executable file completely.
Users can run the binary directly or using python <zip>, like:
./bazel-bin/examples/py_native/bin
or python ./bazel-bin/examples/py_native/bin
On Windows, we can use the second way to run python binary from native
Windows command line (cmd.exe).
--
Change-Id: I73fdd88f05f8f343dd19b2f3686ae031dfb476ba
Reviewed-on: https://bazel-review.googlesource.com/#/c/5310
MOS_MIGRATED_REVID=129767890
|
|
|
|
|
|
|
| |
function.
--
MOS_MIGRATED_REVID=129726780
|
|
|
|
|
|
|
| |
This in preparation to DeclaredProviders implementation.
--
MOS_MIGRATED_REVID=129420617
|
|
|
|
|
|
|
|
|
|
| |
using --build_python_zip to specify it, by default it's enabled on
Windows and disabled on other platforms.
--
Change-Id: Ib992edaf70c08568816b973159a429ff7165eed8
Reviewed-on: https://bazel-review.googlesource.com/#/c/4244
MOS_MIGRATED_REVID=129326115
|
|
|
|
|
|
|
| |
addTransitiveInputs
--
MOS_MIGRATED_REVID=128820723
|
|
|
|
|
|
|
| |
Instead have callers get it via package.
--
MOS_MIGRATED_REVID=127715494
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125160288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
MOS_MIGRATED_REVID=123210708
|
|
|
|
|
|
|
|
|
|
| |
instead of passing and checking null in all helpers.
Demonstrates this pattern usage in a few select rules (e.g. AndroidBinary) where this was particularly egregious.
There are many places which can benefit from this pattern -- this change doesn't try to fix them all at once.
--
MOS_MIGRATED_REVID=123012378
|
|
|
|
|
|
|
|
| |
Typical output looks like:
Compiling Python my/package/module.py
--
MOS_MIGRATED_REVID=122522202
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=121475668
|
|
|
|
|
|
|
|
| |
This isn't hooked up to anything yet, but is another piece of getting #848
rolled forward.
--
MOS_MIGRATED_REVID=120582973
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 790d2f6009d47fe92cf0cd92a1473bbf0141f32e.
*** Reason for rollback ***
Broke non-Bazel projects on ci.bazel.io
Fixes #1168
*** Original change description ***
Move the runfiles for external repositories to under the x.runfiles/ directory
This also sets the Bazel workspace name to io_bazel_source.
Fixes #848.
Relevant to #1116, #1124,
RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles....
***
--
MOS_MIGRATED_REVID=120535721
|
|
|
|
|
|
|
|
| |
The method will be removed in a subsequent change to facilitate reverting the
change in case it goes bad.
--
MOS_MIGRATED_REVID=120526894
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also sets the Bazel workspace name to io_bazel_source.
Fixes #848.
Relevant to #1116, #1124,
RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles.
---
Furthermore, if a Bazel project does not provide a workspace name in the WORKSPACE file, Bazel will now default to using __main__ as the workspace name (instead of "", as previously). The repository's runfiles will appear under x.runfiles/__main__/.
--
MOS_MIGRATED_REVID=120224534
|
|
|
|
|
|
|
|
|
|
| |
Second pass.
Consists of adding @Immutable annotations, adding final modifiers, and changing
the types of fields to immutable types.
--
MOS_MIGRATED_REVID=120216592
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117583615
|
|
|
|
|
|
|
| |
that it can depend on Skylark rule.
--
MOS_MIGRATED_REVID=116385078
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using mandatoryProvidersList to validate python rules' dependency.
Added a SkylarkProvider named 'py' which is a SkylarkClassObject in Java and a
struct in Skylark. Native python rule and Skylark python rule should have this provider
so that they can depend on each other.
RELNOTES[NEW]: Native python rule can depend on skylark rule as long as skylark
rule provides 'py' provider.
--
MOS_MIGRATED_REVID=116241504
|
|
|
|
|
|
|
|
|
|
|
| |
directories to PYTHONPATH.
Fixes #702
RELNOTES: Add imports attribute to native Python rules.
--
MOS_MIGRATED_REVID=114314430
|
|
|
|
| |
MOS_MIGRATED_REVID=113835948
|
|
|
|
|
|
|
|
| |
This message change is intended to make it clearer that hyphens are not allowed anywhere in the path that forms a Python package name, and there's no way around it, except for moving
the Python rules to a different directory.
--
MOS_MIGRATED_REVID=113833071
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the immutability interfaces of existing implementations.
Eventually we want all implementations to comply, but right now CppConfiguration
is a glaring exception due to FDO/LIPO support.
We don't want more exceptions to arise.
This is prep work for pre-trimming ConfigurationFragment.key's BuildOptions input
to just the options needed by the fragment. That implies fragments can be shared across configurations, so that needs to be safe.
--
MOS_MIGRATED_REVID=113408041
|
|
|
|
|
|
|
|
|
| |
This allows using PY3 binaries in the HOST configuration.
--
Change-Id: I9603bb19a72cb3d0d731de5b35e135ce952cc545
Reviewed-on: https://bazel-review.googlesource.com/2401
MOS_MIGRATED_REVID=111311727
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Skylark into their own package. This allows, e.g., classes in the syntax package to access classes in the cmdline package without creating circular dependencies.
While we're here:
- Removed a couple of unused BUILD deps flagged in [].
- Updated SkylarkRuleImplementationFunctionsTest to remove non-ASCII characters and
clarify the intent of the test.
--
MOS_MIGRATED_REVID=110360763
|