Releases: apache/airflow
Releases · apache/airflow
Apache Airflow 2.3.3
Bug Fixes
- Fix exception in mini task scheduler (#24865)
- Fix cycle bug with attaching label to task group (#24847)
- Fix timestamp defaults for
sensorinstance
(#24638) - Move fallible
ti.task.dag
assignment back insidetry/except
block (#24533) (#24592) - Add missing types to
FSHook
(#24470) - Mask secrets in
stdout
forairflow tasks test
(#24362) DebugExecutor
useti.run()
instead ofti._run_raw_task
(#24357)- Fix bugs in
URI
constructor forMySQL
connection (#24320) - Missing
scheduleinterval
nullable true added inopenapi
(#24253) - Unify
return_code
interface for task runner (#24093) - Handle occasional deadlocks in trigger with retries (#24071)
- Remove special serde logic for mapped
op_kwargs
(#23860) ExternalTaskSensor
respectssoft_fail
if the external task enters afailed_state
(#23647)- Fix
StatD
timing metric units (#21106) - Add
cache_ok
flag to sqlalchemy TypeDecorators. (#24499) - Allow for
LOGGING_LEVEL=DEBUG
(#23360) - Fix grid date ticks (#24738, #24849)
- Debounce status highlighting in Grid view (#24710)
- Fix Grid vertical scrolling (#24684)
- don't try to render child rows for closed groups (#24637)
- Do not calculate grid root instances (#24528)
- Maintain grid view selection on filtering upstream (#23779)
- Speed up
grid_data
endpoint by 10x (#24284) - Apply per-run log templates to log handlers (#24153)
- Don't crash scheduler if exec config has old k8s objects (#24117)
TI.log_url
fix formap_index
(#24335)- Fix migration
0080_2_0_2
- Replace null values before setting column not null (#24585) - Patch
sql_alchemy_conn
if old Postgres schemes used (#24569) - Seed
log_template
table (#24511) - Fix deprecated
log_id_template
value (#24506) - Fix toast messages (#24505)
- Add indexes for CASCADE deletes for
task_instance
(#24488) - Return empty dict if Pod JSON encoding fails (#24478)
- Improve grid rendering performance with a custom tooltip (#24417, #24449)
- Check for
run_id
for grid group summaries (#24327) - Optimize calendar view for cron scheduled DAGs (#24262)
- Use
get_hostname
instead ofsocket.getfqdn
(#24260) - Check that edge nodes actually exist (#24166)
- Fix
useTasks
crash on error (#24152) - Do not fail re-queued TIs (#23846)
- Reduce grid view API calls (#24083)
- Rename Permissions to Permission Pairs. (#24065)
- Replace
use_task_execution_date
withuse_task_logical_date
(#23983) - Grid fix details button truncated and small UI tweaks (#23934)
- Add TaskInstance State
REMOVED
to finished states and success states (#23797) - Fix mapped task immutability after clear (#23667)
- Fix permission issue for dag that has dot in name (#23510)
- Fix closing connection
dbapi.get_pandas_df
(#23452) - Check bag DAG
schedule_interval
match timetable (#23113) - Parse error for task added to multiple groups (#23071)
- Fix flaky order of returned dag runs (#24405)
- Migrate
jsx
files that affect run/task selection totsx
(#24509) - Fix links to sources for examples (#24386)
- Set proper
Content-Type
andchartset
ongrid_data
endpoint (#24375)
Doc only changes
- Fix doc description of
[core]
parallelism config setting (#23768) - Update templates doc to mention
extras
and format AirflowVars
/Conns
(#24735) - Document built in Timetables (#23099)
- Alphabetizes two tables (#23923)
- Clarify that users should not use Maria DB (#24556)
- Add imports to deferring code samples (#24544)
- Add note about image regeneration in June 2022 (#24524)
- Small cleanup of
get_current_context()
chapter (#24482) - Fix default 2.2.5
log_id_template
(#24455) - Update description of installing providers separately from core (#24454)
- Mention context variables and logging (#24304)
Misc/Internal
- Do not support
MSSQL
less thanv2017
in code (#24095) - Drop Python
3.6
compatibility objects/modules (#24048) - Remove upper-binding for SQLAlchemy (#24819)
- Remove internet explorer support (#24495)
- Removing magic status code numbers from
api_connexion
(#24050) - Upgrade FAB to
4.1.2
(#24619) - Switch Markdown engine to
markdown-it-py
(#19702) - Update
rich
to latest version across the board. (#24186) - Get rid of
TimedJSONWebSignatureSerializer
(#24519) - Update flask-appbuilder
authlib
/oauth
dependency (#24516) - Upgrade to
webpack
5 (#24485) - Add
typescript
(#24337) - The JWT claims in the request to retrieve logs have been standardized: we use
nbf
andaud
claims for
maturity and audience of the requests. Also "filename" payload field is used to keep log name. (#24519) - Address all
yarn
test warnings (#24722) - Upgrade to react 18 and chakra 2 (#24430)
- Refactor
DagRun.verify_integrity
(#24114) - Upgrade FAB to
4.1.1
(#24399) - We now need at least
Flask-WTF 0.15
(#24621)
Apache Airflow 2.3.2
Bug Fixes
- Run the
check_migration
loop at least once - Fix grid view for mapped tasks (#24059)
- Icons in grid view for different DAG run types (#23970)
- Faster grid view (#23951)
- Disallow calling expand with no arguments (#23463)
- Add missing
is_mapped
field to Task response. (#23319) - DagFileProcessorManager: Start a new process group only if current process not a session leader (#23872)
- Mask sensitive values for not-yet-running TIs (#23807)
- Add cascade to
dag_tag
todag
foreign key (#23444) - Use
--subdir
argument value for standalone dag processor. (#23864) - Highlight task states by hovering on legend row (#23678)
- Fix and speed up grid view (#23947)
- Prevent UI from crashing if grid task instances are null (#23939)
- Remove redundant register exit signals in
dag-processor
command (#23886) - Add
__wrapped__
property to_TaskDecorator
(#23830) - Fix UnboundLocalError when
sql
is empty list in DbApiHook (#23816) - Enable clicking on DAG owner in autocomplete dropdown (#23804)
- Simplify flash message for
_airflow_moved
tables (#23635) - Exclude missing tasks from the gantt view (#23627)
Doc only changes
- Add column names for DB Migration Reference (#23853)
Misc/Internal
- Remove pinning for xmltodict (#23992)
Apache Airflow 2.3.1
Bug Fixes
- Automatically reschedule stalled queued tasks in
CeleryExecutor
(#23690) - Fix expand/collapse all buttons (#23590)
- Grid view status filters (#23392)
- Expand/collapse all groups (#23487)
- Fix retrieval of deprecated non-config values (#23723)
- Fix secrets rendered in UI when task is not executed. (#22754)
- Fix provider import error matching (#23825)
- Fix regression in ignoring symlinks (#23535)
- Fix
dag-processor
fetch metadata database config (#23575) - Fix auto upstream dep when expanding non-templated field (#23771)
- Fix task log is not captured (#23684)
- Add
reschedule
to the serialized fields for theBaseSensorOperator
(#23674) - Modify db clean to also catch the ProgrammingError exception (#23699)
- Remove titles from link buttons (#23736)
- Fix grid details header text overlap (#23728)
- Ensure
execution_timeout
as timedelta (#23655) - Don't run pre-migration checks for downgrade (#23634)
- Add index for event column in log table (#23625)
- Implement
send_callback
method forCeleryKubernetesExecutor
andLocalKubernetesExecutor
(#23617) - Fix
PythonVirtualenvOperator
templated_fields (#23559) - Apply specific ID collation to
root_dag_id
too (#23536) - Prevent
KubernetesJobWatcher
getting stuck on resource too old (#23521) - Fix scheduler crash when expanding with mapped task that returned none (#23486)
- Fix broken dagrun links when many runs start at the same time (#23462)
- Fix: Exception when parsing log #20966 (#23301)
- Handle invalid date parsing in webserver views. (#23161)
- Pools with negative open slots should not block other pools (#23143)
- Move around overflow, position and padding (#23044)
- Change approach to finding bad rows to LEFT OUTER JOIN. (#23528)
- Only count bad refs when
moved
table exists (#23491) - Visually distinguish task group summary (#23488)
- Remove color change for highly nested groups (#23482)
- Optimize 2.3.0 pre-upgrade check queries (#23458)
- Add backward compatibility for
core__sql_alchemy_conn__cmd
(#23441) - Fix literal cross product expansion (#23434)
- Fix broken task instance link in xcom list (#23367)
- Fix connection test button (#23345)
- fix cli
airflow dags show
for mapped operator (#23339) - Hide some task instance attributes (#23338)
- Don't show grid actions if server would reject with permission denied (#23332)
- Use run_id for
ti.mark_success_url
(#23330) - Fix update user auth stats (#23314)
- Use
<Time />
in Mapped Instance table (#23313) - Fix duplicated Kubernetes DeprecationWarnings (#23302)
- Store grid view selection in url params (#23290)
- Remove custom signal handling in Triggerer (#23274)
- Override pool for TaskInstance when pool is passed from cli. (#23258)
- Show warning if '/' is used in a DAG run ID (#23106)
- Use kubernetes queue in kubernetes hybrid executors (#23048)
- Add tags inside try block. (#21784)
Doc only changes
- Move
dag_processing.processor_timeouts
to counters section (#23393) - Clarify that bundle extras should not be used for PyPi installs (#23697)
- Synchronize support for Postgres and K8S in docs (#23673)
- Replace DummyOperator references in docs (#23502)
- Add doc notes for keyword-only args for
expand()
andpartial()
(#23373) - Document fix for broken elasticsearch logs with 2.3.0+ upgrade (#23821)
Misc/Internal
Apache Airflow Helm Chart 1.6.0
New Features
- Support
annotations
onvolumeClaimTemplates
(#23433) - Add support for
topologySpreadConstraints
to Helm Chart (#22712) - Helm support for LocalKubernetesExecutor (#22388)
- Add
securityContext
config for Redis to Helm chart (#22182) - Allow
annotations
on Helm DAG PVC (#22261) - enable optional
subPath
for DAGs volume mount (#22323) - Added support to override
auth_type
inauth_file
in PgBouncer Helm configuration (#21999) - Add
extraVolumeMounts
to Flower (#22414) - Add webserver
PodDisruptionBudget
(#21735)
Improvements
- Ensure the messages from migration job show up early (#23479)
- Allow migration jobs and init containers to be optional (#22195)
- Use jobs check command for liveness probe check in Airflow 2 (#22143)
Doc only changes
- Adds
resultBackendSecretName
warning in Helm production docs (#23307)
Misc
Apache Airflow 2.3.0
New Features
- Add dynamic task mapping (https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-42+milestone%3A%22Airflow+2.3.0%22)
- New Grid View replaces Tree View (#18675)
- Templated
requirements.txt
in Python Operators (#17349) - Allow reuse of decorated tasks (#22941)
- Move the database configuration to a new section (#22284)
- Add
SmoothOperator
(#22813) - Make operator's
execution_timeout
configurable (#22389) - Events Timetable (#22332)
- Support dag serialization with custom
ti_deps
rules (#22698) - Support log download in task log view (#22804)
- support for continue backfill on failures (#22697)
- Add
dag-processor
cli command (#22305) - Add possibility to create users in LDAP mode (#22619)
- Add
ignore_first_depends_on_past
for scheduled jobs (#22491) - Update base sensor operator to support XCOM return value (#20656)
- Add an option for run id in the ui trigger screen (#21851)
- Enable JSON serialization for connections (#19857)
- Add REST API endpoint for bulk update of DAGs (#19758)
- Add queue button to click-on-DagRun interface. (#21555)
- Add
list-import-errors
toairflow dags
command (#22084) - Store callbacks in database if
standalone_dag_processor
config is True. (#21731) - Add LocalKubernetesExecutor (#19729)
- Add
celery.task_timeout_error
metric (#21602) - Airflow
db downgrade
cli command (#21596) - Add
ALL_SKIPPED
trigger rule (#21662) - Add
db clean
CLI command for purging old data (#20838) - Add
celery_logging_level
(#21506) - Support different timeout value for dag file parsing (#21501)
- Support generating SQL script for upgrades (#20962)
- Add option to compress Serialized dag data (#21332)
- Branch python operator decorator (#20860)
- Add Audit Log View to Dag View (#20733)
- Add missing StatsD metric for failing SLA Callback notification (#20924)
- Add
ShortCircuitOperator
configurability for respecting downstream trigger rules (#20044) - Allow using Markup in page title in Webserver (#20888)
- Add Listener Plugin API that tracks TaskInstance state changes (#20443)
- Add context var hook to inject more env vars (#20361)
- Add a button to set all tasks to skipped (#20455)
- Cleanup pending pods (#20438)
- Add config to warn public deployment exposure in UI (#18557)
- Log filename template records (#20165)
- Added windows extensions (#16110)
- Showing approximate time until next dag_run in Airflow (#20273)
- Extend config window on UI (#20052)
- Add show dag dependencies feature to CLI (#19985)
- Add cli command for 'airflow dags reserialize` (#19471)
- Add missing description field to Pool schema(REST API) (#19841)
- Introduce DagRun action to change state to queued. (#19353)
- Add DAG run details page (#19705)
- Add role export/import to cli tools (#18916)
- Adding
dag_id_pattern
parameter to the/dags
endpoint (#18924)
Improvements
- Show schedule_interval/timetable description in UI (#16931)
- Added column duration to DAG runs view (#19482)
- Enable use of custom conn extra fields without prefix (#22607)
- Initialize finished counter at zero (#23080)
- Improve logging of optional provider features messages (#23037)
- Meaningful error message in resolve_template_files (#23027)
- Update ImportError items instead of deleting and recreating them (#22928)
- Add option
--skip-init
to db reset command (#22989) - Support importing connections from files with ".yml" extension (#22872)
- Support glob syntax in
.airflowignore
files (#21392) (#22051) - Hide pagination when data is a single page (#22963)
- Support for sorting DAGs in the web UI (#22671)
- Speed up
has_access
decorator by ~200ms (#22858) - Add XComArg to lazy-imported list of Airflow module (#22862)
- Add more fields to REST API dags/dag_id/details endpoint (#22756)
- Don't show irrelevant/duplicated/"internal" Task attrs in UI (#22812)
- No need to load whole ti in current_state (#22764)
- Pickle dag exception string fix (#22760)
- Better verification of Localexecutor's parallelism option (#22711)
- log backfill exceptions to sentry (#22704)
- retry commit on MySQL deadlocks during backfill (#22696)
- Add more fields to REST API get DAG(dags/dag_id) endpoint (#22637)
- Use timetable to generate planned days for current year (#22055)
- Disable connection pool for celery worker (#22493)
- Make date picker label visible in trigger dag view (#22379)
- Expose
try_number
in airflow vars (#22297) - Add generic connection type (#22310)
- Add a few more fields to the taskinstance finished log message (#22262)
- Pause auto-refresh if scheduler isn't running (#22151)
- Show DagModel details. (#21868)
- Add pip_install_options to PythonVirtualenvOperator (#22158)
- Show import error for
airflow dags list
CLI command (#21991) - Pause auto-refresh when page is hidden (#21904)
- Default args type check (#21809)
- Enhance magic methods on XComArg for UX (#21882)
- py files don't have to be checked
is_zipfiles
in refresh_dag (#21926) - Fix TaskDecorator type hints (#21881)
- Add 'Show record' option for variables (#21342)
- Use DB where possible for quicker
airflow dag
subcommands (#21793) - REST API: add rendered fields in task instance. (#21741)
- Change the default auth backend to session (#21640)
- Don't check if
py
DAG files are zipped during parsing (#21538) - Switch XCom implementation to use
run_id
(#20975) - Action log on Browse Views (#21569)
- Implement multiple API auth backends (#21472)
- Change logging level details of connection info in
get_connection()
(#21162) - Support mssql in airflow db shell (#21511)
- Support config
worker_enable_remote_control
for celery (#21507) - Log memory usage in
CgroupTaskRunner
(#21481) - Modernize DAG-related URL routes and rename "tree" to "grid" (#20730)
- Move Zombie detection to
SchedulerJob
(#21181) - Improve speed to run
airflow
by 6x (#21438) - Add more SQL template fields renderers (#21237)
- Simplify fab has access lookup (#19294)
- Log context only for default method (#21244)
- Log trigger status only if at least one is running (#21191)
- Add optional features in providers. (#21074)
- Better multiple_outputs inferral for @task.python (#20800)
- Improve handling of string type and non-attribute
template_fields
(#21054) - Remove un-needed deps/version requirements (#20979)
- Correctly specify overloads for TaskFlow API for type-hinting (#20933)
- Introduce notification_sent to SlaMiss view (#20923)
- Rewrite the task decorator as a composition (#20868)
- Add "Greater/Smaller than or Equal" to filters in the browse views (#20602) (#20798)
- Rewrite DAG run retrieval in task command (#20737)
- Speed up creation of DagRun for large DAGs (5k+ tasks) by 25-130% (#20722)
- Make native environment Airflow-flavored like sandbox (#20704)
- Better error when param value has unexpected type (#20648)
- Add filter by state in DagRun REST API (List Dag Runs) (#20485)
- Prevent exponential memory growth in Tasks with custom logging handler (#20541)
- Set default logger in logging Mixin (#20355)
- Reduce deprecation warnings from www (#20378)
- Add hour and minute to time format on x-axis of all charts using nvd3.lineChart (#20002)
- Add specific warning when Task asks for more slots than pool defined with (#20178)
- UI: Update duration column for better human readability (#20112)
- Use Viewer role as example public role (#19215)
- Properly implement DAG param dict copying (#20216)
ShortCircuitOperator
push XCom by returning python_callable result (#20071)- Add clear logging to tasks killed due to a Dagrun timeout (#19950)
- Change log level for Zombie detection messages (#20204)
- Better confirmation prompts (#20183)
- Only execute TIs of running DagRuns (#20182)
- Check and run migration in commands if necessary (#18439)
- Log only when Zombies exists (#20118)
- Increase length of the email and username (#19932)
- Add more filtering options for TI's in the UI (#19910)
- Dynamically enable "Test Connection" button by connection type (#19792)
- Avoid littering postgres server logs with "could not obtain lock" with HA schedulers (#19842)
- Renamed
Connection.get_hook
parameter to make it the same as inSqlSensor
andSqlOperator
. (#19849) - Add hook_params in SqlSensor using the latest changes from PR #18718. (#18431)
- Speed up webserver boot time by delaying provider initialization (#19709)
- Configurable logging of
XCOM
value in PythonOperator (#19378) - Minimize production js files (#19658)
- Add
hook_params
inBaseSqlOperator
(#18718) - Add missing "end_date" to hash components (#19281)
- More friendly output of the airflow plugins command + add timetables (#19298)
- Add sensor default timeout config (#19119)
- Update
taskinstance
REST API schema to include dag_run_id field (#19105) - Adding feature in bash operator to append the user defined env variable to system env variable (#18944)
- Duplicate Connection: Added logic to query if a connection id exists before creating one (#18161)
Bug Fixes
- Use inherited 'trigger_tasks' method (#23016)
- In DAG dependency detector, use class type instead of class name (#21706)
- Fix tasks being wrongly skipped by schedule_after_task_execution (#23181)
- Fix X-Frame enabled behaviour (#23222)
- Allow
extra
to be nullable in connection payload as per schema(REST API). (#23183) - Fix
dag_id
extraction for dag level access checks in web ui (#23015) - Fix timezone display for logs on UI (#23075)
- Include message in graph errors (#23021)
- Change trigger dropdown left position (#23013)
- Don't add planned tasks for legacy DAG runs (#23007)
- Add dangling rows check for TaskInstance references (#22924)
- Validate the input params in connection
CLI
command (#22688) - Fix trigger event payload ...
Apache Airflow 2.2.5
Bug Fixes
- Check and disallow a relative path for sqlite (#22530)
- Fixed dask executor and tests (#22027)
- Fix broken links to celery documentation (#22364)
- Fix incorrect data provided to tries & landing times charts (#21928)
- Fix assignment of unassigned triggers (#21770)
- Fix triggerer
--capacity
parameter (#21753) - Fix graph autorefresh on page load (#21736)
- Fix filesystem sensor for directories (#21729)
- Fix stray
order_by(TaskInstance.execution_date)
(#21705) - Correctly handle multiple '=' in LocalFileSystem secrets. (#21694)
- Log exception in local executor (#21667)
- Disable
default_pool
delete on web ui (#21658) - Extends
typing-extensions
to be installed with python 3.8+ #21566 (#21567) - Dispose unused connection pool (#21565)
- Fix logging JDBC SQL error when task fails (#21540)
- Filter out default configs when overrides exist. (#21539)
- Fix Resources
__eq__
check (#21442) - Fix
max_active_runs=1
not scheduling runs whenmin_file_process_interval
is high (#21413) - Reduce DB load incurred by Stale DAG deactivation (#21399)
- Fix race condition between triggerer and scheduler (#21316)
- Fix trigger dag redirect from task instance log view (#21239)
- Log traceback in trigger excs (#21213)
- A trigger might use a connection; make sure we mask passwords (#21207)
- Update
ExternalTaskSensorLink
to handle templatedexternal_dag_id
(#21192) - Ensure
clear_task_instances
sets valid run state (#21116) - Fix: Update custom connection field processing (#20883)
- Truncate stack trace to DAG user code for exceptions raised during execution (#20731)
- Fix duplicate trigger creation race condition (#20699)
- Fix Tasks getting stuck in scheduled state (#19747)
- Fix: Do not render undefined graph edges (#19684)
- Set
X-Frame-Options
header to DENY only ifX_FRAME_ENABLED
is set to true. (#19491)
Doc only changes
- adding
on_execute_callback
to callbacks docs (#22362) - Add documentation on specifying a DB schema. (#22347)
- Fix postgres part of pipeline example of tutorial (#21586)
- Extend documentation for states of DAGs & tasks and update trigger rules docs (#21382)
- DB upgrade is required when updating Airflow (#22061)
- Remove misleading MSSQL information from the docs (#21998)
Misc
Apache Airflow Helm Chart 1.5.0
New Features
- Add support for custom command and args in jobs (#20864)
- Support for
priorityClassName
(#20794) - Add
envFrom
to the Flower deployment (#21401) - Add annotations to cleanup pods (#21484)
Improvements
- Speedup liveness probe for scheduler and triggerer (#20833, #21108, #22041)
- Update git-sync to v3.4.0 (#21309)
- Remove default auth backend setting (#21640)
Bug Fixes
- Fix elasticsearch URL when username/password are empty (#21222)
- Mount
airflow.cfg
in wait-for-airflow-migrations containers (#20609) - Grant pod log reader to triggerer serviceaccount (#21111)
Doc only changes
- Simplify chart docs for configuring Airflow (#21747)
- Add extra information about time synchronization needed (#21685)
- Fix extra containers docs (#20787)
- Fix example DAGs env var in quickstart (#21990)
Misc
Apache Airflow 2.2.4
Bug Fixes
- Adding missing login provider related methods from Flask-Appbuilder (#21294)
- Fix slow DAG deletion due to missing
dag_id
index for job table (#20282) - Add a session backend to store session data in the database (#21478)
- Show task status only for running dags or only for the last finished dag (#21352)
- Use compat data interval shim in log handlers (#21289)
- Fix mismatch in generated run_id and logical date of DAG run (#18707)
- Fix TriggerDagRunOperator extra link (#19410)
- Add possibility to create user in the Remote User mode (#19963)
- Avoid deadlock when rescheduling task (#21362)
- Fix the incorrect scheduling time for the first run of dag (#21011)
- Fix Scheduler crash when executing task instances of missing DAG (#20349)
- Deferred tasks does not cancel when DAG is marked fail (#20649)
- Removed duplicated dag_run join in
Dag.get_task_instances()
(#20591) - Avoid unintentional data loss when deleting DAGs (#20758)
- Fix session usage in
/rendered-k8s
view (#21006) - Fix
airflow dags backfill --reset-dagruns
errors when run twice (#21062) - Do not set
TaskInstance.max_tries
inrefresh_from_task
(#21018) - Don't require dag_id in body in dagrun REST API endpoint (#21024)
- Add Roles from Azure OAUTH Response in internal Security Manager (#20707)
- Allow Viewing DagRuns and TIs if a user has DAG "read" perms (#20663)
- Fix running
airflow dags test <dag_id> <execution_dt>
results in error when run twice (#21031) - Switch to non-vendored latest connexion library (#20910)
- Bump flask-appbuilder to
>=3.3.4
(#20628) - upgrade celery to
5.2.3
(#19703) - Bump croniter from
<1.1
to<1.2
(#20489) - Lift off upper bound for MarkupSafe (#20113)
- Avoid calling
DAG.following_schedule()
forTaskInstance.get_template_context()
(#20486) - Fix(standalone): Remove hardcoded Webserver port (#20429)
- Remove unnecssary logging in experimental API (#20356)
- Un-ignore DeprecationWarning (#20322)
- Deepcopying Kubernetes Secrets attributes causing issues (#20318)
- Fix(dag-dependencies): fix arrow styling (#20303)
- Adds retry on taskinstance retrieval lock (#20030)
- Correctly send timing metrics when using dogstatsd (fix schedule_delay metric) (#19973)
- Enhance
multiple_outputs
inference of dict typing (#19608) - Fixing ses email backend (#18042)
- Pin Markupsafe until we are able to upgrade Flask/Jinja (#21664)
Doc only changes
- Added explaining concept of logical date in DAG run docs (#21433)
- Add note about Variable precedence with env vars (#21568)
- Update error docs to include before_send option (#21275)
- Augment xcom docs (#20755)
- Add documentation and release policy on "latest" constraints (#21093)
- Add a link to the DAG model in the Python API reference (#21060)
- Added an enum param example (#20841)
- Compare taskgroup and subdag (#20700)
- Add note about reserved
params
keyword (#20640) - Improve documentation on
Params
(#20567) - Fix typo in MySQL Database creation code (Set up DB docs) (#20102)
- Add requirements.txt description (#20048)
- Clean up
default_args
usage in docs (#19803) - Add docker-compose explanation to conn localhost (#19076)
- Update CSV ingest code for tutorial (#18960)
- Adds Pendulum 1.x -> 2.x upgrade documentation (#18955)
- Updating explicit arg example in TaskFlow API tutorial doc (#18907)
- Adds back documentation about context usage in Python/
@task
(#18868) - Clean up dynamic
start_date
values from docs (#19607) - Docs for multiple pool slots (#20257)
- Update upgrading.rst with detailed code example of how to resolve post-upgrade warning (#19993)
Misc
Apache Airflow Helm Chart 1.4.0
New Features
- Add
type
to extra secrets param (#20599) - Support elasticsearch connection
scheme
(#20564) - Allows to disable built-in secret variables individually (#18974)
- Add support for
securityContext
(#18249) - Add extra containers, volumes and volume mounts for jobs (#18808)
- Allow ingress multiple hostnames w/diff secrets (#18542)
- PgBouncer extra volumes, volume mounts, and sslmode (#19749)
- Allow specifying kerberos keytab (#19054)
- Allow disabling the Helm hooks (#18776, #20018)
- Add
migration-wait-timeout
(#20069)
Improvements
- Increase default livenessProbe timeout (#20698)
- Strict schema for k8s objects for values.yaml (#19181)
- Remove unnecessary
pod_template_file
defaults (#19690) - Use built-in
check-migrations
command for Airflow>=2 (#19676)
Bug Fixes
- Fix precedence of
affinity
,nodeSelector
, andtolerations
(#20641) - Fix chart elasticsearch default port 80 to 9200. (#20616)
- Fix network policy issue for webserver and flowerui (#20199)
- Use local definitions for k8s schema validation (#20544)
- Add custom labels for ingresses/PVCs (#20535)
- Fix extra secrets/configmaps labels (#20464)
- Fix flower restarts on update (#20316)
- Properly quote namespace names (#20266)
Doc only changes
- Add
helm dependency update
step to chart INSTALL (#20702) - Reword section covering the envvar secrets (#20566)
- Add "Customizing Workers" page (#20331)
- Include Datadog example in production guide (#17996)
- Update production Helm guide database section to use k8s secret (#19892)
- Fix
multiNamespaceMode
docs to also cover KPO (#19879) - Clarify Helm behaviour when it comes to loading default connections (#19708)
Misc
Apache Airflow 2.2.3
Bug Fixes
- Lazy Jinja2 context (#20217)
- Exclude
snowflake-sqlalchemy
v1.2.5 (#20245) - Move away from legacy
importlib.resources
API (#19091) - Move setgid as the first command executed in forked task runner (#20040)
- Fix race condition when starting
DagProcessorAgent
(#19935) - Limit
httpx
to <0.20.0 (#20218) - Log provider import errors as debug warnings (#20172)
- Bump minimum required
alembic
version (#20153) - Fix log link in gantt view (#20121)
- fixing #19028 by moving chown to use sudo (#20114)
- Lift off upper bound for
MarkupSafe
(#20113) - Fix infinite recursion on redact log (#20039)
- Fix db downgrades (#19994)
- Context class handles deprecation (#19886)
- Fix possible reference to undeclared variable (#19933)
- Validate
DagRun
state is valid on assignment (#19898) - Workaround occasional deadlocks with MSSQL (#19856)
- Enable task run setting to be able reinitialise (#19845)
- Fix log endpoint for same task (#19672)
- Cast macro datetime string inputs explicitly (#19592)
- Do not crash with stacktrace when task instance is missing (#19478)
- Fix log timezone in task log view (#19342) (#19401)
- Fix: Add taskgroup tooltip to graph view (#19083)
- Rename execution date in forms and tables (#19063)
- Simplify "invalid TI state" message (#19029)
- Handle case of nonexistent file when preparing file path queue (#18998)
- Do not create dagruns for DAGs with import errors (#19367)
- Fix field relabeling when switching between conn types (#19411)
KubernetesExecutor
should default to template image if used (#19484)- Fix task instance api cannot list task instances with
None
state (#19487) - Fix IntegrityError in
DagFileProcessor.manage_slas
(#19553) - Declare data interval fields as serializable (#19616)
- Relax timetable class validation (#19878)
- Fix labels used to find queued
KubernetesExecutor
pods (#19904) - Fix moved data migration check for MySQL when replcation is used (#19999)
Doc only changes
- Warn without tracebacks when example_dags are missing deps (#20295)
- Deferrable operators doc clarification (#20150)
- Ensure the example DAGs are all working (#19355)
- Updating core example DAGs to use TaskFlow API where applicable (#18562)
- Add xcom clearing behaviour on task retries (#19968)
- Add a short chapter focusing on adapting secret format for connections (#19859)
- Add information about supported OS-es for Apache Airflow (#19855)
- Update docs to reflect that changes to the
base_log_folder
require updating other configs (#19793) - Disclaimer in
KubernetesExecutor
pod template docs (#19686) - Add upgrade note on
execution_date
->run_id
(#19593) - Expanding
.output
operator property information in TaskFlow tutorial doc (#19214) - Add example SLA DAG (#19563)
- Add a proper example to patch DAG (#19465)
- Add DAG file processing description to Scheduler Concepts (#18954)
- Updating explicit arg example in TaskFlow API tutorial doc (#18907)
- Adds back documentation about context usage in Python/
@task
(#18868) - Add release date for when an endpoint/field is added in the REST API (#19203)
- Better
pod_template_file
examples (#19691) - Add decription on how you can customize image entrypoint (#18915)
- Dags-in-image pod template example should not have dag mounts (#19337)