Releases: thought-machine/please
Please v3.6.0
v3.6.0
Features:
- #107 Introduce https and mutual auth support to RPC cache
- #108 New query subcommand,
plz query whatoutputs
, which queries the current graph and returns the target responsible for the provided file(s) - add a
src_dir
argument to java_library - allow attaching deps to a remote_file
Bugfixes:
- fix
plz clean
background bug
Please v3.3.0
Version 3.3.0 is now ready for public use.
As usual I've been a little slow about releases and so this includes features from 3.1.x and 3.2.x as well.
Significant new features:
- Please is now (mostly) compilable on FreeBSD; the RPC cache is still disabled due to lack of gRPC support but otherwise it should work.
- When a target fails to build, plz waits for other building targets to finish before dying. This should improve build times over repeated builds where one doesn't keep starting work that never gets finished.
- Added explicit type checks on arguments to build rules.
- Build / test commands are always run with
-o pipefail
, because it's easy to forget and basically always what you want. - RPC cache gives up after a sufficient number of failures.
- Any entries in
srcs
of a rule that are None are now silently ignored, which makes it easier to write some rules. GOPATH
additions are configurable in config file.pip_library
commands have been changed to improve determinism.- Artifacts are built locally if they fail hash verification after being retrieved from the cache.
Plus various other minor features & bugfixes.
Please v3.0.2
First public-ready release of Please v3.x!
The major change in this version is a rewrite of the parser engine's interop code to use cffi's new embedding mode. This allows runtime-loadable parsers and means that it's possible to run Please with a cpython engine as well as PyPy. Hopefully this should make deployment / running easier.
Other significant changes include:
- Builtin rules no longer call
zip
andjar
, instead we use our own tooling which creates deterministic outputs. - Python targets now have a
stripped
build config that precompiles .pyc files and removes the source code, for cases where you might want to distribute sourceless pexes. They also initialise a bit faster. - Added a Bazel compatibility mode that accepts various alternate argument names and mimics some of their builtins. This allows parsing simple Bazel projects although not loading Skylark rules.
filegroup
rules are now a builtin, which is faster, simplifies some internal code and avoids some issues with command lengths for rules that expand to many sources.cc_library
rules parallelise internal compilation better when they have multiple srcs.- Fixes to cache servers to handle some fringe cases, especially around directories.
Please v2.1.2
Minor feature addition since 2.0.0:
- Adds additional features to sh_binary to make it more complete. sh_binary now creates a single bash script. This script contains all dependencies as well as the main script to be executed. When the sh_binary is run, it extracts all the files to the current directory and finally executes the main script.
Please v2.0.0
New release, with a bunch of new features! We are now doing semver so the major version will be bumped to indicate incompatible changes.
Highlights of this release:
- More convenient output on incorrect hashes.
- C++ tests now honour being given a specific test to run (The current implementation
of this requires C++11, we could write it in a more tedious way if it's a problem). - Reading stdin for build labels is now done asynchronously.
plz query alltargets
now does not display hidden targets (those starting with an
underscore) by default. It has a new--hidden
flag which will show them as well.subinclude()
can now be given a URL to download build defs from.- Fix interactive display on versions of iTerm (2.1.x) that don't support the
ANSI CPL instruction. - Go version in config now only affects hashes of Go targets.
- Suffix temp build directories with #.build (and tests with #.test instead of just .test)
to avoid cases where they clash with paths to sub-packages that happen to
begin with the same name. - Support for loading arch-specific config files, .plzconfig_linux_amd64 etc.
Allows tweaking config for different machine types. - Reworked internal queuing implementation which prioritises
subinclude()
targets
more highly.subinclude()
itself also caches compiled code. - New feature,
plz query reverseDeps
which finds reverse dependencies of a target. plz query graph
output has more features in it.- new setting in config, blacklistdirs, which excludes certain directory names from
being walked byplz build ...
and the like. - Upgraded python coverage package.
- Upgraded gRPC implementation. Note that this is a breaking change for the RPC cache
so that will need to be upgraded in sync with plz itself. - Allow passing build target expressions to --exclude.
Please v1.7.2
Minor feature additions since v1.7.0:
- Additional flag,
--include_file
, toplz cover
which filters coverage output to
just the given files. - maven_jars now has two new arguments,
combine
which combines its transitive deps
into a single uberjar andhash
which sets the hash for that uberjar.
The intention here is to make it more lightweight to set a hash for a single target
rather than having to provide potentially many individual hashes. - Fixed aliases which were accidentally broken by some flag changes.
Please v1.7.0
First release of 1.7.x, after the short-lived 1.6.x series never made it here. Notable changes include:
- Reworking of error handling in parsing code. Previous code used to panic back through
the parser which deeply upset PyPy (often we got away with it because we'd die before
anything else could go wrong, but not always). Now errors are returned to Python and
reraised as exceptions there - which implies that it's possible for BUILD code to
catch and handle such exceptions, although I don't recommend writing them that way :) - Optimised glob() a bit so it doesn't descend into some directories that will never match
the given pattern. - Officially ban subincluding of local targets (didn't actually work before anyway, but now
you get an 'official' message explaining why) plz clean
now cleans sub-targets as well- Banned double slashes in build labels which was being incorrectly let though, leading
to some very strange failures. - Ensure paths are relative in hash memoisation - improves hit rate by about 30% and
is a performance improvement (although probably not very noticeable in most cases). plz cover
now has a--line_coverage_report
/-l
flag to produce line-by-line
coverage output for its affected files.
Please v1.5.11
A series of minor fixes over 1.5.8. We remain hopeful there isn't much left for the 1.5.x branch :)
* Write explicit failures into unit test output on timeout etc. Needed for some downstream
tools that don't check attributes like 'failures' and need explicit entries.
* Fix for multiple caches which could sometimes panic with a negative waitgroup.
* grpc_library now correctly honours the 'languages' argument.
Please v1.5.8
A selection of changes & fixes:
- Fix bug in go_test where it would sometimes return success if a test panicked
plz query completions
treats : as equivalent to : to help bash completion workgo_generate
rule added- Fixes to RPC cache
Please v1.5.4
Contains minor fixes versus 1.5.4:
- Consistent naming of please_go_test
- Fix to cache_cleaner which sometimes didn't clean properly