Releases: thought-machine/please
Please v7.6.0
Please v7.6.0 is released. Changes since the last release are relatively minor:
- Support for Istanbul's JSON coverage format.
- please_pex now packages multiple versions of coverage.tracer which it attempts to
import as appropriate. - Fixed some issues with plz cover when using Go 1.8
- Fixed plz clean so it does not parse the repo unnecessarily.
- Add current package directory to GOPATH, fixes #184.
- Correctly exclude BUILD files from glob()
Please v7.4.0
Please v 7.4.0
Notable changes since the last release:
- Support for generating Javascript files from a proto_library. Currently the
generated code is not compiled in any way. - Fix to some obscure cases of building filegroups that weren't working properly.
- Removed -Wextra from default CFLAGS, since many repos don't compile cleanly with it.
- Falls back to trying to find a Bazel WORKSPACE file if run outside a plz repository.
- Fixed please_pex for Python 3.6
- Fixed go_test rules in the repo root.
- Added proto.jsdep config option that gets used when building JS protos (#176)
Please 7.2.0
Please 7.2.0 is out, with a set of interesting new features & bugs.
Major additions:
* Support for an "experimental" directory specified in plzconfig.
* New command, plz gc
, which attempts to identify unused targets across the repo.
"GC roots" are inferred from non-test binary targets, but can also be specified in .plzconfig.
* plz query graph
is now better optimised for the case of outputting the entire graph,
which should be close to twice as fast as before.
* filegroup() now honours the hashes
argument correctly.
* Support for 'remote' worker processes which are persisted throughout the build.
These can be used to speed up compile times in cases where the compiler supports this
and has significant startup overhead. Initial implementation for Java can have up to
a 4x speedup on sufficiently large build graphs.
* Added plz help
command which can show reference information about built-in build rules,
config settings, etc.
* The Linux implementation will attempt to download a portable PyPy distribution if
none of the plugins work against the system versions. Should make it easier to get
up & running since it's not completely trivial to install.
Please v6.0.3
First release of the v6 series for Please. New features include:
- A linter to identify potential problems in
BUILD
/build_defs
files - Support for generic config properties in
.plzconfig
which makes extensions nicer to write - Several cases of nondeterminism fixed
- Outputs are now ordered canonically before hashing
maven_jar
is split into separate parts so the source rules are still there but other parts of the system can get away without dealing with them.cgo_library
'spackage
argument has changed toout
to match other rulescc_embed_binary
should finally work on OSX, but requires nasm there.- Versions in
.plzconfig
are parsed as valid semvers
Plus a bunch of smaller things. As usual any new bugs are unannounced here.
Please v5.3.0
New release, with a series of new features:
- Support for pushing metrics to a Prometheus pushgateway
--show_output
/-s
flag toplz test
andplz cover
which always displays test output, even when passing.- Cache servers have a parameter to delete artifacts that haven't been read in a long time
- Various
_test
rules support being passedflags
which are added to theirtest_cmd
__init__.py
writing moved to build time instead of parse time- Licence matching is now case-insensitive
- Built with Go 1.7 to take advantage of compiler improvements
- Cleanups to C++ rules
And a bunch of other smaller fixes & features too.
Please v5.1.0
Finally tagged a release of the 5.0 series!
Notable changes:
- Support for coverage and subtests in Go 1.7
- Initial C++ coverage support
- Rules now have system-level tools (
go
,gcc
,javac
, etc) associated with them and will automatically rebuild if those change. Various related config settings have been removed. - Rules can now have per-config test commands similar to per-config rule commands.
- Various minor cache server fixes
- Fixed a panic around concurrent map accesses
Plus a lot of small things, see the changelog for more details.
Please v4.0.2
The first public-ready release of the v4 branch is available!
Notable features / changes:
- Some rewrites of Go rules which are now compatible with Go 1.7 and somewhat
cleaner & faster.
This meansgo_binary
rules must declare all dependencies used in its main package explicitly;
previously it was possible to pick them up transitively. - Config options can be dynamically overridden on the command line,
e.g.plz build -o go.version:1.7
- Output files are made read-only in most cases.
- Post-build functions are run once only since it's quite tough to require them to be idempotent.
python_binary
now correctly accepts a rule for itsmain
.
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.