Releases: apache/airflow
Releases · apache/airflow
Airflow 1.10.5, 2019-08-30
New Features
- [AIRFLOW-1498] Add feature for users to add Google Analytics to Airflow UI (#5850)
- [AIRFLOW-4074] Add option to add labels to Dataproc jobs (#5606)
- [AIRFLOW-4846] Allow specification of an existing secret containing git credentials for init containers (#5475)
Improvements
- [AIRFLOW-5335] Update GCSHook methods so they need min IAM perms (#5939)
- [AIRFLOW-2692] Allow AWS Batch Operator to use templates in job_name parameter (#3557)
- [AIRFLOW-4768] Add Timeout parameter in example_gcp_video_intelligence (#5862)
- [AIRFLOW-5165] Make Dataproc highly available (#5781)
- [AIRFLOW-5139] Allow custom ES configs (#5760)
- [AIRFLOW-5340] Fix GCP DLP example (#594)
- [AIRFLOW-5211] Add pass_value to template_fields BigQueryValueCheckOperator (#5816)
- [AIRFLOW-5113] Support icon url in slack web hook (#5724)
- [AIRFLOW-4230] bigquery schema update options should be a list (#5766)
- [AIRFLOW-1523] Clicking on Graph View should display related DAG run (#5866)
- [AIRFLOW-5027] Generalized CloudWatch log grabbing for ECS and SageMaker operators (#5645)
- [AIRFLOW-5244] Add all possible themes to default_webserver_config.py (#5849)
- [AIRFLOW-5245] Add more metrics around the scheduler (#5853)
- [AIRFLOW-5048] Improve display of Kubernetes resources (#5665)
- [AIRFLOW-5284] Replace deprecated log.warn by log.warning (#5881)
- [AIRFLOW-5276] Remove unused helpers from airflow.utils.helpers (#5878)
- [AIRFLOW-4316] Support setting kubernetes_environment_variables config section from env var (#5668)
Bug fixes
- [AIRFLOW-5168] Fix Dataproc operators that failed in 1.10.4 (#5928)
- [AIRFLOW-5136] Fix Bug with Incorrect template_fields in DataProc{*} Operators (#5751)
- [AIRFLOW-5169] Pass GCP Project ID explicitly to StorageClient in GCSHook (#5783)
- [AIRFLOW-5302] Fix bug in none_skipped Trigger Rule (#5902)
- [AIRFLOW-5350] Fix bug in the num_retires field in BigQueryHook (#5955)
- [AIRFLOW-5145] Fix rbac ui presents false choice to encrypt or not encrypt variable values (#5761)
- [AIRFLOW-5104] Set default schedule for GCP Transfer operators (#5726)
- [AIRFLOW-4462] Use datetime2 column types when using MSSQL backend (#5707)
- [AIRFLOW-5282] Add default timeout on kubeclient & catch HTTPError (#5880)
- [AIRFLOW-5315] TaskInstance not updating from DB when user changes executor_config (#5926)
- [AIRFLOW-4013] Mark success/failed is picking all execution date (#5616)
- [AIRFLOW-5152] Fix autodetect default value in GoogleCloudStorageToBigQueryOperator(#5771)
- [AIRFLOW-5100] Airflow scheduler does not respect safe mode setting (#5757)
- [AIRFLOW-4763] Allow list in DockerOperator.command (#5408)
- [AIRFLOW-5260] Allow empty uri arguments in connection strings (#5855)
- [AIRFLOW-5257] Fix ElasticSearch log handler errors when attemping to close logs (#5863)
- [AIRFLOW-1772] Google Updated Sensor doesnt work with CRON expressions (#5730)
- [AIRFLOW-5085] When you run kubernetes git-sync test from TAG, it fails (#5699)
- [AIRFLOW-5258] ElasticSearch log handler, has 2 times of hours (%H and %I) in _clean_execution_dat (#5864)
- [AIRFLOW-5348] Escape Label in deprecated chart view when set via JS (#5952)
- [AIRFLOW-5357] Fix Content-Type for exported variables.json file (#5963)
- [AIRFLOW-5109] Fix process races when killing processes (#5721)
- [AIRFLOW-5240] Latest version of Kombu is breaking airflow for py2
Misc/Internal
- [AIRFLOW-5111] Remove apt-get upgrade from the Dockerfile (#5722)
- [AIRFLOW-5209] Fix Documentation build (#5814)
- [AIRFLOW-5083] Check licence image building can be faster and moved to before-install (#5695)
- [AIRFLOW-5119] Cron job should always rebuild everything from scratch (#5733)
- [AIRFLOW-5108] In the CI local environment long-running kerberos might fail sometimes (#5719)
- [AIRFLOW-5092] Latest python image should be pulled locally in force_pull_and_build (#5705)
- [AIRFLOW-5225] Consistent licences can be added automatically for all JS files (#5827)
- [AIRFLOW-5229] Add licence to all other file types (#5831)
- [AIRFLOW-5227] Consistent licences for all .sql files (#5829)
- [AIRFLOW-5161] Add pre-commit hooks to run static checks for only changed files (#5777)
- [AIRFLOW-5159] Optimise checklicence image build (do not build if not needed) (#5774)
- [AIRFLOW-5263] Show diff on failure of pre-commit checks (#5869)
- [AIRFLOW-5204] Shell files should be checked with shellcheck and have identical licence (#5807)
- [AIRFLOW-5233] Check for consistency in whitespace (tabs/eols) and common problems (#5835)
- [AIRFLOW-5247] Getting all dependencies from NPM can be moved up in Dockerfile (#5870)
- [AIRFLOW-5143] Corrupted rat.jar became part of the Docker image (#5759)
- [AIRFLOW-5226] Consistent licences for all html JINJA templates (#5828)
- [AIRFLOW-5051] Coverage is not properly reported in the new CI system (#5732)
- [AIRFLOW-5239] Small typo and incorrect tests in CONTRIBUTING.md (#5844)
- [AIRFLOW-5287] Checklicence base image is not pulled (#5886)
- [AIRFLOW-5301] Some not-yet-available files from breeze are committed to master (#5901)
- [AIRFLOW-5285] Pre-commit pylint runs over todo files (#5884)
- [AIRFLOW-5288] Temporary container for static checks should be auto-removed (#5887)
- [AIRFLOW-5326] Fix teething proglems for Airflow breeze (#5933)
- [AIRFLOW-5206] All .md files should have all common licence, TOC (where applicable) (#5809)
- [AIRFLOW-5329] Easy way to add local files to docker (#5933)
- [AIRFLOW-4027] Make experimental api tests more stateless (#4854)
Doc-only changes
1.10.4rc3
1.10.3
New Feature
- [AIRFLOW-4232] Add
none_skipped
trigger rule (#5032) - [AIRFLOW-3971] Add Google Cloud Natural Language operators (#4980)
- [AIRFLOW-4069] Add Opsgenie Alert Hook and Operator (#4903)
- [AIRFLOW-3552] Fix encoding issue in ImapAttachmentToS3Operator (#5040)
- [AIRFLOW-3552] Add ImapAttachmentToS3Operator (#4476)
- [AIRFLOW-1526] Add dingding hook and operator (#4895)
- [AIRFLOW-3490] Add BigQueryHook's Ability to Patch Table/View (#4299)
- [AIRFLOW-3918] Add ssh private-key support to git-sync for KubernetesExecutor (#4777)
- [AIRFLOW-3659] Create Google Cloud Transfer Service Operators (#4792)
- [AIRFLOW-3939] Add Google Cloud Translate operator (#4755)
- [AIRFLOW-3541] Add Avro logical type conversion to bigquery hook (#4553)
- [AIRFLOW-4106] instrument staving tasks in pool (#4927)
- [AIRFLOW-2568] Azure Container Instances operator (#4121)
- [AIRFLOW-4107] instrument executor (#4928)
- [AIRFLOW-4033] record stats of task duration (#4858)
- [AIRFLOW-3892] Create Redis pub sub sensor (#4712)
- [AIRFLOW-4124] add get_table and get_table_location in aws_glue_hook and tests (#4942)
- [AIRFLOW-1262] Adds missing docs for email configuration (#4557)
- [AIRFLOW-3701] Add Google Cloud Vision Product Search operators (#4665)
- [AIRFLOW-3766] Add support for kubernetes annotations (#4589)
- [AIRFLOW-3741] Add extra config to Oracle hook (#4584)
- [AIRFLOW-1262] Allow configuration of email alert subject and body (#2338)
- [AIRFLOW-2985] Operators for S3 object copying/deleting (#3823)
- [AIRFLOW-2993] s3_to_sftp and sftp_to_s3 operators (#3828)
- [AIRFLOW-3799] Add compose method to GoogleCloudStorageHook (#4641)
- [AIRFLOW-3218] add support for poking a whole DAG (#4058)
- [AIRFLOW-3315] Add ImapAttachmentSensor (#4161)
- [AIRFLOW-3556] Add cross join set dependency function (#4356)
Improvement
- [AIRFLOW-3823] Exclude branch's downstream tasks from the tasks to skip (#4666)
- [AIRFLOW-3274] Add run_as_user and fs_group options for Kubernetes (#4648)
- [AIRFLOW-4247] Template Region on the DataprocOperators (#5046)
- [AIRFLOW-4008] add envFrom for Kubernetes Executor (#4952)
- [AIRFLOW-3947] Flash msg for no DAG-level access error (#4767)
- [AIRFLOW-3287] Moving database clean-up code into the CoreTest.tearDown() (#4122)
- [AIRFLOW-4058] Name models test file to get automatically picked up (#4901)
- [AIRFLOW-3830] Remove DagBag from /dag_details (#4831)
- [AIRFLOW-3596] Clean up undefined template variables. (#4401)
- [AIRFLOW-3573] Remove DagStat table (#4378)
- [AIRFLOW-3623] Fix bugs in Download task logs (#5005)
- [AIRFLOW-4173] Improve SchedulerJob.process_file() (#4993)
- [AIRFLOW-3540] Warn if old airflow.cfg file is found (#5006)
- [AIRFLOW-4000] Return response when no file (#4822)
- [AIRFLOW-3383] Rotate fernet keys. (#4225)
- [AIRFLOW-3003] Pull the krb5 image instead of building (#3844)
- [AIRFLOW-3862] Check types with mypy. (#4685)
- [AIRFLOW-251] Add option SQL_ALCHEMY_SCHEMA parameter to specify schema for metadata (#4199)
- [AIRFLOW-1814] Temple PythonOperator {op_args,op_kwargs} fields (#4691)
- [AIRFLOW-3730] Standarization use of logs mechanisms (#4556)
- [AIRFLOW-3770] Validation of documentation on CI] (#4593)
- [AIRFLOW-3866] Run docker-compose pull silently in CI (#4688)
- [AIRFLOW-3685] Move licence header check (#4497)
- [AIRFLOW-3670] Add stages to Travis build (#4477)
- [AIRFLOW-3937] KubernetesPodOperator support for envFrom configMapRef and secretRef (#4772)
- [AIRFLOW-3408] Remove outdated info from Systemd Instructions (#4269)
- [AIRFLOW-3202] add missing documentation for AWS hooks/operator (#4048)
- [AIRFLOW-3908] Add more Google Cloud Vision operators (#4791)
- [AIRFLOW-2915] Add example DAG for GoogleCloudStorageToBigQueryOperator (#3763)
- [AIRFLOW-3062] Add Qubole in integration docs (#3946)
- [AIRFLOW-3288] Add SNS integration (#4123)
- [AIRFLOW-3148] Remove unnecessary arg "parameters" in RedshiftToS3Transfer (#3995)
- [AIRFLOW-3049] Add extra operations for Mongo hook (#3890)
- [AIRFLOW-3559] Add missing options to DatadogHook. (#4362)
- [AIRFLOW-1191] Simplify override of spark submit command. (#4360)
- [AIRFLOW-3155] Add ability to filter by a last modified time in GCS Operator (#4008)
- [AIRFLOW-2864] Fix docstrings for SubDagOperator (#3712)
- [AIRFLOW-4062] Improve docs on install extra package commands (#4966)
- [AIRFLOW-3743] Unify different methods of working out AIRFLOW_HOME (#4705)
- [AIRFLOW-4002] Option to open debugger on errors in
airflow test
. (#4828) - [AIRFLOW-3997] Extend Variable.get so it can return None when var not found (#4819)
- [AIRFLOW-4009] Fix docstring issue in GCSToBQOperator (#4836)
- [AIRFLOW-3980] Unify logger (#4804)
- [AIRFLOW-4076] Correct port type of beeline_default in init_db (#4908)
- [AIRFLOW-4046] Add validations for poke_interval & timeout for Sensor (#4878)
- [AIRFLOW-3744] Abandon the use of obsolete aliases of methods (#4568)
- [AIRFLOW-3865] Add API endpoint to get python code of dag by id (#4687)
- [AIRFLOW-3516] Support to create k8 worker pods in batches (#4434)
- [AIRFLOW-2843] Add flag in ExternalTaskSensor to check if external DAG/task exists (#4547)
- [AIRFLOW-2224] Add support CSV files in MySqlToGoogleCloudStorageOperator (#4738)
- [AIRFLOW-3895] GoogleCloudStorageHook/Op create_bucket takes optional resource params (#4717)
- [AIRFLOW-3950] Improve AirflowSecurityManager.update_admin_perm_view (#4774)
- [AIRFLOW-4006] Make better use of Set in AirflowSecurityManager (#4833)
- [AIRFLOW-3917] Specify alternate kube config file/context when running out of cluster (#4859)
- [AIRFLOW-3911] Change Harvesting DAG parsing results to DEBUG log level (#4729)
- [AIRFLOW-3584] Use ORM DAGs for index view. (#4390)
- [AIRFLOW-2821] Refine Doc "Plugins" (#3664)
- [AIRFLOW-3561] Improve queries (#4368)
- [AIRFLOW-3600] Remove dagbag from trigger (#4407)
- [AIRFLOW-3713] Updated documentation for GCP optional project_id (#4541)
- [AIRFLOW-2767] Upgrade gunicorn to 19.5.0 to avoid moderate-severity CVE (#4795)
- [AIRFLOW-3795] provide_context param is now used (#4735)
- [AIRFLOW-4012] Upgrade tabulate to 0.8.3 (#4838)
- [AIRFLOW-3623] Support download logs by attempts from UI (#4425)
- [AIRFLOW-2715] Use region setting when launching Dataflow templates (#4139)
- [AIRFLOW-3932] Update unit tests and documentation for safe mode flag. (#4760)
- [AIRFLOW-3932] Optionally skip dag discovery heuristic. (#4746)
- [AIRFLOW-3258] K8S executor environment variables section. (#4627)
- [AIRFLOW-3931] set network, subnetwork when launching dataflow template (#4744)
- [AIRFLOW-4095] Add template_fields for S3CopyObjectOperator & S3DeleteObjectsOperator (#4920)
- [AIRFLOW-2798] Remove needless code from models.py
- [AIRFLOW-3731] Constrain mysqlclient to <1.4 (#4558)
- [AIRFLOW-3139] include parameters into log.info in SQL operators, if any (#3986)
- [AIRFLOW-3174] Refine Docstring for SQL Operators & Hooks (#4043)
- [AIRFLOW-3933] Fix various typos (#4747)
- [AIRFLOW-3905] Allow using "parameters" in SqlSensor (#4723)
- [AIRFLOW-2761] Parallelize enqueue in celery executor (#4234)
- [AIRFLOW-3540] Respect environment config when looking up config file. (#4340)
- [AIRFLOW-2156] Parallelize Celery Executor task state fetching (#3830)
- [AIRFLOW-3702] Add backfill option to run backwards (#4676)
- [AIRFLOW-3821] Add replicas logic to GCP SQL example DAG (#4662)
- [AIRFLOW-3547] Fixed Jinja templating in SparkSubmitOperator (#4347)
- [AIRFLOW-3647] Add archives config option to SparkSubmitOperator (#4467)
- [AIRFLOW-3802] Updated documentation for HiveServer2Hook (#4647)
- [AIRFLOW-3817] Corrected task ids returned by BranchPythonOperator to match the dummy operator ids (#4659)
- [AIRFLOW-3782] Clarify docs around celery worker_autoscale in default_airflow.cfg (#4609)
- [AIRFLOW-1945] Add Autoscale config for Celery workers (#3989)
- [AIRFLOW-3590] Change log message of executor exit status (#4616)
- [AIRFLOW-3591] Fix start date, end date, duration for rescheduled tasks (#4502)
- [AIRFLOW-3709] Validate
allowed_states
for ExternalTaskSensor (#4536) - [AIRFLOW-3522] Add support for sending Slack attachments (#4332)
- [AIRFLOW-3569] Add "Trigger DAG" button in DAG page (/www only) (#4373)
- [AIRFLOW-3569] Add "Trigger DAG" button in DAG page (/www_rbac only) (#4373)
- [AIRFLOW-3044] Dataflow operators accept templated job_name param (#3887)
- [AIRFLOW-3023] Fix docstring datatypes
- [AIRFLOW-2928] Use uuid4 instead of uuid1 (#3779)
- [AIRFLOW-2988] Run specifically python2 for dataflow (#3826)
- [AIRFLOW-3697] Vendorize nvd3 and slugify (#4513)
- [AIRFLOW-3692] Remove ENV variables to avoid GPL (#4506)
- [AIRFLOW-3907] Upgrade flask and set cookie security flags. (#4725)
- [AIRFLOW-3698] Add documentation for AWS Connection (#4514)
- [AIRFLOW-3616][AIRFLOW-1215] Add aliases for schema with underscore (#4523)
- [AIRFLOW-3375] Support returning multiple tasks with BranchPythonOperator (#4215)
- [AIRFLOW-3742] Fix handling of "fallback" for AirflowConfigParsxer.getint/boolean (#4674)
- [AIRFLOW-3742] Respect the
fallback
arg in airflow.configuration.get (#4567) - [AIRFLOW-3789] Fix flake8 3.7 errors. (#4617)
- [AIRFLOW-3602] Improve ImapHook handling of retrieving no attachments (#4475)
- [AIRFLOW-3631] Update flake8 and fix lint. (#4436)
Bug fixes
- [AIRFLOW-4248] Fix 'FileExistsError' makedirs race in file_processor_handler (#5047)
- [AIRFLOW-4240] State-changing actions should be POST requests (#5039)
- [AIRFLOW-4246] Flask-Oauthlib needs downstream dependencies pinning due to breaking changes (#5045)
- [AIRFLOW-3887] Downgrade dagre-d3 to 0.4.18 (#4713)
- [AIRFLOW-3419] Fix S3Hook.select_key on Python3 (#4970)
- [AIRFLOW-4127] Correct AzureContainerInstanceHook._get_instance_view's return (#4945)
- [AIRFLOW-4172] Fix changes for driver class path option in Spark Submi...
1.7.0
Raw changelog
for the record, generated with:
~/node_modules/github-changes/bin/index.js -o airbnb -r airflow --only-pulls --use-commit-body --between-tags 1.6.2...1.7.0rc1 --token {your_gh_token_here}
1.7.0
- #1147 Enhance CLI Test command to accept a JSON-formatted dictionary of par… (@r39132)
- #975 statuses column on /admin shows only active or most recent dag_runs (@jtschoonhoven)
- #1127 FAQ entry about start_date (@mistercrunch)
- #1129 Showing active dag runs as in (3/16) in tooltip (@mistercrunch)
- #1144 More explicit zindex on modals (@mistercrunch)
- #1143 small fixes to previous bq project inclusion pr. (@mtagle)
- #1139 Allow specificiation of project in BigQuery Hook methods (@mtagle)
- #1110 Add date support to MySQL to GCS operator (@criccomini)
- #1135 Added start_date initialization for DagRun creation within schedule_dag(self, dag_id) (@RvN76)
- #1140 License check (@bolkedebruin)
- #1138 Add support for BigQuery User Defined Functions in BigQuery operator (@LeBlanc)
- #1132 Add custom email backends. (@jmcarp)
- #1119 Add gcloud-based GCSHook (@jlowin)
- #1134 Parameterizing DagBag import timeouts (@mistercrunch)
- #1045 Add startup scripts for upstart based systems (@d-lee)
- #1131 Adding ssh connection type to webform (@hyperborea)
- #792 add error handling for slack api (@abridgett)
- #1115 This patch adds license checking for Airflow. (@bolkedebruin)
- #1116 Add WePay and committer list to README.md (@criccomini)
- #1118 Don't force installation of GCP API client dependencies (@jlowin)
- #1090 Adding template support in qbol operator (@msumit)
- #1108 new company + link to pitfalls (@kretes)
- #1104 Add INT24 (MEDIUMINT) support to MySQL to Google cloud storage operator (@criccomini)
- #1076 SubDAG docs and examples (@nicktrav)
- #1101 modify datastore hook so that authorization is maintained for the lif… (@mtagle)
- #1099 Adding @mention in Airbnb and links to airbnb open source projects (@artwr)
- #1096 Make SqlAlchemy pool_recycle and pool_size configurable (@amread)
- #1070 Proper sqlalchemy syntax for desc (@mistercrunch)
- #1079 SID Oracle DB connection support (@biln)
- #1094 Adding to inits (@artwr)
- #1093 Add MySQL to BQ support for TINYINT (@criccomini)
- #1088 Fix MySQL to Google cloud storage scoping. (@criccomini)
- #1075 Pig hook and operator stub (@artwr)
- #1084 Replace deprecated flask.ext.* with flask_* (@jeffwidman)
- #1082 Cleanup Contributing.md (@jeffwidman)
- #1086 Default to 0 if no rows loaded in GCS to BQ operator. (@criccomini)
- #1080 Add MySQL->GCS, GCS->BQ operators (@criccomini)
- #1073 Fixing small issue with qbol operator and hook (@msumit)
- #1068 Add a new hook for google datastore (@mtagle)
- #1065 dag pausing should pause queued tasks as well (@mistercrunch)
- #1067 Add two methods to BigQueryBaseCursor: (@mtagle)
- #1064 Add Thumbtack to organizations using Airflow (@natekupp)
- #1063 Documenting task details doc_ feature (@mistercrunch)
- #1049 Allow the use of the autoconfig client (@bolkedebruin)
- #1056 Add output encoding option to BashOperator (@Attsun1031)
- #996 Added the dst filename to template_fields GoogleCloudStorageDownloadOperator (@0xR)
- #1051 Running unit tests with local executor (@mistercrunch)
- #1008 Add FTPSHook class. (@geeknam)
- #1055 Improve [Hide/Show all series] perforamce (@lumengxi)
- #1054 CLI's trigger_dag now accepts --conf as json (@mistercrunch)
- #1053 Add Kogan.com to the list of users (@geeknam)
- #1046 Documenting the cluster policy feature (@mistercrunch)
- #1044 Updating the Readme with a link to the TriggerDagRunOperator post (@r39132)
- #1043 Adding an example to illustrate the TriggerDagRunOperator (@r39132)
- #1039 Only set headers and delimiters for CSV exports in Google BigQuery hook (@criccomini)
- #1026 Minor documentation tweaks to the FAQ under the fernet key section (@r39132)
- #1025 Add notes on connection password encryption (@d-lee)
- #1018 add SSL support for SMTP (@bbrumi)
- #1020 Add BigQuery copy operator. (@criccomini)
- #964 Clean test database out in between unit test runs (@nicktrav)
- #1019 Add direct dependencies for Google cloud contribs (@criccomini)
- #985 [airflow][presto] Gracefully handle 503 errors and avoid eval() (@airbnb)
- #1013 Fixed issue 1012: pool not used with celery executor (@rdavison)
- #1011 drop the tmp table after ingestion (@dayzzz)
- #995 Fix LDAP error messages when login fails. (@criccomini)
- #1006 Fix forgetting to expose yesterday_ds_nodash and tomorrow_ds_nodash (@0xR)
- #1003 Update to the README such as adding Hootsuite (@r39132)
- #998 Pedantic documentation tweaks (@joshmarlow)
- #940 Refresh border coloring in graph view without having to refresh the entire page (@dinocow)
- #987 Add logout button to Airflow (@criccomini)
- #930 When either data_profiler_filter or superuser_filter aren't defined,… (@mtagle)
- #994 there could be dot in the key string, which is illegal in the hive ta… (@dayzzz)
- #993 Added yesterday_ds_nodash and tommorow_ds_nodash (@0xR)
- #992 Rename BashOperator.xcom_push member to avoid collision with parent class (@seregasheypak)
- #978 Fixing conflicting params in default_args (@mistercrunch, @nicktrav)
- #984 Add tests for params handling in Dag construction (@nicktrav)
- #986 [documentation] document that max_active_runs can prevent a DAG from running (@aoen)
- #983 Added destination_dataset_table to template_fieds of bigquery_operator (@0xR)
- #981 Add BigQuery PEP 249 support (@criccomini)
- #980 Support user-defined macros and params in dry-run backfills with task… (@r39132)
- #976 More verbose logging for are_dependencies_met when called from run (@mistercrunch)
- #944 Fix statuses in dag list for dags with dag_ids prefixed by a number (@wil5for)
- #942 Set effective user of (web)hdfs hooks using connection config, optionally overridden by constructor (@xadhoom)
- #965 Adding mock lib to devel extras_require (@mistercrunch)
- #963 Only schedule DagRuns between start and end dates (@nicktrav)
- [#948](https://git...
1.6.2
1.6.2
is mostly a release with bug fixes and a few relatively minor features. Thanks to all contributors!
v1.6.1
- Scheduler bugfix
v1.6.0
v1.6.0 brings:
- [scheduler] the notion of DAG runs allows for more parallelization, and controls around scheduling (max number of running task instance per DAG, max number of DAG runs to be evaluated for scheduling, ...)
- [scheduler] support for "externally triggered" DAG runs, or DAGs that run on demand as opposed to on a schedule
- [scheduler] support for cron-like syntax (as in: "0 0 * * *") and macros (as in "@montlhly", "@hourly", "@Weekly", ...)
- UI changes related to new scheduler features
- LDAP authentication for the web UI, more extensible authentication backend
- UI activity logging
- WebHdfsSensor and Hook for HDFS interactions that are py3 compatible
- Continuous integration with Travis-UI and Coveralls
- ShortCircuitOperator
- python3 compatibility!
- Tons of bug fixes and incremental improvements
- + all the things I'm forgetting while browsing through an infinite list of commits!
Thanks to everyone in the community for all the PRs (stellar contributions!), comments and issue reporting.
v1.5.2
This is probably missing some important items, but most of it should be captured
- Initial setup on Travis CI provides continuous Integration, automated testing, no Hadoop unit tests just yet, but that is coming up
- Unit tests coverage reports with coverals
- Better py3 compatibility, unit tests run against both 2.7 ad 3.4 and we're now using the
from __future__
imports to prevent regression - A MesosExecutor to run your tasks on Mesos
- Some Kerberos integration for Hive / Hadoop
- DAG's graph view legend for states are now toggles to highlight tasks in specific states
- Automated zombie task instance killing as part of the scheduler's routine. The process looks for running tasks that don't have a heartbeat and kills them
- MySqlHook bulk load option
- More options in the UI's Mark Success form
- MySQL uses
mysqlclient
lib instead ofmysql-python
- Using gunicorn instead of tornado as the wsgi web server
- OracleHook
- FTPHook
- Much more! tons of bug fixes and usability improvements.
1.5.1
Bugfix around XCom table creation timestamp issue
1.5.0
v1.5.0 is a huge release. Tons of important features.
Make sure to run airflow upgradedb
after you upgrade
Improvements:
- @jlowin landed a feature to communicate information across tasks called XCom, more information here
- @neovintage integrated Airflow with Alembic, making database migration easy, run
airflow upgradedb
to get your database up to date as you upgrade Airflow - The dependency engine is now more flexible, allowing for trigger rules, before this update, tasks would only be triggered when all dependencies were successful (still the default), now you can set tasks to trigger when a single parent succeeds, when one fails, when they all fail, or to fire regardless of their dependencies:
- @neovintage added support for connection to be defined in environment variables, allowing to bypass or override the metadata database
- @jlowin improved the tree view to render a non expendable when trees go above 5k nodes
- The Druid hook and HiveToDruidTransfer are maturing and becoming production grade
- @kapil-malik added a UI feature where some users can only see their own DAGs while superusers can still see all, this feature is turned off by default
- Allowing all operators and some preoperators to receive list of sql statements to be execute as a chain
- Improved the task_instance table to log the operator name and queued timestamp
- Passwords in the metadata can now be encrypted
- Improvements to the unit tests (speed + coverage)
- Bugfixes + more