Releases: thought-machine/please
Releases · thought-machine/please
Please v9.4.0
This is Please v9.4.0
- Added a c_object rule which lets you compile a C or C++ object file from a single
input. It's lower-level than c_library so rarely needed, but allows a bit more control. - Added protoc_binary which can download a protoc release to use as the protoc_tool.
Unfortunately there is no equivalent available for gRPC C++ / Python plugins. - Pre- and post- build functions are now better optimised about recalculating
changes after they run. Can significantly speed up building packages with
many c_library rules in them. - Jarcat can now align files to specific size boundaries in a similar way to
Android's zipalign command. - Setting PDEATHSIG on child commands which may help ensure that subprocesses
(especially workers) terminate correctly. - Runtime data of tests is exposed in a $DATA env var.
- Cleaning of the directory cache is now done in-process rather than in a
forked subprocess. This allows it to be better synchronised with the main build
about what it's deleting.
Please v9.3.0
This is Please v9.3.0
- Downloaded versions are now verified against a detached GPG signature.
- Support for following the progress of a remote build using
plz follow
.
Requires it to open a port, which is configured in the [events] section
of .plzconfig. - Support for arbitrary env vars in .plzconfig which are available to all build rules.
Note that these cause rebuilds of all targets on change, because we can't know what
effects they'll have. - Go 1.9 is now required to compile Please.
Please v9.2.0
This is Please v9.2.0
- Added check_config builtin which helps with asserting that things are
set in .plzconfig, and ConfigError which is a little more specific than
ParseError. - Support for passing multiple values for Maven repos (in config and to
rules directly). They're searched in sequence and the rule succeeds as
long as any one contains the requested artifact. - The name / location of the command invoked for
go
is now configurable.
Please v9.1.0
This is Please v9.1.0
- The 'manual' label can now be applied per-architecture, e.g. manual:linux_amd64.
Please v9.0.0
This is Please v9.0.0
- Better support for multiple Python versions; should now support python 2.7, 3.4, 3.5
and 3.6 for bootstrap, and binary artifacts for all of those are written for coverage
in generated test pexes. - Removed a number of esoteric builtin rules: github_file, git_repo, fpm_package and
fpm_deb. Removed long-deprecated go_yacc rule andlink
argument to filegroup.
Removed rules are available at github.com/thought-machine/pleasings as build_defs
files; they will still work equivalently but it's unnecessary to have those built
into the core.
Please v8.7.0
This is Please v8.7.0
- The protoc_flags argument to proto_library now applies transitively to any
further protoc_library rules that depend on it, in a similar fashion to C++ rules.
Since protos always need all transitive dependencies to compile they typically
require transitive compiler flags as well. - Added a decompose function to the build builtins which breaks a build label into
its package and name parts.
Please v8.6.0
This is Please v8.6.0
- Optional support for per-test metrics.
Please v8.5.0
This is Please v8.5.0
- Adds an option for lightweight sandboxing of test / build actions.
This only works on Linux right now, using a helper binary named please_sandbox
which must be installed separately (the .deb is still built in this repo).
Please v8.4.0
This is Please v8.4.0
--include
and--exclude
can now take a comma-separated list. These are essentially
ANDed together (unlike passing the flag multiple times which ORs them).plz run parallel
limits the number of subprocesses run simultaneously.
Please v8.3.0
This is Please v8.3.0
- Added
manifest
argument tojava_binary
so you can specify an explicit MANIFEST.MF