forked from PrefectHQ/prefect
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELEASE-NOTES.md
More file actions
4070 lines (2990 loc) · 267 KB
/
RELEASE-NOTES.md
File metadata and controls
4070 lines (2990 loc) · 267 KB
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
# Prefect Release Notes
## Release 2.11.1
### Enhancements
- Add `work_queue_name` field when creating a flow run for a deployment, enabling the queue setting to be overridden on a per-run basis — https://github.com/PrefectHQ/prefect/pull/10276
- Prevent accidental credential logging on BindFailure by logging only a list of key names, but not the values — https://github.com/PrefectHQ/prefect/pull/10264
- Allow task runs to explicitly return `Paused` states, therefore pausing the flow run using the same settings — https://github.com/PrefectHQ/prefect/pull/10269
### Fixes
- Hide links to work queues for push work pools — https://github.com/PrefectHQ/prefect-ui-library/pull/1603
- Fix issue with Pause state fields — https://github.com/PrefectHQ/prefect-ui-library/pull/1606
- Fix issue with flow run logs missing until after refresh — https://github.com/PrefectHQ/prefect-ui-library/pull/1594
### Experimental
- Add a general use concurrency context manager — https://github.com/PrefectHQ/prefect/pull/10267
- Add `rate_limit` function to block execution while acquiring slots — https://github.com/PrefectHQ/prefect/pull/10299
### Documentation
- Add redirect to quickstart page — https://github.com/PrefectHQ/prefect/pull/10292
- Add missing quotation mark in docstring — https://github.com/PrefectHQ/prefect/pull/10286
- Fix `run_deployment` docstring rendering — https://github.com/PrefectHQ/prefect/pull/10310
- Fix type in deployment docs — https://github.com/PrefectHQ/prefect/pull/10303
### Contributors
- @Sche7 made their first contribution in https://github.com/PrefectHQ/prefect/pull/10286
- @LennyArdiles made their first contribution in https://github.com/PrefectHQ/prefect/pull/10264
- @Akshat0410 made their first contribution in https://github.com/PrefectHQ/prefect/pull/10303
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.11.0...2.11.1
## Release 2.11.0
### Flow summary graphs and stats
Each flow page now includes graphs of it's recent flow runs, task runs, and (in prefect Cloud) related events, as well as summary statistics!
<img width="1373" alt="Screenshot 2023-07-20 at 3 42 51 PM" src="https://github.com/PrefectHQ/prefect/assets/3407835/5a914db7-7373-4396-8515-272201bbbfa1">
Flow details have been moved to a dedicated tab. For implementation details, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/10242
### Work pools and workers are now generally available
Since first being introduced in Prefect 2.10.0, Prefect [workers and work pools](https://docs.prefect.io/2.10.21/concepts/work-pools/) have come a long way. There are now work pools for every major infrastructure type. Work pools expose rich configuration of their infrastructure. Every work pool type has a base configuration with sensible defaults such that you can begin executing work with just a single command. The infrastructure configuration is fully customizable from the Prefect UI.
Push work pools, recently released in Prefect Cloud, remain a beta feature.
For implementation details, see the following pull requests:
- https://github.com/PrefectHQ/prefect/pull/10244
- https://github.com/PrefectHQ/prefect/pull/10243
### Enhancements
- Use `orjson_dumps_extra_compatible` when serializing in `build_from_flow` — https://github.com/PrefectHQ/prefect/pull/10232
### Fixes
- Make `resolve_futures_to_data` function raise on failure by default — https://github.com/PrefectHQ/prefect/pull/10197
- Fix flow runs page not polling for new runs and not loading more flow runs when scrolling — https://github.com/PrefectHQ/prefect/pull/10247
- Don't create DB default during settings load — https://github.com/PrefectHQ/prefect/pull/10246
- Fix issues causing flow runs to be incorrectly marked as failed — https://github.com/PrefectHQ/prefect/pull/10249
- Fix incorrect path in error message — https://github.com/PrefectHQ/prefect/pull/10255
- Fix `LocalFileSystem.get_directory` with basepath behaviour — https://github.com/PrefectHQ/prefect/pull/10258
- Fix Dashboard refresh cadence — https://github.com/PrefectHQ/prefect/pull/10227
### Documentation
- Add undocumented runtime parameters — https://github.com/PrefectHQ/prefect/pull/10229
- Add Deployment Quickstart — https://github.com/PrefectHQ/prefect/pull/9985
- Add guide for setting up a push work pool — https://github.com/PrefectHQ/prefect/pull/10248
- Add guide for deploying a flow using Docker — https://github.com/PrefectHQ/prefect/pull/10252
- Edit install and quick start pages for clarity — https://github.com/PrefectHQ/prefect/pull/10231
- Update automations screenshots — https://github.com/PrefectHQ/prefect/pull/10245
- Fix typos on Deployment Management page — https://github.com/PrefectHQ/prefect/pull/10241
- Fix flow retries example — https://github.com/PrefectHQ/prefect/pull/10233
- Fix missing document title and adding terminal login section — https://github.com/PrefectHQ/prefect/pull/10256
### Contributors
- @dbentall made their first contribution in https://github.com/PrefectHQ/prefect/pull/10258
- @mesejo
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.21...preview
## Release 2.10.21
### The Prefect Dashboard - your heads up display
The response to the experimental Prefect dashboard was so enthusiastic that we've made it generally available as the default landing page in the Prefect UI. The dashboard provides an overview of all Prefect activity, surfaces the urgent information, and provides the context to understand that information. With the dashboard, you can:
- Confirm that all flows run in the past 24 hours behaved as expected
- Identify a flow run that recently failed and jump directly to its page
- See a work pool that is unhealthy and the work that is impacted
### Deploy deployments prefixed by flow name during `prefect deploy`
You can now specify the deployment to be executed by prefixing the deployment name with the flow name.
For example, the following command creates a deployment with the name `my-deployment` for a flow with the name `my-flow`:
```bash
prefect deploy --name my-flow/my-deployment
```
This is especially useful when you have several flows with deployments that have the same name.
For implementation details, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/10189
### Use environment variables in deployment steps
Prefect now supports the usage of environment variables in deployment steps, allowing you to access environment variables during the `pull` action at runtime or during the `build` and `push` actions when running `prefect deploy`. Particularly useful for CI/CD builds, this makes Prefect deployments more versatile.
For example, you can now use the following syntax to set an image tag of a Dockerized build by loading an environment variable during the `build` action:
```yaml
build:
- prefect_docker.deployments.steps.build_docker_image:
requires: prefect-docker>0.1.0
image_name: my-image/orion
tag: '{{ $CUSTOM_TAG }}'
```
You can also use environment variables inside of steps.
For example:
```yaml
- prefect.deployments.steps.run_shell_script:
script: echo "test-'{{ $PREFECT_API_URL }}'"
stream_output: true
```
For implementation details, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/10199
### Use `prefect deploy` with multiple deployments with the same name
When there are multiple deployments with the same name, the `prefect deploy` command now prompts you to choose which one to deploy:
For example, if you have the following `prefect.yaml`:
```yaml
deployments:
- name: "default"
entrypoint: "flows/hello.py:hello"
- name: "default"
entrypoint: "flows/hello.py:hello_parallel"
```
running `prefect deploy -n default` will now prompt you to choose which flow to create a deployment for:
<img width="904" alt="prompt choose a deployment" src="https://github.com/PrefectHQ/prefect/assets/42048900/bff5369f-9568-41c9-a2b1-b2ecdd6cd8c8">
For implementation details, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/10189
### Enhancements
- Enable workspace dashboard by default — https://github.com/PrefectHQ/prefect/pull/10202
- Add `SendgridEmail` notification block — https://github.com/PrefectHQ/prefect/pull/10118
- Raise state change hook errors during creation if not correctly formatted — https://github.com/PrefectHQ/prefect/pull/9692
- Improve `prefect deploy` nonexistent entrypoint `ValueError` - https://github.com/PrefectHQ/prefect/pull/10210
- Truncate row length in interactive `prefect deploy` table display - https://github.com/PrefectHQ/prefect/pull/10209
- Add `prefect.runtime.flow_run.parent_flow_run_id` and `prefect.runtime.flow_run.parent_deployment_id` - https://github.com/PrefectHQ/prefect/pull/10204
### Fixes
- Adds handling for failed Kubernetes jobs — https://github.com/PrefectHQ/prefect/pull/10125
### Documentation
- Fix formatting in `mkdocs.yml` — https://github.com/PrefectHQ/prefect/pull/10187
- Fix link to API docs in automations documentation — https://github.com/PrefectHQ/prefect/pull/10208
- Remove the duplicate listing in installation documentation — https://github.com/PrefectHQ/prefect/pull/10200
- Fix example in proactive trigger documentation — https://github.com/PrefectHQ/prefect/pull/10203
- Remove references to nonexistent `prefect profile get` - https://github.com/PrefectHQ/prefect/pull/10214
## Contributors
* @rkscodes
* @Ishankoradia made their first contribution in https://github.com/PrefectHQ/prefect/pull/10118
* @bsenst made their first contribution in https://github.com/PrefectHQ/prefect/pull/10200
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.20...2.10.21
## Release 2.10.20
### Resolving UI form input issues
This release resolves bugs preventing UI form inputs from being rendered and parsed correctly, including:
- Dates & times — https://github.com/PrefectHQ/prefect-ui-library/pull/1554
- List values — https://github.com/PrefectHQ/prefect-ui-library/pull/1556
- JSON fields — https://github.com/PrefectHQ/prefect-ui-library/pull/1557
### Prefect no longer supports Python 3.7
Python 3.7 reached end-of-life on 27 Jun 2023. Consistent with our warning, this release drops Python 3.7 support. Prefect now requires Python 3.8 or later.
### Enhancements
- Add UUID validation for webhook CLI commands to raise errors earlier and more clearly — https://github.com/PrefectHQ/prefect/pull/10005
- Clarify Dockerfile rename prompt in `prefect deploy` — https://github.com/PrefectHQ/prefect/pull/10124
- Improve `prefect deploy` error message — https://github.com/PrefectHQ/prefect/pull/10175
- Add `work_pool_name` to `Deployment` docstring — https://github.com/PrefectHQ/prefect/pull/10174
### Contributors
- @toby-coleman
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.19...2.10.20
## Release 2.10.19
### Peer into the future with the experimental dashboard
We're excited to make the new Prefect dashboard available as an experimental feature. The dashboard provides an overview of all Prefect activity, surfaces the urgent information, and provides the context to understand that information. With the dashboard, you can:
- Confirm that all flows run in the past 24 hours behaved as expected
- Identify a flow run that recently failed and jump directly to its page
- See a work pool that is unhealthy and the work that is impacted
You can enable the new dashboard by running `prefect config set PREFECT_EXPERIMENTAL_ENABLE_WORKSPACE_DASHBOARD=True` in your terminal.
See [this pull request](https://github.com/PrefectHQ/prefect/pull/10152) for implementation details.
### Improvements to `git_clone` deployment pull step
Previously, users had to apply the appropriate format for their service credentials in a `Secret` block using the `access_token` field in `git_clone`. The `git_clone` pull step now includes an additional `credentials` field, allowing users to leverage their existing `GitHubCredentials`, `GitLabCredentials`, or `BitBucketCredentials` blocks when cloning from a private repository. For examples of providing credentials, see the [updated documentation](https://docs.prefect.io/2.10.19/concepts/deployments-ux/#the-pull-action).
For implementation details see:
- https://github.com/PrefectHQ/prefect/pull/10157
### Fixes
- Improve language in `prefect deploy` to not recommend deprecated `-f/--flow` — https://github.com/PrefectHQ/prefect/pull/10121
- Pin Pydantic to v1 in `requirements.txt` — https://github.com/PrefectHQ/prefect/pull/10144
- Add default value of `None` for `WorkQueue.work_pool_id` — https://github.com/PrefectHQ/prefect/pull/10106
### Documentation
- Update `git_clone` documentation with examples of using credentials field - https://github.com/PrefectHQ/prefect/pull/10168
- Add documentation on deleting blocks — https://github.com/PrefectHQ/prefect/pull/10115
- Add docs tabs linking and styling — https://github.com/PrefectHQ/prefect/pull/10113
- Fix example in `Block.load` docstring — https://github.com/PrefectHQ/prefect/pull/10098
- Fix task tutorial documentation example — https://github.com/PrefectHQ/prefect/pull/10120
- Clarify heading in rate limits documentation — https://github.com/PrefectHQ/prefect/pull/10148
- Fix link in events documentation — https://github.com/PrefectHQ/prefect/pull/10160
- Remove outdated disclaimer about configuring webhooks with the Prefect Cloud UI — https://github.com/PrefectHQ/prefect/pull/10167
### Integrations
- Add `prefect-earthdata` integration — https://github.com/PrefectHQ/prefect/pull/10151
### Contributors
- @rkscodes
- @StefanBRas
* @JordonMaule made their first contribution in https://github.com/PrefectHQ/prefect/pull/10120
* @AmanSal1 made their first contribution in https://github.com/PrefectHQ/prefect/pull/10121
* @giorgiobasile made their first contribution in https://github.com/PrefectHQ/prefect/pull/10151
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.18...2.10.19
## Release 2.10.18
### Docker image support during flow deployment
We enhanced support for Docker-based infrastructures when deploying flows through the interactive `prefect deploy` experience. Users can now easily custom-build or auto-build Docker images and push them to remote registries if they so choose.
The CLI automatically detects if a work pool supports Docker images (e.g., docker, ecs, cloud-run) during `prefect deploy` and will now guide the user through the experience of building and pushing a Docker image if support is detected.
This enhancement to managing deployments will greatly simplify the process of creating `build` and `push` steps for deployments.
Not only that, we will also create a `pull` step for you when you choose to build a Docker image through `prefect deploy`. Whether you have your own Dockerfile or you want to use the auto-build feature in `build_docker_image`, we will create a `pull` step for you to help you set the correct path to your flow code.
See the following pull requests for implementation details:
- https://github.com/PrefectHQ/prefect/pull/10022
- https://github.com/PrefectHQ/prefect/pull/10090
### Event-driven deployments with triggers
You can now easily incorporate event-based triggers into your Prefect Cloud deployments - simply add triggers to your `prefect.yaml` file or directly from the Prefect UI deployment page. Deployment triggers utilize automations - any automation that runs flows from a given deployment will be reflected on that deployment page.
See the following pull requests for implementation details:
- https://github.com/PrefectHQ/prefect/pull/10049
- https://github.com/PrefectHQ/prefect/pull/10097
### Enhancements
- Allow saving of updated deployment configurations — https://github.com/PrefectHQ/prefect/pull/10018
- Add `--install-policy` option to `prefect worker start` - https://github.com/PrefectHQ/prefect/pull/10040
- Update Docker-based `prefect init` recipes to use `push_docker_image` step — https://github.com/PrefectHQ/prefect/pull/10092
### Fixes
- Fix deployment `pull` step saving by preserving placeholders with missing values — https://github.com/PrefectHQ/prefect/pull/10053
- Fix `prefect server start` and `prefect agent start` on Windows — https://github.com/PrefectHQ/prefect/pull/10059
- Add ability to use Prefect variables in `job_variables` section of deploy config in `prefect.yaml` — https://github.com/PrefectHQ/prefect/pull/10078
- Add default option to `new_parameters.pop` in `explode_variadic_parameter` used to handle `**kwargs` in task mapping — https://github.com/PrefectHQ/prefect/pull/10067
- Skip schedule prompts in `prefect deploy` if schedule is set or null in `prefect.yaml` — https://github.com/PrefectHQ/prefect/pull/10074
- Fix saving of `pull` and `push` step deployment configuration — https://github.com/PrefectHQ/prefect/pull/10087
- Fix issue hosting and running the UI in unsecured contexts - https://github.com/PrefectHQ/prefect-design/pull/829
### Documentation
- Adjust docs to reflect Prefect requires Python 3.8 — https://github.com/PrefectHQ/prefect/pull/9853
- Add custom `pull` step examples to deployment management docs — https://github.com/PrefectHQ/prefect/pull/10073
- Add troubleshooting guide to docs — https://github.com/PrefectHQ/prefect/pull/10079
- Add information on finding Prefect Cloud account id and workspace id — https://github.com/PrefectHQ/prefect/pull/10103
- Reference webhooks documentation from events documentation — https://github.com/PrefectHQ/prefect/pull/10045
- Simplify deployment description in docs — https://github.com/PrefectHQ/prefect/pull/10050
### Contributors
- @garylavayou made their first contribution in https://github.com/PrefectHQ/prefect/pull/10060
- @themattmorris made their first contribution in https://github.com/PrefectHQ/prefect/pull/10056
- @NodeJSmith
- @rpeden
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.17...2.10.18
## Release 2.10.17
### Improved Prefect tutorial
Prefect's documentation has an [improved tutorial](https://docs.prefect.io/2.10.17/tutorial/), redesigned to include Prefect's recent enhancements. With the introduction of work pools and the interactive deployment CLI, the new tutorial reflects the elevated experience that these new features offer, alongside the key elements and features of Prefect. You can find content related to more advanced features or less common use cases in the [Guides](https://docs.prefect.io/2.10.17/guides/) section.
### Enhancements
- Update Prefect client to follow redirects by default — https://github.com/PrefectHQ/prefect/pull/9988
- Always show checkboxes on list items, rather than animating them on hover — https://github.com/PrefectHQ/prefect-ui-library/pull/1490
- New `CustomWebhookNotificationBlock` for triggering custom webhooks in response to flow run state changes — https://github.com/PrefectHQ/prefect/pull/9547
### Fixes
- Limit the number of files concurrently opened by `prefect deploy` when searching for flows — https://github.com/PrefectHQ/prefect/pull/10014
- Fix `TypeError: crypto.randomUUID is not a function` that caused pages to break — https://github.com/PrefectHQ/prefect-ui-library/pull/1501
### Documentation
- Fix broken link to `prefect-docker` documentation on the deployments UX page — https://github.com/PrefectHQ/prefect/pull/10013
- Document `--work-queue / -q` arguments to `worker start` command — https://github.com/PrefectHQ/prefect/pull/10027
- Add link to join Club 42 to Community page — https://github.com/PrefectHQ/prefect/pull/9927
- Improve Prefect tutorial to be more succinct and purposeful — https://github.com/PrefectHQ/prefect/pull/9940
### Contributors
* @eclark9270 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9927
* @AutumnSun1996 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9547
* @dianaclarke made their first contribution in https://github.com/PrefectHQ/prefect/pull/9988
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.16...2.10.17
## Release 2.10.16
### Run `prefect deploy` without providing a flow entrypoint
We're making it easier than ever to deploy your first flow! Previously, you needed to run `prefect deploy <entrypoint>` to deploy a specific flow. Now, you can simply run `prefect deploy` and the interactive CLI will guide you through the process of selecting a flow to deploy!

For more details on implementation, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/10004
### Enhancements
- Add option to specify work queue priority during creation from CLI — https://github.com/PrefectHQ/prefect/pull/9999
- Improve 'Invalid timezone' error message — https://github.com/PrefectHQ/prefect/pull/10007
### Fixes
- Fix wrong key used in generated `git_clone` step — https://github.com/PrefectHQ/prefect/pull/9997
### Deprecations
- Deprecate `prefect deploy` `--ci` flag — https://github.com/PrefectHQ/prefect/pull/10002
### Documentation
- Resolve missing image in Prefect Cloud event documentation — https://github.com/PrefectHQ/prefect/pull/9904
- Fix typo in webhooks documentation — https://github.com/PrefectHQ/prefect/pull/10003
### Integrations
- Fix bug in `KubernetesWorker` where flow runs crashed during submission - https://github.com/PrefectHQ/prefect-kubernetes/pull/76
### Contributors
- @kkdenk made their first contribution in https://github.com/PrefectHQ/prefect/pull/9904
- @rito-sixt
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.15...2.10.16
## Release 2.10.15
## Introducing deployment configuration saving in `prefect deploy`
We are excited to announce a significant enhancement to our `prefect deploy` command to make your deployment process even more intuitive.
Previously, users had to recall their deployment configurations each time they wanted to redeploy with the same settings. Recognizing this potential inconvenience, we've now incorporated a feature to save your deployment inputs for future use, thereby streamlining redeployments.
The new interactive `prefect deploy` command guides you through the deployment process, from setting the schedule and the work pool to the `pull` step. After your deployment is created, you will have the option to save your inputs. Choosing "yes" will create a `prefect.yaml` file if one does not exist. The `prefect.yaml` file will contain your inputs stored in the deployments list and the generated `pull` step.

If you have a `prefect.yaml` file in the same directory where you run your command, running the `deploy` command again allows you to reuse the saved deployment configuration or create a new one. If you choose to create a new deployment, you will again be given the option to save your inputs. This way, you can maintain a list of multiple deployment configurations, ready to be used whenever needed!
For more details on implementation, see the following pull request:
- https://github.com/PrefectHQ/prefect/pull/9948
### Fixes
- Fix error in `prefect deploy` when `.prefect` folder is absent — https://github.com/PrefectHQ/prefect/pull/9972
- Fix use of deprecated `git_clone_project` — https://github.com/PrefectHQ/prefect/pull/9978
- Fix exception raised in `prefect init` command when no recipe is selected — https://github.com/PrefectHQ/prefect/pull/9963
### Documentation
- Fix broken deployments api-ref page — https://github.com/PrefectHQ/prefect/pull/9965
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.14...2.10.15
## Release 2.10.14
### Simplifying project-based deployments
We've now simplified deployment management even further by consolidating the `prefect.yaml` and `deployment.yaml` files and removing the creation of the `.prefect` folder when running `prefect init`. We've also deprecated the name `projects`, renaming steps that had `projects` in the name.
For example:
```yaml
pull:
- prefect.projects.steps.git_clone_project:
id: clone-step
repository: https://github.com/org/repo.git
```
is now
```yaml
pull:
- prefect.deployments.steps.git_clone:
id: clone-step
repository: https://github.com/org/repo.git
```
An example using the `prefect_gcp` library:
```yaml
build:
- prefect_gcp.projects.steps.push_project_to_gcs:
requires: prefect-gcp
bucket: my-bucket
folder: my-project
```
is now
```yaml
build:
- prefect_gcp.deployments.steps.push_to_gcs:
requires: prefect-gcp
bucket: my-bucket
folder: my-project
```
In addition, we've removed the need to use the `project` command group through the CLI. Now, instead of `prefect project init` you can simply run `prefect init`. To use a deployment configuration recipe during initialization, you no longer need to run a `prefect project` command. Running `prefect init` will guide you through an interactive experience to choose a recipe if you so desire.

We have also deprecated deploying a flow via flow name (`-f`), allowing a single, streamlined way to deploy.
```python
prefect deploy ./path/to/flow.py:flow-fn-name
```
See these pull requests for implementation details:
- https://github.com/PrefectHQ/prefect/pull/9887
- https://github.com/PrefectHQ/prefect/pull/9930
- https://github.com/PrefectHQ/prefect/pull/9928
- https://github.com/PrefectHQ/prefect/pull/9944
- https://github.com/PrefectHQ/prefect/pull/9942
- https://github.com/PrefectHQ/prefect/pull/9957
- https://github.com/PrefectHQ/prefect-gcp/pull/189
- https://github.com/PrefectHQ/prefect-aws/pull/278
### Prefect Cloud Webhook CLI
[Webhooks on Prefect Cloud](https://docs.prefect.io/2.10.14/cloud/webhooks/) allow you to capture events from a wide variety of sources in your data stack, translating them into actionable Prefect events in your workspace. Produce Prefect events from any system that can make an HTTP request and use those events in automations or to trigger event-driven deployments.
Even if you have minimal control over the systems you're integrating with, Prefect Cloud webhooks give you [full programmable control](https://docs.prefect.io/2.10.14/cloud/webhooks/#webhook-templates) over how you transform incoming HTTP requests into Prefect events with Jinja2 templating. We even have a [built-in preset for CloudEvents](https://docs.prefect.io/2.10.14/cloud/webhooks/#accepting-cloudevents).
Webhooks are currently available [via the API and `prefect` CLI](https://docs.prefect.io/2.10.14/cloud/webhooks/#configuring-webhooks).
You can create your first Cloud webhook via the CLI like so:
```bash
prefect cloud webhook create your-webhook-name \
--description "Receives webhooks from your system" \
--template '{ "event": "your.event.name", "resource": { "prefect.resource.id": "your.resource.id" } }'
```
See the following pull request for implementation details:
- https://github.com/PrefectHQ/prefect/pull/9874
### Enhancements
- Make related automations visible from `prefect deployment inspect` — https://github.com/PrefectHQ/prefect/pull/9929
- Enable deleting blocks with Python SDK — https://github.com/PrefectHQ/prefect/pull/9932
- Enhance ability to delete a single flow on the flows page - https://github.com/PrefectHQ/prefect-ui-library/pull/1478
- Add `work_pool_name` to work queue API responses — https://github.com/PrefectHQ/prefect/pull/9659
- Add httpx request method to Prefect Cloud client — https://github.com/PrefectHQ/prefect/pull/9873
- Mark flow as crashed if infrastructure submission fails — https://github.com/PrefectHQ/prefect/pull/9691
- Re-enable the retrieval of existing clients from flow and task run contexts when safe — https://github.com/PrefectHQ/prefect/pull/9880
- Add `prefect --prompt/--no-prompt` to force toggle interactive CLI sessions — https://github.com/PrefectHQ/prefect/pull/9897
- Return sorted task run ids when inspecting concurrency limit via CLI — https://github.com/PrefectHQ/prefect/pull/9711
- Use existing thread in `BatchedQueueService` to reduce queue retrieval overhead — https://github.com/PrefectHQ/prefect/pull/9877
### Fixes
- Provide a default `DTSTART` to anchor `RRULE` schedules to ensure extra schedules not created — https://github.com/PrefectHQ/prefect/pull/9872
- Fix bug where attribute error raised on service shutdown when the app startup fails — https://github.com/PrefectHQ/prefect/pull/9900
- Improve retry behavior when SQLite database locked — https://github.com/PrefectHQ/prefect/pull/9938
### Documentation
- Add tip on `PREFECT_API_URL` setting for workers and agents — https://github.com/PrefectHQ/prefect/pull/9882
- Add deployment triggers documentation — https://github.com/PrefectHQ/prefect/pull/9886
- Add more detailed documentation to the engine api-ref — https://github.com/PrefectHQ/prefect/pull/9924
- Add note on matching on multiple resources when using automations — https://github.com/PrefectHQ/prefect/pull/9867
- Updates automations examples in docs — https://github.com/PrefectHQ/prefect/pull/9952
- Update Prefect Cloud users documentation on user settings — https://github.com/PrefectHQ/prefect/pull/9920
- Boost non-API docs pages to optimize search results — https://github.com/PrefectHQ/prefect/pull/9854
- Update testing documentation tag — https://github.com/PrefectHQ/prefect/pull/9905
- Exemplify how to import Prefect client — https://github.com/PrefectHQ/prefect/pull/9671
## Contributors
- @Hongbo-Miao
- @rito-sixt made their first contribution in https://github.com/PrefectHQ/prefect/pull/9711
- @drpin2341 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9905
- @amansal1 made their first contribution in https://github.com/PrefectHQ/prefect-ui-library/pull/1478
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.13...2.10.14
## Release 2.10.13
### Improvements to projects-based deployments

Project-based deployments are now easier to use, especially for first time users! You can now run `prefect deploy` without first initializing a project. If you run `prefect deploy` without a project initialized, the CLI will generate a default pull step that your worker can use to retrieve your flow code when executing scheduled flow runs. The prefect deploy command will also prompt you with scheduling options, making it even easier to schedule your flows!
See these two pull requests for implementation details:
- https://github.com/PrefectHQ/prefect/pull/9832
- https://github.com/PrefectHQ/prefect/pull/9844
This release also adds two new deployment steps: `pip_install_requirements` and `run_shell_script`. Both of these are new 'utility' deployment steps that can be used to automate portions of your deployment process.
Use the `pip_install_requirements` step to install Python dependencies before kicking off a flow run:
```yaml
pull:
- prefect.projects.steps.git_clone_project:
id: clone-step
repository: https://github.com/org/repo.git
- prefect.projects.steps.pip_install_requirements:
directory: {{ clone-step.directory }}
requirements_file: requirements.txt
stream_output: False
```
Use the `run_shell_script` step to grab your repository's commit hash and use it to tag your Docker image:
```yaml
build:
- prefect.projects.steps.run_shell_script:
id: get-commit-hash
script: git rev-parse --short HEAD
stream_output: false
- prefect.projects.steps.build_docker_image:
requires: prefect-docker
image_name: my-image
image_tag: "{{ get-commit-hash.stdout }}"
dockerfile: auto
```
See these two pull requests for implementation details:
- https://github.com/PrefectHQ/prefect/pull/9810
- https://github.com/PrefectHQ/prefect/pull/9868
### Enhancements
- Allow project `pull` steps to pass step outputs — https://github.com/PrefectHQ/prefect/pull/9861
- Update work queue health indicators in Prefect UI for greater clarity - https://github.com/PrefectHQ/prefect-ui-library/pull/1464
- State messages no longer include tracebacks — https://github.com/PrefectHQ/prefect/pull/9835
- Allow passing a payload to `emit_instance_method_called_event` - https://github.com/PrefectHQ/prefect/pull/9869
### Fixes
- Reference `.prefectignore` files when moving files around locally to - https://github.com/PrefectHQ/prefect/pull/9863
- Fix typo in warning message raised when flow is called during script loading — https://github.com/PrefectHQ/prefect/pull/9817
- Allow creation of identical block names between different block types - https://github.com/PrefectHQ/prefect-ui-library/pull/1473
- Ensure flow timeouts do not override existing alarm signal handlers — https://github.com/PrefectHQ/prefect/pull/9835
- Ensure timeout tracking begins from the actual start of the call, rather than the scheduled start — https://github.com/PrefectHQ/prefect/pull/9835
- Ensure timeout monitoring threads immediately exit upon run completion — https://github.com/PrefectHQ/prefect/pull/9835
- Fix bug where background services could throw logging errors on interpreter exit — https://github.com/PrefectHQ/prefect/pull/9835
- Fix bug where asynchronous timeout enforcement could deadlock — https://github.com/PrefectHQ/prefect/pull/9835
### Documentation
- Add documentation on Prefect Cloud webhook usage - https://github.com/PrefectHQ/prefect/pull/9857
- Fix broken link and Prefect server reference in Cloud docs — https://github.com/PrefectHQ/prefect/pull/9820
- Fix broken link to Docker guide in API reference docs — https://github.com/PrefectHQ/prefect/pull/9821
- Update subflow run cancellation information in flows concept doc — https://github.com/PrefectHQ/prefect/pull/9753
- Improve ability to give feedback on documentation — https://github.com/PrefectHQ/prefect/pull/9836
- Add projects deployment diagram to work pool, workers & agents concept doc — https://github.com/PrefectHQ/prefect/pull/9841
- Add missing Prefect Server URL in API reference docs — https://github.com/PrefectHQ/prefect/pull/9864
- Fix code typo in task runners concept doc — https://github.com/PrefectHQ/prefect/pull/9818
- Add documentation on flow run parameter size limit — https://github.com/PrefectHQ/prefect/pull/9847
- Fix link to orchestration tutorial in execution tutorial - https://github.com/PrefectHQ/prefect/pull/9862
### Contributors
- @ac1997 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9862
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.12...2.10.13
## Release 2.10.12
### The deployments page is back
We got a lot of positive feedback about the new flows page that was redesigned to include deployments, but several users pointed out that the it wasn't quite a full replacement for the dedicated deployments page. The deployments page has been re-added to the navigation menu until the new flows page is a worthy substitute.
See the [pull request](https://github.com/PrefectHQ/prefect/pull/9800) for implementation details.
### Enhancements
- All server-side schemas now have dedicated client-side duplicates — https://github.com/PrefectHQ/prefect/pull/9577
- Import of `prefect.server` is delayed to improve CLI start time and `import prefect` time — https://github.com/PrefectHQ/prefect/pull/9577
- Add task run as a related object to emitted events — https://github.com/PrefectHQ/prefect/pull/9759
- Emit task run state change events when orchestrating a task run — https://github.com/PrefectHQ/prefect/pull/9684
- Add healthcheck webserver to workers — https://github.com/PrefectHQ/prefect/pull/9687
- Create files and directories with user-scoped permissions — https://github.com/PrefectHQ/prefect/pull/9789
- Runtime variables mocked with environment variables for testing are now coerced to the correct type — https://github.com/PrefectHQ/prefect/pull/9561
### Fixes
- Show 404 instead of blank page in UI flow run id is invalid or if flow run is missing — https://github.com/PrefectHQ/prefect/pull/9746
- Fix bug where event loop shutdown hooks could fail due to early garbage collection — https://github.com/PrefectHQ/prefect/pull/9748
- Fix process worker `documentation_url` — https://github.com/PrefectHQ/prefect/pull/9791
- Fix bug where given priority was ignored when creating a work queue — https://github.com/PrefectHQ/prefect/pull/9798
- Fix inconsistent work queue handling by agent when cancelling flow runs — https://github.com/PrefectHQ/prefect/pull/9757
### Experimental
- Add `dashboard` experiment via `ENABLE_WORKSPACE_DASHBOARD` — https://github.com/PrefectHQ/prefect/pull/9802, https://github.com/PrefectHQ/prefect/pull/9799
### Deprecations
- Deprecate `create_orion_api` in favor of `create_api_app` — https://github.com/PrefectHQ/prefect/pull/9745
- Deprecate "send_to_orion" logging option in favor of "send_to_api" — https://github.com/PrefectHQ/prefect/pull/9743
### Documentation
- Add descriptions to concept tables — https://github.com/PrefectHQ/prefect/pull/9718
- Removes unreferenced requests import in 'real-world example' — https://github.com/PrefectHQ/prefect/pull/9760
- Add state change hooks to guides overview page — https://github.com/PrefectHQ/prefect/pull/9761
- Fix typo in flows and tasks tutorials — https://github.com/PrefectHQ/prefect/pull/9762
- Update task docs to reference common params and link to all params — https://github.com/PrefectHQ/prefect/pull/9787
- Add Google Analytics to documentation — https://github.com/PrefectHQ/prefect/pull/9793
- Remove outdated announcement — https://github.com/PrefectHQ/prefect/pull/9792
- Add extra loggers example — https://github.com/PrefectHQ/prefect/pull/9714
- Clarify work pool priority options — https://github.com/PrefectHQ/prefect/pull/9752
- Update worker requirements in projects tutorial — https://github.com/PrefectHQ/prefect/pull/9579
- Fix default value comment in docs/concepts/variables — https://github.com/PrefectHQ/prefect/pull/9771
- Fix formatting of link to Ray page — https://github.com/PrefectHQ/prefect/pull/9772
- Add book a rubber duck links — https://github.com/PrefectHQ/prefect/pull/9790
### Contributors
- @marco-buttu made their first contribution in https://github.com/PrefectHQ/prefect/pull/9771
- @jcozar87 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9561
- @rmorshea
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.11...2.10.12
## Release 2.10.11
### Interactive Deployments and Work Pool Wizard 🧙
This release simplifies deployment and work pool creation.

Firstly, the `prefect deploy` command has been upgraded to provide interactive prompts for deployment names and work pool selections. If you don't provide a deployment name via the CLI or a `deployment.yaml` file, the CLI will prompt you to do so. Furthermore, if a work pool name isn't specified, the CLI will guide you through the available work pools for your workspace. This feature aims to make deployments more approachable, especially for first-time users, requiring just an entrypoint to a flow to get started.

Secondly, we've added a work pool creation wizard to streamline the process and spotlight various infrastructure types. The wizard will walk you through the essentials: basic work pool info, infrastructure type, and infrastructure configuration. The infrastructure type step will present you with a list of available infrastructure types, each with an icon and a description.
Together, these improvements offer an interactive, guided experience that not only simplifies deployments and work pool creation but also empowers users to navigate the process confidently and efficiently.
Check out these pull requests for more details:
- https://github.com/PrefectHQ/prefect-ui-library/pull/1431
- https://github.com/PrefectHQ/prefect/pull/9707
- https://github.com/PrefectHQ/prefect/pull/9686
### Enhancements
- Emit events from deployments, work queues, and work pools — https://github.com/PrefectHQ/prefect/pull/9635
- Improve SQLite database transaction behavior — https://github.com/PrefectHQ/prefect/pull/9594
- Add support for SQLAlchemy 2 — https://github.com/PrefectHQ/prefect/pull/9656
- Add `on_cancellation` flow run state change hook — https://github.com/PrefectHQ/prefect/pull/9389
- Improve cancellation cleanup service iteration over subflow runs - https://github.com/PrefectHQ/prefect/pull/9731
- Add request retry support to Prefect Cloud client — https://github.com/PrefectHQ/prefect/pull/9724
- Add `PREFECT_CLIENT_MAX_RETRIES` for configuration of maximum HTTP request retries - https://github.com/PrefectHQ/prefect/pull/9735
- Add an `/api/ready` endpoint to the Prefect server to check database connectivity — https://github.com/PrefectHQ/prefect/pull/9701
- Display URL to flow run on creation - https://github.com/PrefectHQ/prefect/pull/9740
- Add guard against changing the profile path from `prefect config set` — https://github.com/PrefectHQ/prefect/pull/9696
- Use flow run logger to report traceback for failed submissions — https://github.com/PrefectHQ/prefect/pull/9733
- Improve default Prefect image tag when using development versions — https://github.com/PrefectHQ/prefect/pull/9503
- Emit worker event when a flow run is scheduled to run or cancel — https://github.com/PrefectHQ/prefect/pull/9702
- Add ability to filter for `Retrying` state in the Task Runs tab of the Prefect UI — https://github.com/PrefectHQ/prefect-ui-library/pull/1410
### Fixes
- Display CLI deprecation warnings to STDERR instead of STDOUT — https://github.com/PrefectHQ/prefect/pull/9690
- Fix hanging flow runs from deployments when variables retrieved in base scope - https://github.com/PrefectHQ/prefect/pull/9665
- Fix maximum character length when updating variables — https://github.com/PrefectHQ/prefect/pull/9710
- Fix bug where agents would fail when processing runs with deleted deployments — https://github.com/PrefectHQ/prefect/pull/9464
- Fix bug where `uvicorn` could not be found when server was started from an unloaded virtual environment - https://github.com/PrefectHQ/prefect/pull/9734
- Allow table artifacts `table` argument as list of lists — https://github.com/PrefectHQ/prefect/pull/9732
- Fix bug where events worker would fail if the API URL includes a trailing `/` — https://github.com/PrefectHQ/prefect/pull/9663
- Fix bug where flow run timeline crashed when custom state names were used — https://github.com/PrefectHQ/prefect-ui-library/pull/1448
### Collections
- Stream Kubernetes Worker flow run logs to the API - [#72](https://github.com/PrefectHQ/prefect-kubernetes/pull/72)
- Stream ECS Worker flow run logs to the API - [#267](https://github.com/PrefectHQ/prefect-aws/pull/267)
- Stream Cloud Run Worker flow run logs logs to the API - [#183](https://github.com/PrefectHQ/prefect-gcp/pull/183)
- Add `prefect-spark-on-k8s-operator` to integrations catalog list — [#9029](https://github.com/PrefectHQ/prefect/pull/9029)
- Add optional `accelerator_count` property for `VertexAICustomTrainingJob` - [#174](https://github.com/PrefectHQ/prefect-gcp/pull/174)
- Add `result_transformer` parameter to customize the return structure of `bigquery_query` - [#176](https://github.com/PrefectHQ/prefect-gcp/pull/176)
- Add `boot_disk_type` and `boot_disk_size_gb` properties for `VertexAICustomTrainingJob` - [#177](https://github.com/PrefectHQ/prefect-gcp/pull/177)
- Fix bug where incorrect credentials model was selected when `MinIOCredentials` was used with `S3Bucket` - [#254](https://github.com/PrefectHQ/prefect-aws/pull/254)
- Fix bug where `S3Bucket.list_objects` was truncating prefix paths ending with slashes - [#263](https://github.com/PrefectHQ/prefect-aws/pull/263)
- Fix bug where ECS worker could not cancel flow runs - [#268](https://github.com/PrefectHQ/prefect-aws/pull/268)
- Improve failure message when creating a Kubernetes job fails - [#71](https://github.com/PrefectHQ/prefect-kubernetes/pull/71)
### Deprecations
- Rename `prefect.infrastructure.docker` to `prefect.infrastructure.container` - https://github.com/PrefectHQ/prefect/pull/8788
- Rename `prefect.docker` to `prefect.utilities.dockerutils` - https://github.com/PrefectHQ/prefect/pull/8788
### Documentation
- Create examples of working with Prefect REST APIs — https://github.com/PrefectHQ/prefect/pull/9661
- Add state change hook documentation - https://github.com/PrefectHQ/prefect/pull/9721
- Add tip about private repositories in projects documentation — https://github.com/PrefectHQ/prefect/pull/9685
- Improve runtime context documentation — https://github.com/PrefectHQ/prefect/pull/9652
- Simplify the flow and task configuration documentation — https://github.com/PrefectHQ/prefect/pull/9420
- Clarify task retries documentation — https://github.com/PrefectHQ/prefect/pull/9575
- Fix typos in cloud documentation — https://github.com/PrefectHQ/prefect/pull/9657
- Update automations documentation — https://github.com/PrefectHQ/prefect/pull/9680
- Fix typo in tutorial documentation — https://github.com/PrefectHQ/prefect/pull/9646
- Add tip on `keys` in artifacts documentation — https://github.com/PrefectHQ/prefect/pull/9666
- Expand docstrings for artifacts — https://github.com/PrefectHQ/prefect/pull/9704
- Update description of `image` parameter of `DockerContainer` in infrastructure documentation — https://github.com/PrefectHQ/prefect/pull/9682
- Lowercase Prefect server where appropriate — https://github.com/PrefectHQ/prefect/pull/9697
- Remove `Upgrading from Prefect Beta` section of installation page — https://github.com/PrefectHQ/prefect/pull/9726
- Update rate limit documentation to include `/set_state` and `/flows` endpoint for Prefect Cloud — https://github.com/PrefectHQ/prefect/pull/9694
- Update documentation links in UI to concepts when possible — https://github.com/PrefectHQ/prefect-ui-library/pull/1351
## Contributors
* @BitTheByte
* @snikch made their first contribution in https://github.com/PrefectHQ/prefect/pull/9646
* @rkscodes made their first contribution in https://github.com/PrefectHQ/prefect/pull/9682
* @sarahmk125 made their first contribution in https://github.com/PrefectHQ/prefect/pull/9694
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.10...2.10.11
## Release 2.10.10
### The need for (CLI) speed
We wanted the CLI to be as fast as the rest of Prefect. Through a series of enhancements, we've sped up CLI performance by as much as 4x on some systems!
See the following pull requests for implementation details:
- Delay `apprise` imports — https://github.com/PrefectHQ/prefect/pull/9557
- Defer import of `dateparser` — https://github.com/PrefectHQ/prefect/pull/9582
- Defer loading of Prefect integrations until necessary — https://github.com/PrefectHQ/prefect/pull/9571
- Add `Block.get_block_class_from_key` and replace external uses of `lookup_type` — https://github.com/PrefectHQ/prefect/pull/9621
- Load collections before auto-registering block types on the server — https://github.com/PrefectHQ/prefect/pull/9626
- Do not restrict deployment build infrastructure types to types known at import time — https://github.com/PrefectHQ/prefect/pull/9625
### Enhancements
- Handle `SIGTERM` received by workers gracefully — https://github.com/PrefectHQ/prefect/pull/9530
- Add ability to view table artifacts with NaN values in the Prefect UI — https://github.com/PrefectHQ/prefect/pull/9585
- Update `prefect version` command to avoid creating the database if it does not exist — https://github.com/PrefectHQ/prefect/pull/9586
- Allow client retries when server SQLite database is busy — https://github.com/PrefectHQ/prefect/pull/9632
- Allow client retries when general database errors are encountered — https://github.com/PrefectHQ/prefect/pull/9633
- Ensure published Docker images have latest versions of requirements — https://github.com/PrefectHQ/prefect/pull/9640
### Fixes
- Fix bug where `SIGTERM` was not properly captured as a flow run crash for flow runs created by a deployment — https://github.com/PrefectHQ/prefect/pull/9543
- Fix deadlock when logging is overriden from an asynchronous context — https://github.com/PrefectHQ/prefect/pull/9602
- Fix orchestration race conditions by adding lock for update to flow run state transitions — https://github.com/PrefectHQ/prefect/pull/9590
- Fix date range filter on flow runs page — https://github.com/PrefectHQ/prefect/pull/9636
- Fix bug where ephemeral server raised exceptions client-side — https://github.com/PrefectHQ/prefect/pull/9637
- Fix bug where ARM64 Docker images had a corrupt database — https://github.com/PrefectHQ/prefect/pull/9587
### Documentation
- Clarify the retry on tasks concept page — https://github.com/PrefectHQ/prefect/pull/9560
- Improve the navigation structure and clarity of the API docs — https://github.com/PrefectHQ/prefect/pull/9574
- Add `work_pool_name` to `Deployment.build_from_flow` on deployments concept page — https://github.com/PrefectHQ/prefect/pull/9581
- Add additional worker types to work pools, workers & agents concept page — https://github.com/PrefectHQ/prefect/pull/9580
- Add docstrings for all schema filters — https://github.com/PrefectHQ/prefect/pull/9572
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.9...2.10.10
## Release 2.10.9
### Worker logs can now be seen on the flow run page
Workers now link relevant logs to specific flow runs, allowing you to view infrastructure-related logs on your flow run page.
<img width="1294" alt="Process worker logs" src="https://github.com/PrefectHQ/prefect/assets/2586601/658c2883-69f7-4ee0-abf6-a20ee4723b3a">
You'll see generic logs from all worker types. Integration worker implementations such as Kubernetes workers will be updated to send additional rich logs to give you insight into the behavior of flow run infrastructure.
See https://github.com/PrefectHQ/prefect/pull/9496 for details.
### Enhancements
- Handle `SIGTERM` received by agent gracefully — https://github.com/PrefectHQ/prefect/pull/8691
- Add global default settings for flow and task retries and retry delay seconds — https://github.com/PrefectHQ/prefect/pull/9171
- Add support for populating submodules to `git_clone_project` projects step — https://github.com/PrefectHQ/prefect/pull/9504
- Add wrapper for exceptions encountered while resolving parameter inputs — https://github.com/PrefectHQ/prefect/pull/8584
- Add flush of logs before exiting deployed flow run processes to ensure messages are not lost — https://github.com/PrefectHQ/prefect/pull/9516
- Update worker to be able to include itself as a related resource — https://github.com/PrefectHQ/prefect/pull/9531
### Fixes
- Fix bug where `SIGTERM` was not properly captured as a flow run crash — https://github.com/PrefectHQ/prefect/pull/9498
- Fix pass of optional parameters to API in `client.create_work_queue` — https://github.com/PrefectHQ/prefect/pull/9521
### Documentation
- Add tip about flow run level concurrency — https://github.com/PrefectHQ/prefect/pull/9490
- Add documentation on `on_failure` flow run state change hook — https://github.com/PrefectHQ/prefect/pull/9511
- Update tutorials landing page — https://github.com/PrefectHQ/prefect/pull/9450
### Contributors
* @andrewbrannan made their first contribution in https://github.com/PrefectHQ/prefect/pull/9521
- @ddelange
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.8...2.10.9
## Release 2.10.8
### Flow run orchestration rule updates
A flow run orchestration rule which was previously intended to prevent backwards transitions is updated in this release to allow most transitions. Now, it only prevents some transitions to `PENDING` states to prevent race conditions during handling of runs by multiple agents or workers. This improves orchestration behavior during infrastructure restarts. For example, when a Kubernetes pod is interrupted, the flow run can be rescheduled on a new pod by Kubernetes. Previously, Prefect would abort the run as it attempted to transition from a `RUNNING` to a `RUNNING` state. Now, Prefect will allow this transition and your flow run will continue.
In summary, the following rules apply now:
- `CANCELLED` -> `PENDING` is not allowed
- `CANCELLING`/`RUNNING` -> `RUNNING` is allowed
- `CANCELLING`/`RUNNING`/`PENDING` -> `SCHEDULED` is allowed
See https://github.com/PrefectHQ/prefect/pull/9447 for details.
### Enhancements
- Display message when service back-off is reset to avoid confusion — https://github.com/PrefectHQ/prefect/pull/9463
- Improve `QueueService` performance — https://github.com/PrefectHQ/prefect/pull/9481
### Fixes
- Ensure deployment creation does not require write access when a prefectignore file exists — https://github.com/PrefectHQ/prefect/pull/9460
- Fix bug where `deployment apply` command could hang on exit — https://github.com/PrefectHQ/prefect/pull/9481
### Deprecations
- Add future warning for Python 3.7 EOL — https://github.com/PrefectHQ/prefect/pull/9469
### Documentation
- Move creating a new worker type tutorial to guides — https://github.com/PrefectHQ/prefect/pull/9455
- Fix `name` description in `deployment.yaml` reference — https://github.com/PrefectHQ/prefect/pull/9461
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.7...2.10.8
## Release 2.10.7
### New and improved Flows page
This release combines the previously separate flows and deployments UI pages into a single, holistic page that brings together flows and deployments, as well as their recent and upcoming runs. You can now see the state of the most recent flow run for each flow and deployment, giving you a snapshot of the status of your workspace. In addition, you can now filter deployments by whether their schedule is active and the work pool to which flow runs are submitted. See https://github.com/PrefectHQ/prefect/pull/9438 for details.

### `on_crashed` state change hook for flows
This release introduces the new `on_crashed` hook for flows, allowing you to add client-side hooks that will be called when your flow crashes. This is useful for cases where you want to execute code without involving the Prefect API, and for custom handling on `CRASHED` terminal states. This callable hook will receive three arguments: `flow`, `flow_run`, and `state`.
Here is an example of how to use the `on_crashed` hook in your flow:
```python
from prefect import flow
def crash_hook(flow, flow_run, state):
print("Don't Panic! But the flow has crashed...")
@flow(on_crashed=[crash_hook])
def my_flow():
# call `crash_hook` if this flow enters a `CRASHED` state
pass
if __name__ == '__main__':
my_flow()
```
Now, if your flow crashes, `crash_hook` will be executed! Notably, you can also call the same hook for a variety of terminal states, or call multiple hooks for the same terminal state. For example:
```python
@flow(on_crashed=[my_hook], on_failure=[my_hook])
def my_flow():
# call the same hook if this flow enters a `FAILED` or `CRASHED` state
pass
@flow(on_crashed=[my_first_hook, my_second_hook])
def my_flow():
# call two different hooks if this flow enters a `CRASHED` state
pass
```
See the [pull request](https://github.com/PrefectHQ/prefect/pull/9418) for implementation details.
### Enhancements
- Prevent unnecessarily verbose logs by updating `log_prints` to ignore prints where a custom `file` is used — https://github.com/PrefectHQ/prefect/pull/9358
- Create a process work pool by default when a new worker is started with a new work pool name and no type — https://github.com/PrefectHQ/prefect/pull/9326
- Add support for asyncronous project steps — https://github.com/PrefectHQ/prefect/pull/9388
- Update `critical_service_loop` to retry on all 5XX HTTP status codes — https://github.com/PrefectHQ/prefect/pull/9400
- Add backoff on failure to agent critical loop services — https://github.com/PrefectHQ/prefect/pull/9402
- Add print statement to `git pull` to isolate issues between clone and execution — https://github.com/PrefectHQ/prefect/pull/9328
- Add `on_crashed` flow run state change hook — https://github.com/PrefectHQ/prefect/pull/9418
- Make build->push step explicit in docker project recipes — https://github.com/PrefectHQ/prefect/pull/9417
- Add storage blocks to cli `deployment build` help description — https://github.com/PrefectHQ/prefect/pull/9411
- Add `call_in_...` methods to the concurrency API — https://github.com/PrefectHQ/prefect/pull/9415
- Add support for `Callable[[], T]` to concurrency API methods — https://github.com/PrefectHQ/prefect/pull/9413
- Add a parameters JSON input option for deployments in the UI — [`#1405`](https://github.com/PrefectHQ/prefect-ui-library/pull/1405)
- Improve consistency in UI help modals — [`#1397`](https://github.com/PrefectHQ/prefect-ui-library/pull/1397)
### Fixes
- Add guard against null schedule in `deployment.yaml` — https://github.com/PrefectHQ/prefect/pull/9373
- Fix issue preventing work pool filter from being applied to the flow runs page — https://github.com/PrefectHQ/prefect/pull/9390
- Fix project recipe `image_name` and `tag` templating in docker-git, docker-gcs, and docker-s3 — https://github.com/PrefectHQ/prefect/pull/9425
- Fix bug with work queues showing as unhealthy when a work queue with the same name is unhealthy — https://github.com/PrefectHQ/prefect/pull/9437
- Fix bug where child flows would not fail the parent when they received invalid arguments — https://github.com/PrefectHQ/prefect/pull/9386
- Fix schema values mapping on the create flow run forms to ensure all parameter values can be edited — [`#1407`](https://github.com/PrefectHQ/prefect-ui-library/pull/1407)
- Add a check for color scheme to ensure the flow run state favicon is visible — [`#1392`](https://github.com/PrefectHQ/prefect-ui-library/pull/1392)
- Fix deadlock during API log handler flush when logging configuration is overridden — https://github.com/PrefectHQ/prefect/pull/9354
- Fix send/drain race conditions in queue services — https://github.com/PrefectHQ/prefect/pull/9426
- Fix bug where missing trailing slash in remote filesystems path would cause download failures — https://github.com/PrefectHQ/prefect/pull/9440
### Documentation
- Add a link to bug bounty program information — https://github.com/PrefectHQ/prefect/pull/9366
- Add `Additional Resources` Section to Work Pools, Workers, & Agents page — https://github.com/PrefectHQ/prefect/pull/9393
- Fix mistaken placement of `result_storage` parameter — https://github.com/PrefectHQ/prefect/pull/9422
- Add concept list to concept section parent page — https://github.com/PrefectHQ/prefect/pull/9404
- Add Paused and Cancelling states to states concept page — https://github.com/PrefectHQ/prefect/pull/9435
- Update docs logos — https://github.com/PrefectHQ/prefect/pull/9365
- Direct *Prefect Integration template* link to the correct page — https://github.com/PrefectHQ/prefect/pull/9362
- Update landing page image — https://github.com/PrefectHQ/prefect/pull/9448
### New Contributors
- @rmorshea made their first contribution in https://github.com/PrefectHQ/prefect/pull/9422
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.6...2.10.7
## Release 2.10.6
### Deploy many flows at once with projects
You can now declare multiple deployments for your project in the `deployment.yaml` file. When multiple deployments are declared in a project, you can deploy any number of those deployments at a time by providing the names of the deployments in the `prefect deploy` command. You can also deploy all the deployments in a project with the `--all` flag on the `prefect deploy` command.
Deployments that are declared in a project are independent of each other and can be deployed to different work pools, on different schedules, or using different project actions. By default, deployments will use the build, pull, and push actions defined in the projects `prefect.yaml` file, but those actions can be overridden by setting build, pull, or push on a deployment declared in `deployment.yaml`. This enables patterns like different project storage methods and multiple Dockerfiles for a project.
Because the deployments are all declared in a single YAML file, you can also take advantage of YAML anchors and aliases to avoid duplication in your `deployment.yaml` file. This enables declaring custom projects actions once and reusing them across different deployments or using the same schedule for multiple deployments.
To learn more about Projects, check out our [documentation](https://docs.prefect.io/latest/concepts/projects/) and [tutorials](https://docs.prefect.io/latest/tutorials/projects/) to quickly accelerate your flow deployment process!
See https://github.com/PrefectHQ/prefect/pull/9217 for details.
### Improve run restart behavior
Previously, transitions out of terminal states were allowed in very specific cases:
- A task run could move from a failed/crashed/cancelled state to running if the flow run was retrying
- A flow run could move to a scheduled (awaiting retry) state
These rules could prevent runs from executing again during manual restarts or worker rescheduling. We now allow transitions out of terminal states unless the run is completed _and_ has a persisted result to improve our behavior during these cases.
For example, these changes enable the following behaviors:
- A task run that fails and is orchestrated again will run instead of aborting
- A task run that completes but does not persist its result will run again on flow run retry
- A flow run may be rescheduled without using the "awaiting retry" name
- A flow run that fails and is orchestrated again will run instead of aborting
See https://github.com/PrefectHQ/prefect/pull/9152 for details.
### Enhancements
- Add support for recursive flow calls — https://github.com/PrefectHQ/prefect/pull/9342
- Add support for concurrent runs same flow — https://github.com/PrefectHQ/prefect/pull/9342
- Add ability for `flow_run_name` and `task_run_name` settings to accept functions — https://github.com/PrefectHQ/prefect/pull/8933
- Add pending items count to service failure exception message — https://github.com/PrefectHQ/prefect/pull/9306
- Add `severity` key to JSON-formatted logs for GCP compatibility — https://github.com/PrefectHQ/prefect/pull/9200
- Update orchestration rules to allow transitions from terminal states — https://github.com/PrefectHQ/prefect/pull/9152
- Enable filtering flows by work pool at the `/flows/filter` endpoint — https://github.com/PrefectHQ/prefect/pull/9308
- Add `--tail` option to `prefect flow-run logs` CLI — https://github.com/PrefectHQ/prefect/pull/9028
- Enhance UI handling of flow run graph and accompanying selection panel — https://github.com/PrefectHQ/prefect/pull/9333
- Enhance UI rendering of schema-generated forms (used for flow run creation, deployment editing, block configuration, notifications, and work pool job templates) and their values — https://github.com/PrefectHQ/prefect-ui-library/pull/1384
- Update icons and Prefect logo — https://github.com/PrefectHQ/prefect/pull/9352
- Add results to task run page — https://github.com/PrefectHQ/prefect-ui-library/pull/1372
- Add artifacts to task run page — https://github.com/PrefectHQ/prefect/pull/9353
- Show entrypoint and path in deployment details — https://github.com/PrefectHQ/prefect-ui-library/pull/1364
- Enhance clarity of error message by raising `UnfinishedRun` instead of `MissingResult` when state is not final — https://github.com/PrefectHQ/prefect-ui-library/pull/9334
### Fixes
- Ensure the Prefect UI displays actual parameters used to kick off a flow run — https://github.com/PrefectHQ/prefect/pull/9293
- Ensure workers only create one client while running — https://github.com/PrefectHQ/prefect/pull/9302
- Ensure services are drained on global loop shutdown — https://github.com/PrefectHQ/prefect/pull/9307
- Show logs on pending flow run pages — https://github.com/PrefectHQ/prefect/pull/9313
- Fix `flow-run logs --limit` — https://github.com/PrefectHQ/prefect/pull/9314
- Fix `future.result()` and `future.wait()` calls from async contexts — https://github.com/PrefectHQ/prefect/pull/9316
- Update `QueueService.send` to wait for the item to be placed in the queue before returning — https://github.com/PrefectHQ/prefect/pull/9318
- Update `resolve_futures_to_data` and `resolve_futures_to_states` to wait for futures in the correct event loop — https://github.com/PrefectHQ/prefect/pull/9336
- Fix bug where tasks were not called when debug mode was enabled — https://github.com/PrefectHQ/prefect/pull/9341
- Fix bug where boolean values for new flow runs created through the UI were not sent if the value matched the deployment's schema default — https://github.com/PrefectHQ/prefect-ui-library/pull/1389
- Fix race condition in event loop thread start — https://github.com/PrefectHQ/prefect/pull/9343
### Documentation
- Add tutorial for developing a new worker — https://github.com/PrefectHQ/prefect/pull/9179
- Fix social cards to enable previews when linking documentation — https://github.com/PrefectHQ/prefect/pull/9321
- Fix rendering of Prefect Server and Cloud feature list — https://github.com/PrefectHQ/prefect/pull/9305
- Fix a broken link and clarify language — https://github.com/PrefectHQ/prefect/pull/9295
- Update "Event Feed" screenshot — https://github.com/PrefectHQ/prefect/pull/9349
### New Contributors
- @rsampaths16 made their first contribution in https://github.com/PrefectHQ/prefect/pull/8933
- @Shubhamparashar made their first contribution in https://github.com/PrefectHQ/prefect/pull/9028
**All changes**: https://github.com/PrefectHQ/prefect/compare/2.10.5...2.10.6
## Release 2.10.5
### Deploy a Prefect flow via Github Actions
With the new [Deploy a Prefect flow](https://github.com/marketplace/actions/deploy-a-prefect-flow) GitHub Action, you can automate the build process for deployments orchestrated by Prefect Cloud. The action leverages the new [Projects](https://docs.prefect.io/latest/concepts/projects/) system. See the [action page](https://github.com/marketplace/actions/deploy-a-prefect-flow) for examples and configuration options.
### Cloud Provider Workers
Workers, Prefect's next-generation agents, have dedicated infrastructure types. This week, we are releasing typed workers for each major cloud provider: AWS, GCP, and Azure. You will be able to find them in the [prefect-aws](https://github.com/PrefectHQ/prefect-aws), [prefect-gcp](https://prefecthq.github.io/prefect-gcp/), and [prefect-azure](https://github.com/PrefectHQ/prefect-azure) collections, respectively.
See the following pull requests for implementation details:
- https://github.com/PrefectHQ/prefect-aws/pull/238
- https://github.com/PrefectHQ/prefect-aws/pull/244
- https://github.com/PrefectHQ/prefect-gcp/pull/172
- https://github.com/PrefectHQ/prefect-azure/pull/87
### Enhancements
- Add `idempotency_key` to flow runs filter — [#8600](https://github.com/PrefectHQ/prefect/pull/8600)
- Add `details` tab to flow run page and increase flow run graph width — [#9258](https://github.com/PrefectHQ/prefect/pull/9258)