Releases: thought-machine/please
Please v11.0.0
The next version of Please is ready, and since this time it contains a couple of slightly breaking features so it's a major version. Headline features include:
- Now ships with a completely builtin parser engine so the .so's aren't necessary
(although still included in the download for now) and there's no requirement to
have cffi or any Python version installed to run. - Interactive debugging for tests; passing
-d
toplz test
orplz cover
causes the test to break into an interactive debugger on failure. Currently only
works on Python (with pytest as the test runner), C and C++ tests. - Altered priority of config files;
/etc/plzconfig
is now the lowest priority and
there is an additional~/.please/plzconfig
immediately after it. - Added --profile flag which selects a config profile, e.g.
--profile dev
will
attempt to read.plzconfig.dev
if it exists. - Added --version flag to
plz update
to force updating to a particular version,
and --latest flag to always update to the latest. - parse.experimentaldir config property can now be repeated.
Plus a bunch of smaller bugfixes and whatnot.
Thanks to everyone who contributed, made suggestions & reviewed changes!
Please v10.3.0
Version 10.3.0 is done!
The headline feature in this release is being able to swap the Python test runner to be pytest instead of unittest (via the testrunner
property under [python]
in .plzconfig
). Unittest tests have also been optimised a bit for faster rebuilding using some of the same mechanisms.
Other notable features include cgo_library
rules accepting a pkg_config
argument to determine appropriate compiler flags for dependencies, and the ability to opt individual go_library
rules out of coverage instrumentation.
Thanks to contributors, and to the bugs & suggestions for these features.
Please v10.1.0
This is Please v10.1.0
- Dynamic support for Python wheel naming schemes, either via name_scheme on the
rule or by setting it in the config. - diff_graphs added to plz tool.
Please v10.0.0
This is Please v10.0.0
- please_pex rewritten to be more efficient. This is a breaking change for anyone
who assumed they could import pkg_resources or pex as a global which will no longer
be available (although these are easy to add using pip_library or python_wheel rules
if still needed). - cgo_library takes a subdir argument that is needed if sources are in a subdirectory
from the BUILD file (this isn't breaking since it never worked without). - Support for assembly (using go tool asm) in go_library and go_binary rules.
- Removed a number of deprecated config properties.
- Removed a number of deprecated arguments to builtin build rules (most have been
deprecated and often nonfunctional for a long time now).
Please v9.5.0
This is Please v9.5.0
- New config property, parse.preloadbuilddefs which specifies files to be loaded
into the global rule context. - Moved a bunch of config properties (buildfilename, blacklistdirs, lang, parserengine,
nonce, experimentaldir and linttool) out of the [please] section since that had
turned into a bit of a grab-bag of unstructured properties.
Old ones are still honoured for now but will be removed in v10.0. - please_sandbox now mounts a tmpfs on /tmp
plz query print
prints a comment & build label on stdout rather then the bare label
on stderr.
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.