Tatskaari on master
Updawte go deps to v0.3.1 (#209… (compare)
Tatskaari on master
Fix concurrent map writes in pa… (compare)
build_rule()is aimed towards rule authors trying to implement their own build definitions, whereas
gentest()have some conveniences, and hide some implementation details and so that makes them slightly better suited for use in BUILD files. Ultimately the distinction is not very big, but I would consider it an anti-pattern to see a naked
build_rule()invocation in a BUILD file.
.plzconfigis not used anymore
go_benchmarkis missing from the documentation https://please.build/lexicon.html#go is that intentional?
Hi! I'm on macos and want to use the GNU coreutils within my build/run scripts in Please beacuse this prevents me from having to write conditional statements for Linux VS Macos every time I use one of these tools.
One way of solving this is by installing the coreutils through Homebrew
brew install coreutils and by adding
/usr/local/opt/coreutils/libexec/gnubin to the build path in .plzconfig. Even though this works, it's unfortunate this dependency is managed outside of Please.
Ideally what I would like is that Please downloads/builds the coreutils for me and ensures it's available in the path of every build/run script before those are executed. One imaginary example of solving this would be the ability to reference build labels in the config:
[build] path = "$(out_location //tools/coreutils)"
Do you folks know of an existing way to achieve this in Please?
I've solved this currently by defining a preload build def in
[Parse] PreloadBuildDefs = ./tools/please/sh_rules.build_defs
and within that file alias the regular
old_sh_cmd = sh_cmd
so I'm able to wrap all sh_cmd with the additional behaviour I want
def sh_cmd(args): # Extend the cmd to add coreutils to the path return old_sh_cmd(args)
It feels a bit hacky, but it prevents me from having to add these common tools to every rule.
cc_testrequires to produce a
test.resultsfile. Is this by design?
21:36:18.596 WARNING: failed to read test results file: Didn't find any test results in plz-out/tmp/tests/tests._test/run_1/test.results 21:36:18.597 ERROR: //tests:tests failed: Test failed to produce output results file
Hello all. I've been looking at issue #1577 again (making
pip_library executable) now that I have more time. At the moment, I have limited examples (flake8 and Chalice) of feeding both a pip_library and a entrypoint file to a
python_binary that are able to invoke the packages in build rules. It's not perfect (hard to explain, but filesystem operations were a little hit and miss), but the idea is doable.
At the moment, I have the following questions:
pip_libraryto produce this PEX and provides this as a tool without seriously breaking the existing returns of the
pip_libraryand produce the PEX for you? At the moment, I just manually introspect the Wheel and copy and paste the entrypoint file :sweat_smile:
brew install please ==> Downloading https://github.com/thought-machine/homebrew-please/releases/download/v16.7.0/please-16.7.0.el_capitan.bottle.tar.gz Already downloaded: ~/Library/Caches/Homebrew/downloads/861b10e5b448f6fb80e617749eef0e9688ef32364415d00b8c6f9cbb2350308d--please-16.7.0.el_capitan.bottle.tar.gz Error: please: SHA256 mismatch Expected: 1bee420ecefeeb387ffe180ed31871cf0a041b4d3dbb894f09c343149d4c5bfc Actual: d84bcc7d58a9170ada31e85c403c1a1017b64eae509955a5e2bfc6d73ff73ae8 File: ~/Library/Caches/Homebrew/downloads/861b10e5b448f6fb80e617749eef0e9688ef32364415d00b8c6f9cbb2350308d--please-16.7.0.el_capitan.bottle.tar.gz To retry an incomplete download, remove the file above.
subinclude()), I have an error
CRITICAL: Target //target:label not found in build graph.
add_dep()works well even with custom rules.
DEBUG: Need to rebuild //_please:download, metadata file is missing ... DEBUG: Retrieved artifacts for //_please:download from cache ... DEBUG: Need to rebuild //_please:please_tools, //_please:download has changed