forked from thought-machine/please
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
2960 lines (1949 loc) · 95.7 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version 14.2.1
--------------
* Fixed args sometimes not being honoured in `plz run`.
Version 14.2.0
--------------
* Targets with stamp=True now get a file containing metadata about their dependencies (#805)
* plz run now does a better job of terminating subprocesses when killed (#808)
* Various fixes towards bootstrapping on ARM (#796)
* Support for TLS with remote execution
* Remote execution displays progress and RPC bytes in/out
Version 14.1.12
---------------
* More fixes for remote execution
Version 14.1.11
---------------
* Fixed some overly aggressive logging from remote API libraries
* Multiplex capabilities when there's a different execution / CAS server
* jarcat now extracts xzipped tarballs correctly.
Version 14.1.10
---------------
* python2 compatibility fix in please_pex
* Various remote execution fixes
* protoc_binary now provides well-known types as a dependency
Version 14.1.9
--------------
* Make remote timeout configurable (#770)
* Fix faulty download blob logic for servers that support batching reads.
Version 14.1.8
--------------
* Fix for an issue where protoc_flags passed to grpc_library were passed
twice to the actual protoc invocation
* Changed .pydistutils.cfg to setup.cfg in pip_library (#762)
Version 14.1.7
--------------
* More fixes for remote execution / caching.
Version 14.1.6
--------------
* Fixed label replacements for tools in subrepos
* Fixed uploading stdout to remote CAS
Version 14.1.5
--------------
* More fixes for remote execution / caching.
Version 14.1.4
--------------
* Fix issues with flags for recent pip versions
* More fixes for remote execution / caching.
Version 14.1.3
--------------
* More small fixes to remote execution code.
Version 14.1.2
--------------
* Lots of small fixes to remote execution code. It remains experimental.
Version 14.1.1
--------------
* Fixed width calculation in interactive terminal display
* Fixed a long-standing bug in --failing_tests_ok flag so it only applies to tests.
Version 14.1.0
--------------
* Added a separate `go_test_main` rule to template the main file for a go test in
a way that can be consumed separately from an actual test.
* Exit codes are now a bit more granular.
* `plz query print` now accepts a `-l` / `--label` flag to print specific labels for a target.
* `plz tool` works outside a repo
* Fixed a rare segfault when using both RPC and remote execution caches
* Various langserver fixes
Version 14.0.0
--------------
* Hashes are stored on files in xattrs (when available) for faster rebuilds (#640).
* Use of xattrs can now be disabled for systems where they are not supported (#641, #548, #644)
* The machine config file now lives in `/etc/please/plzconfig`
(previously it was `/etc/plzconfig`).
* `plz tool maven` and the builtin `maven_jars` are removed. They can be used from their
new home of https://github.com/thought-machine/pleasings.
* Non zip-safe pexes are now cached in $HOME & can be reused on subsequent runs.
* Users can bring their own test runner via the `python.testrunnerbootstrap` config property.
* `go_test` no longer works for versions prior to 1.8
* `go_library` rules using assembly now only work with Go 1.12+ (previously they did not
work with 1.12) (#659)
* The HTTP cache protocol has changed; we no longer provide a server implementation, but it
is now compatible with many other implementations (e.g. Cirrus, nginx/webdav, etc).
* The RPC cache is now deprecated in favour of a new remote execution cache. The client
remains in plz but we aren't providing the server implementation any more.
* `plz rebuild` is removed in favour of `plz build --rebuild`
* The `--keep_going` flag has been removed (#655)
* `python_binary` and `python_test` now take a `site` argument determining whether they
import the site module at startup. Default is off. (#634)
* Import lines are excluded from Python coverage stats (#607)
* Jarcat honours --strip_prefix in some more places
* Support for uploading test results to a remote server (#657)
Version 13.8.2
--------------
* Fix watch on files at repo root (#618)
* Allow targets labelled as manual to be included in (most) `plz query` invocations
* Add jcenter.bintry.com as a default Maven repo to improve reliability (looks like
repo1.maven.org rate limits us sometimes).
Version 13.8.1
--------------
* Update returns to original directory before re-exec (#627)
* More arguments are completed as filenames (#628)
* Initial support for incremental coverage calculations.
Version 13.8.0
--------------
* Allow specifying Python interpreter options through global config (#625)
* Allow `sh_cmd` to take commands as a list (#623)
* Explicit feature passing in the behave test runner integration (#621)
Version 13.7.1
--------------
* More robust subprocess management (#620)
* Improved default handling of files shown for coverage.
* Handle sources not existing on PATH more gracefully during `plz query changes`
* Allow for non-flat tarballs (#624)
Version 13.7.0
--------------
* `genrule` now accepts `pass_env`, a list of environment variables to be passed through (#575)
* `go_get` rules can now find dependencies without `gopath` (#617)
* Downloaded plz versions can be hash validated in addition to signature checked (#615)
* Jacoco version updated for better java 11 compatibility.
Version 13.6.3
--------------
* Instruct user directory to add to PATH manually. (#614)
* Use master for default revision in go_get, to avoid slow path. (#613)
* Setting PDEATHSIG on child processes (#605)
Version 13.6.2
--------------
* bzip2 decompression is now supported when extracting remote_file rules.
* go_get improvements for multiple downloads in the same rule.
* No longer fails for stamped rules when the SCM revision is unknown; instead
the placeholder <unknown> will be returned.
Version 13.6.1
--------------
* Add licences field to go_get
* Warn if stdin is being piped but not being read
Version 13.6.0
--------------
* Various fixes for `plz watch --run` (#599, #600, #602, #603)
* Fixes for `plz coverage` with no argument (#535)
* More cross-compilation fixes (#603)
* `remote_file` now takes an `extract` argument to extract tarballs / zipfiles.
* Added `get_licences` builtin to find licences of a target.
Version 13.5.5
--------------
* Fix for static Go binaries with definitions (#597)
* Allow config_setting rules to switch based on OS (#596)
Version 13.5.4
--------------
* Fix for finding subrepos (fixes cc_test in #577)
* Fixed secret substitutions only replacing the first tilde (#572)
Version 13.5.3
--------------
* Several cross-compilation issues fixed (#581, #582, #584, #585).
* Process termination is more robust for test timeouts etc.
Version 13.5.2
--------------
* Cached test results have an equivalent property set.
* Fixed pre_build argument not always being honoured on `genrule`.
* `plz init config` now does not need to be run within a repo (as `plz init` does not).
Version 13.5.1
--------------
* Level of reverse dependencies queried can now be controlled by a flag (#570)
Version 13.5.0
--------------
* Test sizes are now configurable through config (and more usable for non-builtin rules)
* Old user config files (in ~/.please/plzconfig) are now auto-migrated to new location.
* A Homebrew formula is now available (#530)
* please.location config property is now auto-detected based on install location.
This is somewhat nicer for system-level installs through Brew etc.
* Improved incrementality for go_library targets
* Don't arbitrarily exclude files named src.jar any more
Version 13.4.8
--------------
* Fix worker replacements that are not build labels not to be prefixed incorrectly.
* Honour escape sequences in f-strings correctly.
* Fixed a rare parse failure involving functions with a particular argument configuration.
Version 13.4.7
--------------
* Fix for some incorrect cache misses by not re-retrieving post-build output.
* Config hash filters out PATH since items located via it are hashed directly.
Version 13.4.6
--------------
* Fixed 'licences' error in maven_jars. Now issues a deprecation warning.
Version 13.4.5
--------------
* Fixed some post-build functions that were incorrectly erroring.
Version 13.4.4
--------------
* Bunch of Bazel compat fixes
* Fixed visibility checking of subinclude()
Version 13.4.3
--------------
* Fixed an issue on OSX with some incorrect dirs when the test sandbox flag was enabled.
Version 13.4.2
--------------
* Fixed `plz init` command without the `config` subcommand.
Version 13.4.1
--------------
* Various minor subrepo improvements & fixes
* Fixed query revdeps which wasn't querying to arbitrary depth correctly.
Version 13.4.0
--------------
* The sandbox tool now uses user namespaces and is shipped with Please.
It also sandboxes the test directory too.
* Tools are now looked up via PATH, allowing a little more flexibility around installation.
* go_get now works as before in a repo containing a go.mod
* `plz query deps` has a `--hidden` flag to expose internal targets.
* cgo_test now works with coverage
* Added `plz init config` subcommand to add things to config files
* User config file has moved to ~/.config/please/plzconfig; the old location is still
read but is deprecated.
Version 13.3.4
--------------
* Fixed Go coverage when there are hyphens in the path (#538)
* Some small FreeBSD-specific fixes
* `plz clean` honours the starting directory in the same way as `plz build` (#536)
Version 13.3.3
--------------
* Fixed `proto_library` for .proto files that specify a `go_package`.
* Fix to not rebuild rules as often in some rare cases (involving rules that have no
declared outputs but add them later using post-build functions).
Version 13.3.2
--------------
* Fixed race condition in cache for git builtins.
Version 13.3.1
--------------
* Improvements to git/exec error messages & path search for git builtins.
Version 13.3.0
--------------
* Fixed extra_outs on go_get (#483)
* Fixed termination of subdir walking (#489)
* Added linker definition support to `go tool link` (#491)
* Rename support in LPS
* Improved determinism in go_get
* Added native git commands (git_branch, git_commit, git_show and git_state).
Version 13.2.7
--------------
* Disallowed adding empty outputs to a target (this never made sense and
would only break things).
* Langserver now supports autoformatting and completion for local files
and argument names.
* Fixed an issue with incorrect permissions when a rule marked as binary
had a directory as an output (#478).
Version 13.2.6
--------------
* IntelliJ project export now ignores 'provides' redirects in
dependencies.
Version 13.2.5
--------------
* Fix for a possible infinite loop during builds when some specific kinds of
changes to targets were made.
* Further updates to language protocol server.
Version 13.2.4
--------------
* Better support for long filenames when operating on ar archives.
Version 13.2.3
--------------
* Some fixes to `plz watch`.
Version 13.2.2
--------------
* Fix to cc_static_library which wasn't always calculating symbol tables correctly.
Version 13.2.1
--------------
* Fixes to C and C++ rules in some subtle cases where object files could be created with
conflicting names.
* Language server now implements various textDocument and completion methods.
Version 13.2.0
--------------
* Test result files no longer have hashes in their names.
* UnitTest++ main has been moved out of core to pleasings.
This should be transparent at first but does involve downloading a subrepo -
it is part of a longer-term plan to make cc_test more generic.
* Some changes to how plz is released:
* Tarballs are released as xz as well as gz, which is considerably smaller
* Supports downloading releases from Github if downloadlocation is set correctly.
* Not releasing .deb artifacts for now
* Releases are now built on CircleCI and released automatically.
* Java components now live in github.com/thought-machine/please-java. They are
still released as part of Please in the same way as before, but there's no
javac requirement to build it now.
* please tool maven has a --graph flag that allows some integration
with existing BUILD files.
* Coverage can be disabled for all tests that have a particular label.
* Includes a language server which is still incomplete but under active development.
In future this will be the solution for IDE integration with BUILD files.
Version 13.1.8
--------------
* Corrected some cases where package() was not honoured correctly.
Version 13.1.7
--------------
* Correctly check `data` attributes of rules during `plz query changes`.
Version 13.1.6
--------------
* Fixed some spurious cache warnings.
Version 13.1.5
--------------
* More robust property expansions in `plz tool maven`.
Version 13.1.4
--------------
* Fixed python_wheel which in some subtle cases was not honouring `patch` correctly.
Version 13.1.3
--------------
* :all and ... labels are explicitly banned in various contexts.
This never actually worked, but the error messages are more useful now.
* Various subrepo fixes.
Version 13.1.1
--------------
* Some fixes to coverage output
Version 13.1.0
--------------
* Test flakes now have more distinct treatment for multiple runs (#350)
* Support for limited PEP-498 style f-strings in the BUILD grammar.
* Added `plz query roots` which returns roots of a dependency graph expressed
as a set of labels (i.e. the ones in the list that have no dependencies).
* Some improvements to structure of plz-out/go and some fixes for protos.
Version 13.0.1
--------------
* Minor fixes to Prometheus metrics and behave test runner.
Version 13.0.0
--------------
* Can now start shared test workers in a similar way to shared build workers.
* Worker protocol has been changed to JSON instead of protobuf. This isn't compatible
with older versions, but they shouldn't normally mix anyway.
* Now communicating with Docker using a proper API instead of execing the CLI.
docker_run_args is no longer supported as a result.
* Directory cache now supports a `dircompress` config option which stores artifacts
as gzipped tarballs. This is slower to save / restore but results in fewer files
and less space used.
* Support behave as a Python test runner.
* Supports Python 3.7
* Better preservation of XML test results
Version 12.2.5
--------------
* Fixed calculation of sources in `plz query changes` (#314)
Version 12.2.4
--------------
* Don't produce detailed test output if input is stdin.
Version 12.2.3
--------------
* Better XML output for tests that are skipped.
Version 12.2.2
--------------
* Fixed path hashing in `plz query changes`
Version 12.2.1
--------------
* Ensure Prometheus metrics only get initialised once.
Version 12.2.0
--------------
* Initial cross-compiling support via new --arch flag.
See the docs for more info: https://please.build/cross_compiling.html
* Added support for the Java --release flag (new in Java 9/10).
* Support to pass environment variables (#302, fixes #205)
* Added 'plz query changes' subcommand. This supersedes the old workflow
involving plz_diff_graphs and is considerably faster.
Version 12.1.8
--------------
* Make sure run arguments are passed into sh_binary.
* Use jarcat when creating archives for sh_binary rules.
* Fix sh_binary to use zip/unzip instead of tar.
* Ensure sh_binary extracts files into the same directory as the script being run.
Version 12.1.3
--------------
* More symlink fixes in outputs (#299)
Version 12.1.2
--------------
* Fix for some errors relating to symlinks in outputs.
Version 12.1.1
--------------
* Fix to incrementality in python_library rules where in some cases bytecode
was generated inconsistently.
Version 12.1.0
--------------
* `pip_library` rules output single .whl files for better cache performance (#297)
* Corrected some distutils errors when using Homebrew's `pip3` (#294)
* Initial (still experimental) implementation of `http_archive` and
`new_http_archive` rules.
* Various other improvements to Bazel compatibility.
* `remote_file` now has a builtin implementation and can show progress.
* A lot of internal refactoring around the implementation of subinclude().
Parse tasks now happen off the main worker 'threads' so they don't block them.
This is a prerequisite for subrepo support.
* Migrated most uses of `filepath.Walk` to `godirwalk` (#273).
* Fixed handling of aliases (#298)
Version 12.0.0
--------------
* Parser overhaul, cgo interface / cffi has been removed. There is now no requirement
for Python to be installed on a machine during initial bootstrap.
The still-unnamed BUILD language is now a much tighter subset of Python, which
will hopefully not present too many issues unless one is doing particularly fiddly
things in BUILD files.
* Go rules now filter their sources via build tags (including implicit ones derived from
filenames) as `go build` would. This can be suppressed by setting `filter_srcs = False`
if the old behaviour is preferred.
* The default Python interpreter is now python3. It can be set to python in the
.plzconfig if one prefers the old behaviour.
* The GoVersion config attribute has been removed, and with it support for versions < 1.5.
* The BUILD file linter (accessed via `plz tool lint`) has been removed. The warnings that
it reported are essentially all now prohibited by the parser.
* The RPC cache now uses gzip compression; the server will need to be updated to the
latest version to be able to communicate with clients.
Version 11.4.0
--------------
* Added --run flag to plz watch which invokes the targets using `plz run`
instead of build / test.
* Replace hyphen with underscore in buildenv plzconfig sections (#274)
* Added `plz query rules` which prints out the currently known set of rules definitions.
Version 11.3.2
--------------
* Fix for build failures in a rare case where there's a stale output file that is
part of the path for another output in a subdirectory, ultimately failing with
"not a directory" errors.
Version 11.3.1
--------------
* Improved checking for banned or deprecated BUILD language features
* Compiled with Go 1.9.3, hopefully this may fix rare "sweep increased allocation count"
bugs due to https://github.com/golang/go/issues/22781.
Version 11.3.0
--------------
* Support for Java 9 and JEP-220 features: `java_module` and `java_runtime_image`
can be used to build a standalone Java image using modules.
New config properties `jlinktool` and `javahome` have been added.
Version 11.2.1
--------------
* Small fix for some Java coverage instrumentation issues.
Version 11.2.0
--------------
* Add support for merging Akka's reference.conf files when building
java_library and java_binary targets with akka dependencies
* Add --env flag on plz run that applies config values to the environment
(notably PATH)
Version 11.1.3
--------------
* As much sorting as possible of original targets is now retained when they are passed
into subcommands (most notably `plz run sequential`, but could be others too).
* Fixed some duplicate flags on proto_library.
Version 11.1.2
--------------
* Fix for go_library when asm_srcs are passed, in some cases build would fail
with permissions errors.
Version 11.1.0
--------------
* python_binary and python_test rules can now import binary modules directly
via an import hook that dynamically extracts them as needed. Hence zip_safe is
not needed in many cases it was previously.
Version 11.0.2
--------------
* Several small fixes to please_maven correcting a few cases.
Version 11.0.1
--------------
* Fixed a rare internal data race.
* Added a warning for potential cases where one target outputs into a directory written
by another target, which can cause subtle build failures.
Version 11.0.0
--------------
* Now ships with a builtin parser engine so the .so's aren't necessary (although
still included 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, 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.
* Removed deprecated plz query completions --bash_script / --zsh_script flags
in favour of plz --completion_script.
* Fixed a bug where Python tests could fail under coverage for non-trivial setups
(like where the srcs are outputs of rules from another package).
Version 10.3.5
--------------
* Fix an issue on OSX where the parser engine was sometimes not found when plz
was invoked through a symlink.
Version 10.3.4
--------------
* Fix bug where some java tests couldn't load package-private classes when run with
coverage and without a test package specified due to security boundaries created
by instrumentation process.
Version 10.3.3
--------------
* Fixed RPC cache server to serve metrics on --http_port as the flag documentation said.
--metrics_port still works but will be removed in some future version.
Version 10.3.2
--------------
* Minor fix to calculation of number of test runs when specifying -n on a flaky test.
* Updated metrics on RPC cache server.
Version 10.3.1
--------------
* Small tab completion fixes.
Version 10.3.0
--------------
* Support for using pytest as the test runner instead of unittest
* Python tests now supply test files as runtime files instead of packaging into
the pex itself, leading to somewhat faster rebuild times.
* `go_library` rules can now be individually opted out of coverage instrumentation.
* `cgo_library` rules now accept a `pkg_config` argument to determine appropriate
compiler flags for dependencies.
Version 10.2.0
--------------
* Support for specifying Go import paths (#249)
* `plz follow` now works anywhere (you don't have to be in a plz repo)
* Fixed `sh_binary` which wasn't honouring visibility correctly.
Version 10.1.1
--------------
* Fixes a long-lurking bug where some config values didn't override properly.
Version 10.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.
Version 10.0.1
--------------
* Minor fix to Python import hooks in please_pex.
Version 10.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).
Version 9.5.1
-------------
* Is now possible to prevent Java tests from consuming stdout / stderr by passing
-DPLZ_NO_OUTPUT_CAPTURE to Java when running the jars. This isn't exposed through
plz anywhere though.
Version 9.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.
Version 9.4.3
-------------
* Fix a subtle bug in junit_runner where it could throw an index exception on
certain filenames.
Version 9.4.2
-------------
* Fix to result parsing of Go tests when things log to stdout
before the first test begins.
Version 9.4.1
-------------
* Small fix to maven_jar rules on OSX which would sometimes take the wrong path for
binary artifacts.
Version 9.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.
Version 9.3.2
-------------
* Fixed a bug where data entries of targets would turn up at build time as well.
Version 9.3.1
-------------
* Fixed command in previous version.
Version 9.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.
Version 9.2.3
-------------
* Fix a bug where C++ rules with a single source didn't always honour includes.
* Fixed a panic in flags unmarshalling (only when flags were already incorrect,
but we now handle it more nicely).
Version 9.2.2
-------------
* Bugfix in go_get which sometimes failed due to not finding any directories to remove.
Version 9.2.1
-------------
* Fixed one case that didn't correctly honour the `go` command location.
* maven_jars / please_maven now correctly support the @aar syntax.
Version 9.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.
Version 9.1.7
-------------
* Fixed -o flag to be able to override map fields in config, such as buildconfig
and aliases.
* Fixed gc.keep field in config which wasn't being honoured properly.
Version 9.1.6
-------------
* Fixed a subtle interaction of srcs and deps whereby transitive deps couldn't
be accessed when specified as both srcs and deps.
Version 9.1.5
-------------
* Actually fixed Python coverage some more.
Version 9.1.4
-------------
* Fixed test code accidentally introduced into previous version for Python tests.
Version 9.1.3
-------------
* Fixed `plz tool lint` which was looking in the wrong place.
Version 9.1.2
-------------
* Fixed plz_diff_graphs again, pray I do not fix it further.
Version 9.1.1
-------------
* Quick fix for plz_diff_graphs to honour manual:linux_amd64.
Doesn't work correctly on OSX yet though.
Version 9.1.0
-------------
* The 'manual' label can now be applied per-architecture, e.g. manual:linux_amd64.
Version 9.0.4
-------------
* Fixed plz hash --update for cases where the hashes are on child rules.
Version 9.0.3
-------------
* Minor fix to plz_maven to allow it to compare multiple repositories correctly.