cargo-make 0.26.0

Rust task runner and build tool.
Documentation
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
## CHANGELOG

### v0.26.0 (2020-01-10)

* New env_scripts to enable custom environment setup #360
* Added new CARGO_MAKE_RUST_TARGET_TRIPLE environment variable #356 (thanks @daxpedda)
* Added new CARGO_MAKE_CRATE_TARGET_TRIPLE environment variable (get default build target including from '.cargo/Config.toml') #357 (thanks @daxpedda)
* Enable custom scripts via shebang line for load and install scripts.
* Enable @script type detection with shebang line #359
* Upgraded duckscript version
* Increased minimum rust version to 1.39.0
* Added condition for build-publish-flow to restrict only to master branch #364

### v0.25.1 (2020-01-03)

* Bug Fix - Fixed CARGO_MAKE_PROJECT_VERSION when main_project_member is set
* Ensure cargo-make working directory is not modified after duckscript execution.

### v0.25.0 (2020-01-01)

* \[**backward compatability break**\] Ability to set multiple watch paths in watch options #354

### v0.24.3 (2019-12-31)

* Add support for duckscript #348
* Add conditional validation support for environment variables #344
* New CARGO_MAKE_PROJECT_NAME and CARGO_MAKE_PROJECT_VERSION environment variables #349
* Ability to set watch path in watch options #350
* New zip-release-ci-flow task to enable zip creation for binary release publishing
* New workspace publish flow #347
* Upgrading run_script crate

### v0.24.2 (2019-12-13)

* New env_contains condition #335
* New custom condition failure message attribute: **fail_message** #332
* New print-env-flow task which prints out entire env info (rust, git, cargo, crate, ci, ...) #333
* New CARGO_MAKE_CI_BRANCH_NAME environment variable #334
* New CARGO_MAKE_CI_VENDOR environment variable #337
* Outdated dependencies validation as part of CI flow to be limited to CI master branch only #323

### v0.24.1 (2019-12-06)

* Support invocation of multiple tasks via run_task #324
* Support invocation of multiple tasks in parallel via run_task #321
* New CARGO_MAKE_CURRENT_TASK_NAME, CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE, CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY environment variables #322
* Info printout to state if task is running or skipped #326
* New CARGO_MAKE_CARGO_HOME environment variable #331 (thanks @daxpedda)
* Generate task list documentation file via new cli argument (output-file) #325
* Outdated dependencies validation as part of CI flow to be limited to master branch only #323
* Use new git_info crate to fetch git info and setup environment #320

### v0.24.0 (2019-11-22)

* Support defining and loading env files in makefile via new env_files attribute #306
* \[**backward compatability break**\] Workspace profile now passed on to members #309 (thanks @daxpedda)
* New CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY environment variable #311 (thanks @daxpedda)
* Fix CARGO_MAKE_TASK_ARGS not being passed down to workspace members #314 (thanks @daxpedda)
* \[**backward compatability break**\] Task cwd attribute supports environment variables expansion #318
* Guard against self-referential aliases #305 (thanks @phi-gamma)
* Migrate to envmnt::expand #308
* New CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS environment variable #316

### v0.23.0 (2019-10-16)

* Enable/Disable color output child process support #299 (thanks @emakryo)
* Main profile should override additional profiles env blocks #300
* Print project name being built #301

### v0.22.2 (2019-10-01)

* Ability to unset environment variables #294
* New environment variable to hold current workspace member name #285
* Support script file path for task script attribute #286
* New files_exist and files_not_exist conditions #287
* Added new curl based github release task #293
* Add cargo-udeps task #284
* New CARGO_MAKE_PR environment variable #297
* Add outdated check as part of CI flow

### v0.22.1 (2019-08-20)

* Support decoding ability for environment variables initialization #275 #277
* Codecov and tarpaulin integration fix for CI flow #274 #275 (thanks @vtavernier)
* New @@decode function for command arguments #278
* Move link-dead-code definition to coverage task #279
* Enable decode to mirror source value as default value #280
* Add env mapping between cargo make profile and cargo.toml profile #281

### v0.22.0 (2019-08-14)

* Specify minimum version for tools/dependencies #265
* Globally disable workspace support via makefile config #264
* Support additional rust script runners #216
* Ability to mark a task deprecated #270
* \[**backward compatability break**\] Use task cwd in condition and installation scripts #259
* Check descriptor min_version before deserializing #268 (thanks @roblabla)
* Profile name passed incorrectly via forked sub tasks #263
* Add support for deleting lock file before publishing
* Add support for dirty cargo publish

### v0.21.0 (2019-06-26)

* Add support for multiple test_args when checking for installed crate #252 (thanks @roblabla)
* \[**backward compatability break**\] Upgrade shell2batch for improved windows integration

### v0.20.0 (2019-06-16)

* Control kcov installation directory #98
* Caching kcov documentation #238
* Upgrade default kcov version to 36
* \[**backward compatability break**\] Rename KCOV_VERSION to CARGO_MAKE_KCOV_VERSION

### v0.19.5 (2019-06-09)

* Specify cargo-make minimal version #243
* Add ability to remove --all-features flag from build/test/bench tasks #248
* Add ability to modify clippy arguments #246
* Documentation - installing `cargo-make` when caching `cargo` #249 (thanks @elpiel)

### v0.19.4 (2019-06-01)

* Support additional profiles env blocks #240
* Prevent reinstallation of clippy on nightly #239
* Upgrade cargo-watch #241 (thanks @David-OConnor)

### v0.19.3 (2019-05-27)

* Fix clippy installation on nightly #236

### v0.19.2 (2019-05-25)

* Allow to modify kcov include pattern #229
* Improve kcov coverage binary filter pattern #230
* Prevent init/end task invocations on forked run tasks #227
* Migrate env file parsing and loading to envmnt

### v0.19.1 (2019-05-10)

* Support setting boolean environment variables #223
* Added new env_true/env_false conditions #221
* \[**backward compatability break**\] Normalize boolean env vars #220

### v0.18.0 (2019-04-30)

* Allow run_task to invoke the task as a sub process #214
* \[**backward compatability break**\] Upgrade shell2batch to fix path separator issue

### v0.17.1 (2019-04-04)

* Fix broken workspace support #210

### v0.17.0 (2019-04-03)

* Add extend capability for tasks #206
* Support internal core tasks modifications (private and namespacing) #201
* Support splitting command line argument to multiple arguments using functions #202
* New remove_empty function #205
* New trim function #208
* Add support for namespaces for workspace builds #204
* Add kcov version validation #203

### v0.16.10 (2019-03-01)

* Fix docs

### v0.16.9 (2019-03-01)

* Colorful output and a new cli argument to disable color (--no-color) #191
* Support multiple extend #192
* Support optional extend #193
* New test-with-args task to enable testing specific tests only
* Support multi line environment variables from script output #196
* Reducing cargo-make info level output #194
* Locking default cargo watch version and supporting user defined version #195

### v0.16.8 (2019-02-09)

* Support additional watch options #188
* Support glob paths in CARGO_MAKE_WORKSPACE_SKIP_MEMBERS #187
* Add install-rust-src and install-rls to internal makefile #189
* Renamed task 'force' attribute to 'ignore_errors' #120
* Split CARGO_MAKE_TEST_COVERAGE_BINARY_FILTER to use CARGO_MAKE_TEST_COVERAGE_DEFAULT_BINARY_FILTER for easier customization

### v0.16.7 (2019-01-25)

* Shebang line support #130 (thanks @SamuelMarks)
* Prevent multiple calls for init/end #184
* Test internal makefile coverage tasks #183

### v0.16.6 (2019-01-21)

* Fix broken coverage task

### v0.16.3 (2019-01-21)

* Enable coverage implementation selection via env #180
* Fix on error and watch proxy tasks #179

### v0.16.2 (2019-01-20)

* Profile support #174
* Task routing #175
* Set travis deploy overwrite=true
* Fix broken links in documentation

### v0.16.1 (2019-01-17)

* Enable coverage for every Linux based CI system
* Support task watch #118
* Command --list-all-steps now supports markdown output format
* New command --diff-steps to enable diff changes to flow based on custom makefile #121
* Document Azure Pipelines config #161
* New diff-files task which enables to diff 2 provided files

### v0.16.0 (2019-01-04)

* \[**backward compatability break**\] Should abort on non existent makefile if provided on cli or on extends property #143
* \[**backward compatability break**\] Update format task for stable rust #160
* Add format check and clippy to ci-flow #161 (thanks @D4nte)
* Add new print steps output format 'short-description' #121
* \[**backward compatability break**\] Remove preview from clippy and rustfmt components #162
* Add new CARGO_MAKE_CI environment variable

### v0.15.3 (2018-12-07)

* Package additional executable without cargo dependency #69
* Add CircleCI docs #152
* Delete merged branches as part of github release flow #154
* Fixed uploading windows binaries to GitHub releases #157

### v0.15.2 (2018-11-28)

* Rustup integration for non-binary/non-cargo dependencies #139
* Rust toolchain support #132
* Add fmt check task #138
* Support absolute path for CARGO_MAKE_WORKING_DIRECTORY on windows #142

### v0.15.1 (2018-11-12)

* Fix github release as part of travis build

### v0.15.0 (2018-11-12)

* rustup integration #122
* add clippy rustup installation config #119
* prevent script output if log level is error #117
* Support uploading binaries to GitHub releases #127 (thanks @LegNeato)

### v0.14.0 (2018-09-05)

* Condition support for rust version (min,max,eq) #110
* Upgrade dependencies with possible backward compatability break

### v0.13.0 (2018-08-10)

* Upgrade rustfmt support

### v0.12.1 (2018-08-09)

* Support additional default coverage test patterns #107

### v0.12.0 (2018-08-02)

* Defining --no-workspace cli flag via task attribute #99
* Support unsetting task attributes in extended Makefile #100
* Support accepting arguments and passing them to commands and scripts #101
* Follow XDG Base Directory Specification #105
* Doc category for task list #102

### v0.11.3 (2018-06-24)

* Fix workspace coverage not being generated #97

### v0.11.2 (2018-06-22)

* Fix automatic workspace makefile extending #96

### v0.11.1 (2018-06-06)

* Support writing tasks in various scripting languages #90
* Internal private tasks #94

### v0.11.0 (2018-05-29)

* Support environment variable substitution in commands and arguments #92

### v0.10.8 (2018-05-18)

* Add support for a catch/cleanup task in case of any errors #89
* Load env vars from simple text files #88
* Fix workspace member paths on windows #87

### v0.10.7 (2018-05-11)

* Support automatic workspace makefile extend #84
* New task to rebuild lock file with most updated dependencies #83

### v0.10.6 (2018-03-20)

* Fix script issues due to file permissions (#81)

### v0.10.5 (2018-02-27)

* cargo make audit will only be invoked if a Cargo.lock file exists (#74)

### v0.10.4 (2018-02-26)

* Fix composite environment variables resolution order (#78)

### v0.10.3 (2018-02-24)

* update_check_minimum_interval default changed be weekly (#76)
* Added test_ files to kcov test coverage invocation
* Update dependencies documentation (#72)

### v0.10.2 (2018-02-08)

* Check for update minimum interval definition in global configuration (#68)

### v0.10.0 (2018-02-02)

* Search for makefile.toml in parent directories (#65)
* Global configuration file to define default log level, task name (#64)
* Reformat changelog (#66)

### v0.9.5 (2018-01-22)

* Fixed critical loading issue due to #56

### v0.9.4 (2018-01-19)

* Support new skip_core_tasks config flag (#56)

### v0.9.3 (2018-01-05)

* Coverage test files user level pattern (#59 and #60)

### v0.9.2 (2017-12-29)

* Coverage will execute all test files without any need for specific naming conventions or configuration (#50 and #51)

### v0.9.1 (2017-12-28)

* Bug fixes for git info loading and coverage on workspace level (#49 and #52)

### v0.9.0 (2017-12-18)

* Disabled tasks should be skipped including dependencies (#47)

### v0.8.0 (2017-12-17)

* Support multiple rustfmt versions (#45)

### v0.7.11 (2017-12-14)

* Fixed rustfmt backward compatability break issue

### v0.7.10 (2017-12-06)

* Workspace support fixes for windows

### v0.7.5 (2017-12-03)

* Support conditional skipping of workspace members from flow (#42)

### v0.7.4 (2017-10-25)

* kcov support for excluding lines/blocks from coverage report

### v0.7.2 (2017-10-23)

* Added workspace level coverage task without the need to run full CI flow (workspace-coverage)

### v0.7.1 (2017-10-21)

* Added support for cross platform scripts using script runner @shell

### v0.7.0 (2017-10-20)

* Refactored how rust code based scripts are defined to enable future expansion of this feature.

### v0.6.5 (2017-10-12)

* ci-flow and build-flow will build/run benches and examples based on new environment variables: CARGO_MAKE_BUILD_EXAMPLES, CARGO_MAKE_BUILD_BENCH and CARGO_MAKE_RUN_BENCH

### v0.6.1 (2017-10-08)

* Tasks can now run rust code using rust_script attribute and tasks can no longer hold multiple different action definitions.

### v0.5.3 (2017-09-29)

* Added support to evaluate env var values from script output and define cwd on task level

### v0.5.2 (2017-09-24)

* Added various check and build tasks

### v0.5.0 (2017-09-21)

* Disable by default coverage flow on mac

### v0.4.1 (2017-09-18)

* Added watch-flow task

### v0.3.77 (2017-09-17)

* Automatically define install_crate and enable cargo install arguments via install_crate_args

### v0.3.76 (2017-09-16)

* Build failure will not cause panic but will exit

### v0.3.75 (2017-09-12)

* By default build and test should work with "--all-features" flag

### v0.3.66 (2017-08-23)

* Add support for workspace glob members

### v0.3.64 (2017-08-22)

* Cargo.toml parsing fix

### v0.3.63 (2017-08-21)

* Add support for Cargo.toml workspace.exclude

### v0.3.62 (2017-08-21)

* Add workspace member detection based on dependency paths

### v0.3.59 (2017-08-20)

* Support load_script platform overrides

### v0.3.58 (2017-08-19)

* Added load_script capability

### v0.3.56 (2017-08-18)

* Set environment variables during task invocation

### v0.3.53 (2017-08-09)

* Added new condition types: env, env_set and env_not_set

### v0.3.51 (2017-08-09)

* Added experimental cli arg to enable access unsupported experimental predefined tasks

### v0.3.49 (2017-08-08)

* Added condition attribute

### v0.3.46 (2017-08-06)

* Added bintray upload task

### v0.3.43 (2017-08-02)

* Added --env/-e cli args to set environment variables via command line

### v0.3.41 (2017-08-01)

* Added github-publish task

### v0.3.38 (2017-07-28)

* Added run_script which allows executing sub tasks

### v0.3.37 (2017-07-25)

* Added condition script capability for tasks

### v0.3.36 (2017-07-22)

* Added coverage-lcov task (not fully tested)

### v0.3.34 (2017-07-21)

* Added coverage-tarpaulin task

### v0.3.33 (2017-07-21)

* Added more environment variables for workspace support

### v0.3.32 (2017-07-20)

* Added --list-all-steps cli option

### v0.3.28 (2017-07-17)

* workspace level ci flow

### v0.3.27 (2017-07-16)

* cargo make ci-flow on travis now automatically runs code coverage and uploads to codecov

### v0.3.25 (2017-07-16)

* New --no-workspace cli arg

### v0.3.24 (2017-07-15)

* Workspace support

### v0.3.23 (2017-07-14)

* Added codecov task in default toml

### v0.3.20 (2017-07-14)

* Added coverage task in default toml

### v0.3.16 (2017-07-14)

* Added more environment variables based on target environment and rust compiler

### v0.3.15 (2017-07-13)

* Added common init and end tasks

### v0.3.13 (2017-07-10)

* cargo-make now defines rust version env vars

### v0.3.11 (2017-07-09)

* cargo-make now defines env vars based on project git repo information

### v0.3.10 (2017-07-06)

* cargo-make now defines env vars based on project Cargo.toml

### v0.3.6 (2017-07-05)

* Added --cwd cli arg to enable setting working directory

### v0.3.5 (2017-07-04)

* Added clippy task

### v0.3.4 (2017-07-03)

* Added --print-steps cli arg

### v0.3.1 (2017-07-02)

* Added CARGO_MAKE_TASK env var holding the main task name

### v0.3.0 (2017-07-02)

* Renamed few cli options

### v0.2.20 (2017-07-02)

* Added -v and --verbose cli arg

### v0.2.19 (2017-07-01)

* Added extend config level attribute

### v0.2.17 (2017-06-30)

* Added force task attribute

### v0.2.12 (2017-06-28)

* Published website

### v0.2.8 (2017-06-28)

* Platform specific task override

### v0.2.7 (2017-06-26)

* Platform specific alias

### v0.2.6 (2017-06-26)

* Enable task attributes override

### v0.2.3 (2017-06-25)

* Added disabled task attribute support

### v0.2.0 (2017-06-24)

* Internal fixes (renamed dependencies attribute)

### v0.1.2 (2017-06-24)

* Print build time, added internal docs, unit tests and coverage

### v0.1.1 (2017-06-24)

* Added support for env vars, task alias and crate installation

### v0.1.0 (2017-06-23)

* Initial release.