forked from thought-machine/please
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
3499 lines (2355 loc) · 116 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 15.11.0
--------------
* Added PreloadSubincludes in a similar vein to PreloadBuildDefs
which allows the specified target to be subincluded automatically
in all packages #1414
* Added a new method for installing go modules that avoids a number
of issues with using "go build" from within Please. This feature
is experimental and can be enabled with the PleaseGoInstall
feature flag #1417
* Output directories now maintain file permission when moving outputs
to plz-out #1441
* Fix issues around subincluding from a target defined in the
current package #1424
* Fix regression in go_get() where it was failing to produce
outputs in some circumstances #1437
Version 15.10.0
--------------
* Added go_module() rule that handles vanity imports and
module major versions better than go_get() #1396
* Updated pip_library() to work with pip v20.3.x+ #1421
* Fix issue with duplicate outs on go_get() causing missing
outputs #1437
Version 15.9.2
--------------
* Various small fixes and optimisations to remote execution
#1401 #1397 #1402 #1403
* Address edge case for filegroups so they now check if they're
overriding another package #1404
* Added option for a light colour scheme that works better for
terminals with a light background #1405
* Fixed non-deterministic hashes for outputs in go rules #1410
Version 15.9.1
--------------
* Print milestone message to stderr instead of out
Version 15.9.0
--------------
* Transitive dependencies of subinclude() calls are no longer downloaded
if remote execution is enabled.
* Secrets in the [BuildEnv] section no longer contribute to the config hash
#1387
* Codelabs are now live at https://please.build/codelabs.html
* Made $DATA and $TOOLS variables available at runtime when using
`plz run --env` #1384
* `protoc_binary()` now translates go style os and arch values to the
correct format for their releases #1394
Version 15.8.2
--------------
* Stop sh_test() modifying the permissions of it's inputs #1375
* Print a summary of log messages after a build #1377
* Named tools, test_tools and data are now formatted as a dict
instead of a list for `plz query print` #1379
* Binary filegroups no longer modify their sources permissions
#1376
Version 15.8.1
--------------
* Revert to old behavior for go_get() when both `get` and `install`
are lists #1365
Version 15.8.0
--------------
* Allow go_get() to specify installs per module #1335
* Allow format strings and raw strings to be implicitly
concatenated in the build language #1344
* Added is_platform() rule which can check the current platform
matches the specified cpu and operating system.
* Made go_get() specific about its outputs based on the installed
packages. This allows multiple go_get() rules install different
packages from the same module. This can help resolve cyclic
dependencies. #1341 #1352
* pip_library() now uses python -m pip instead of pip on the path
to avoid problems where pip and python are different versions.
#1346
* Added exported_deps to genrule() and gentest() which can be used
to re-export dependencies to those that depend on these rules.
#1345
* Made maven_jar() download its sources in a way that is compatible
with tooling. This is gated behind the MavenJar feature flag and
is due to be released in v16.
* Fixed an issue where tools were being copied into build rules
when they used entry points #1349
* Made go_toolchain() install the standard libraries of the target
platform when cross compiling #1350
Version 15.7.1
--------------
* Subincludes now set the config values based on the --arch flag
correctly #1324
Version 15.7.0
--------------
* Glob will now include hidden files when Bazel compat is enabled #1305
* Fix some niggles around select() and config_setting() #1324
* Improved test output to include real and total time #1309
* Fix to cgo_library() to set its import path correctly #1310
* Adding multiplication and division to the BUILD language #1314
* go_get() now tags download rules based on the whole module name
rather than just the github group #1327
* go_get() now supports multiple patches #1328 #1333
* Fix nil pointer when failing to parse test output for remote execution
#1330
Version 15.6.0
--------------
* Added an `entry_points` dict to `build_rule()` which can be used
to name a number of outputs from a build rule. These can later be
referred to as tools in other rules. See `java_toolchain()` for an
example. #1243
* Rewrote `java_toolchain()` to use aforementioned entry points.
NB: this implementation lacks support for javac workers #1263
* Added `go_toolchain()` build rule. This is still a work in progress
but currently downloads the golang distribution. This can then be
used to set GoTool in your `.plzconfig`. #1286
* Please will now retry on failures to download updates #1257
* The pleasew wrapper script will now pass `$PLZ_ARGS` when it invokes
please much like the bootstrap script. This can be useful in a CI
environment. #1252
* Added new sub-command `plz fmt` that will try and format build files.
This uses a modified version of Bazel's buildifier that supports more
of please's build language. #1265
* Fix issue where `go_test()` wasn't using the configured `GoTool` for
coverage. #1271
* Allow `plz query somepath` to read from stdin #1269
* Added `--log_append` which will make please append to `plz-out/log/build.log`
instead of overriding it. This can be useful when piping outputs from
`plz query` back into please. #1273
* Introduced the concept of milestone releases! Once we feel please has reached
a milestone in its development, we will write up a summary of recent changes
and that release will be marked as a milestone. Please will print a dialogue
linking to this writeup when updating. Watch this space, we will also be
distributing these via a newsletter! #1281
* Remote execution: turn off gzip compression by default (#1283) and add support
for zstd compression (#1288)
Version 15.5.0
--------------
* Added `test_tools` which works the same as `tools` but
makes them available to `test_cmd` instead #1247
* Added $(out_dir ...) and $(out_locations ...) command
replacements #1244
* Made `plz query roots` and `plz query filter` omit hidden
rules from their results. This is closer to how other `plz query`
commands work. Also added a `--hidden` flag so they can be
included when needed #1242
* Avoid trying to download the empty blob in a few places for
remote execution #1241
* Fixed edge case issue with go tests when there's no tests
and a TestMain method #1245
Version 15.4.1
--------------
* Additional test outputs are now optional when when executing
remotely just as they are when executed locally #1234
* Improved performance of preparing inputs for targets when
executing remotely #1236
Version 15.4.0
--------------
* The linux Please binary is now statically linked so is portable
across musl and glibc linux distributions #1180
* GOROOT is now respected when configured and the go tool is
determined based off this variable. If the GOROOT is not provided,
the GOROOT is determined as `go env GOROOT` based on the
configured go tool. #1195
* Java binaries are now self executable by default. This feature
is gated behind a feature flag until v16. Type plz help featureflags
for more information. #1197
* Fixed esoteric edge cases in jarcat where it would fail to create
directories under some circumstances #1203
* subrepo_name() and package_name() now work in the top level of a
build definition file returning the package and subrepo of their
build rule respectively #1198
* plz init is now interactive and will guide you through adding
the pleasings subrepo if you wish. The pleasings subrepo will
no longer be added implicitly as of please v16 #1205
* Java tests no longer fail when the junit tool is a real file rather
than being on the path #1207
* Fixed regression with C and C++ proto rules #1216
* Made hash_filegroup more portable by detecting available implementations
of sha1hash #1209
* The go_benchmark() rule now marks all its internal rules as test only #1221
* Added interactive golang setup to plz init. Please will now detect a
go.mod file and set your import path correspondingly. It will also
warn around common pitfalls when setting up go on the path #1224 #1225
* Added config option to make please descend into the package directory
before running go tests. This is closer to how `go test` works and can
help migrate from `go build` to please #1226
* Deprecated --nocache which will be removed in v16 #1229
* The pip_library() rule now applies its labels to all its sub-rules
#1211
* Added a config option to make please `set -e` before running any
commands. This will make please fail fast and avoids errors being silently
ignored #1210
* Additional test outputs are now downloaded to plz-out when tests
are run through remote execution #1230
* Please now adds a `User-Agent` header to remote_file() requests #1232
Version 15.3.0
--------------
* Implement more principled linking of go code, avoiding a lot of
hackorama from the old approach and allowing arbitrary import
paths for go_library rules. #1158
* Added subrepo_name built in function to the build language. This
should make targeting rules within your repository possible
even when it's being used as a subrepo. #1190
* Improved the way labels are applied to tests so all subrules are
also labeled. #1189
* Hashes of rules using "PassUnsafeEnv" no longer change as the env
changes. #1187
* Fixed `--in_wd` so that it stays in directory correctly. #1172
Version 15.2.0
--------------
* Improved portability of applying patches to go_get rules #1160
* Allow staying in the current directory when using plz run by
passing the --in_wd flag
* Fixed some issues around linking go packages (#1061 and #1157)
* Added removeprefix and removesuffix built in functions to the
build language #1155
* Made subinclude variadic so multiple targets can be included on
one line #1153
* Removed `plz ide intellij` #1141
* Http cache now retries on error. #1143
* Please now returns the correct error code on cross compilation
failures #1151
* Improve the get_command built in function to return a dictionary
in that case #1147
* There is now a binary release of please for FreeBSD #1142
* Please now cleans up stale outputs correctly which was causing
issues when renaming a target #1134
* Added an example http cache implementation. This might be preferable
to something like nginx as its configuration is very light weight.
#1133
Version 15.1.0
--------------
* Some improvements around git operations and stamping targets. There's
performance improvements (#1114 and #1113) as well as better error
reporting (#1125)
* New configuration option to limit the number of concurrent http cache
requests. The default limit is 20. #1115
* Made plz update respect the plain output flag #1120
* Some improvements to the remote file so that it can extract a subset of
files from the archive. The out parameter is now also optional and if it is not
provided, the files are extracted into the root of the rule's output. #1123
* Updated please to use go 1.15
* HTTP cache now cleans up connections more robustly #1129
* `plz clean --nobackground` now cleans read only files #1122
* Support for custom output name for sh_binary rules #1119
Version 15.0.1
--------------
* Go rules now write a go.mod file to plz-out to help go tooling work better
with a please repo.
* Fix links in plz-out/go/src so that they link to files rather than just the
root of the repo. #1105
* Fixed the --rerun flag on tests for remote execution to force a re-run of an
already passed test. #1100
Version 15.0.0
--------------
* Please now supports remote execution using the
[Remote Execution API](https://github.com/bazelbuild/remote-apis).
See the documentation for more detailed information about
how to set it up and what's needed.
* `plz query affectedtargets`, `changed` and `changes` have been
consolidated into a single command `plz query changes`. See #922
for more details & migration info.
* `plz query deps` now always outputs unique dependencies (like the
`--unique` flag used to do).
* The RPC cache has been completely removed. We recommend the HTTP
cache for simple caching setups, which some CI providers may
offer by default.
* `plz follow` has been removed.
* The output of `cc_shared_object` rules are automatically prefixed
with `lib` where appropriate.
* SHA256 is now the default hash function. SHA1 hashes specified in
BUILD files will continue to work.
* `hash_filegroup` is now implemented in the BUILD language instead of
as a builtin. Generally it shouldn't matter but the output format is
slightly different (it is hex-encoded instead of base64).
* Changed the proto_language contract: language plugins now have to output
into $OUT_DIR instead of $TMP_DIR. This is to facilitate a change that
simplifies the inner workings of proto_library improving incrementality,
as well as doubling the performance when built using remote execution.
* Added a --rerun flag to plz test. This shouldn't be strictly necessary
if you're builds are pure however it can be useful when changing your
environment/toolchain.
* Added module_major_version argument to go_get rule. This works around
some issues with modules that have done a major release. See the
go_get documentation for more information. #1078
Version 14.6.0
--------------
* Fixed a file leak in please #1017
* Fixed a concurrency issue with uploading test results when using
--num_runs #1016
* Added metadata field to build rules that can be an arbitrary object.
This metadata can later be retrieved by a new built-in function
get_rule_metadata. #1006
* Added java_toolchain rule that can be used to download a JDK. This
can be passed to java_library and java_binary to specify the version
of java to use. This is still a WIP and doesn't support a number of
things, most notably javac workers. #1011
* Added a go_benchmark rule that can be used to produce a binary to
run a go benchmark suite. #1014
Version 14.5.7
--------------
* Reused outputs of previously remotely built targets are now downloaded
correctly in some circumstances.
Version 14.5.6
--------------
* Incrementality stats & caching statuses are now calculated correctly
when using remote execution.
Version 14.5.5
--------------
* Test outputs are no longer downloaded in batches for remote execution
to avoid exceeding the size limit.
* $(exe) replacements no longer include local paths for remote execution.
Version 14.5.4
--------------
* Test output is no longer repeated for multiple failing runs (#1001)
* Fixed output package checks (#999)
* Various remote execution fixes.
Version 14.5.3
--------------
* Fix issue where test_results.xml was missing package and suite names
Version 14.5.2
--------------
* Go test output now parses correctly again (#994)
* Matches of original targets for downloading outputs are now more exact (#987)
Version 14.5.1
--------------
* Various improvements to Go test result parsing, especially skip messages (#980, #982)
* Remote execution now orders directory contents lexicographically (#979)
* `plz test --shell` correctly sets environment variables accounting for multiple runs.
Version 14.5.0
--------------
* Runs tests in parallel across multiple workers when providing --num_runs flag (#996)
* Fixes for go coverage to make sure the coverage file is always generated (#977)
* Fix for parsing go 1.14 test output (#969)
* Fixed "negative repeat" issue with narrow terminal size when rending progress bars (#967)
* Supporting --num_runs meaningfully for remote execution (#974)
Version 14.4.4
--------------
* Pexes are now more Windows compatible (#947)
* Suppressed some spurious logfile creation (#949)
Version 14.4.3
--------------
* Rules consuming files across package boundaries are now checked more accurately and
at build time rather than parse time.
* Data attributes are downloaded recursively when building remotely.
Version 14.4.2
--------------
* Auth tokens are now attached to outgoing requests on the remote asset API when
the URL differs to the main execution API.
Version 14.4.1
--------------
* Various improvements to double-star globbing implementation.
* `plz hash --update` is now a bit more robust to non-trivial BUILD files.
Version 14.4.0
--------------
* Binary rules now generally accept a `data` argument indicating dependencies they need at runtime
(paralleling the existing equivalent on tests). This is mostly relevant for remote execution.
* Double-star globbing is now more consistent (#927, #874)
* Parsing of JSON coverage output from Istanbul is now more correct (#923)
* `plz run` now accepts a `--remote` flag allowing it to leverage remote execution.
Version 14.3.11
---------------
* Fixed an issue since 14.3.8, plz now again falls back to copying when linking fails.
Version 14.3.10
---------------
* Suppressed some spurious errors about linking duplicate test results into surefire directory.
Version 14.3.9
--------------
* Fix creation of links in e.g. plz-out/go which in some rare circumstances could
end up polluting other parts of plz-out (#899).
* Fixed java_library rules that took only resources and not srcs (#900)
Version 14.3.8
--------------
* Fix for python_test which was not correctly accepting `data` as a dict (#899).
* Allow symlinks in jarcat tarballs (#898)
Version 14.3.7
--------------
* Coverage reports use unified class / file names (#885)
* Fixed a bug in `plz init` in the previous version.
Version 14.3.6
--------------
* Python testrunner compatible with newer versions of coverage (#870)
* Updated a number of third-party Python libraries (#872)
* Temporarily reverted concurrency change from last release.
Version 14.3.5
--------------
* Fix bug where trying to subinclude :all would hang forever (#862)
* Better concurrency for parse-only operations on bigger machines
* Updated to Go 1.14
* More remote execution fixes
Version 14.3.4
--------------
* Fixed some quoting in Go rules from previous release.
Version 14.3.3
--------------
* Fixed a bug where `plz query changes` could be thrown off by sources beginning with ./
All source files now have that stripped for consistency.
* Some corrections for proto_library rules at the root of the repo.
* Extensively quoted build variables to make things work better in paths with spaces (#850)
Version 14.3.2
--------------
* Add an SCM_COMMIT_DATE env var to stamped build targets (in the format
YYYMMDD)
Version 14.3.1
--------------
* Fix jarcat when rules are sandboxed
Version 14.3.0
--------------
* The `data` argument to various test rules can now be named (as `srcs` and `tools` etc).
* Remote execution now requires the new Remote Asset API for `remote_file` rules.
Version 14.2.2
--------------
* Modified `sh_binary` rule to exclude its own output from zip.
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
--------------