Skip to content

Releases: thought-machine/please

Please v7.6.0

29 Mar 19:35
Compare
Choose a tag to compare

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

29 Mar 19:23
Compare
Choose a tag to compare

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

17 Jan 18:44
Compare
Choose a tag to compare

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

04 Oct 13:13
Compare
Choose a tag to compare

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's package argument has changed to out to match other rules
  • cc_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

11 Sep 13:25
Compare
Choose a tag to compare

New release, with a series of new features:

  • Support for pushing metrics to a Prometheus pushgateway
  • --show_output / -s flag to plz test and plz 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 passed flags which are added to their test_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

26 Aug 07:56
Compare
Choose a tag to compare

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

18 Jul 08:06
Compare
Choose a tag to compare

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 means go_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 its main.

Please v3.6.0

04 Jul 10:51
Compare
Choose a tag to compare

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

22 Jun 09:06
Compare
Choose a tag to compare

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

28 May 11:00
Compare
Choose a tag to compare

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 and jar, 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.