Skip to content

Releases: thought-machine/please

Please v11.0.0

22 Dec 10:56
Compare
Choose a tag to compare

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 to plz test or plz 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

06 Dec 13:47
Compare
Choose a tag to compare

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

25 Nov 13:57
Compare
Choose a tag to compare

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

25 Nov 13:57
Compare
Choose a tag to compare

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

25 Nov 13:55
Compare
Choose a tag to compare

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

25 Nov 13:55
Compare
Choose a tag to compare

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

25 Nov 13:55
Compare
Choose a tag to compare

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

25 Nov 13:55
Compare
Choose a tag to compare

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

25 Nov 13:55
Compare
Choose a tag to compare

This is Please v9.1.0

  • The 'manual' label can now be applied per-architecture, e.g. manual:linux_amd64.

Please v9.0.0

25 Nov 13:55
Compare
Choose a tag to compare

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 and link 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.