mirror of
https://github.com/apache/airflow.git
synced 2026-03-26 15:28:46 +00:00
We would like to use the config.yml approach as our main source of truth
for airflow configuration. So far it has been split amongst multiple
files:
* confg.yml -> descroption
* default_airflow.cfg -> JINJA template to keep cofiguration, examples
and description (used to generate airflow.cfg when airflow starts)
* default_test.cfg -> storing test-only configuration used in some
test cases - used to generate unittest.cfg
* scripts/in_container/airflow_ci.cfg where dCI-specific configuration
overwrote the unittest.cfg
This change consolidates it all into unified appraoch, where all
configuration information is retrieved from .yml files stored in
config_templates. No more additional template files processed by
JINJA, no more special CI versions of it, no more unittestdb.cfg file
where such configuration would be generated, no more unittestdb to
be used separately for tests.
* The default_*.cfg files were not real configuration files, becuase
they were really JINJA templates and it got peoeple confused when
copying the files. This change leaves the file empty with the
comment that instructs the user how they can get the default
configuration.
* The default_airflow.cfg is gone and instead, we have a way to
show defaults via `airflow config list --defaults` command
* Unittest config is generated on-the-flight using defaults stored
in confg_templates. constituing a single place where they need
to be changed for the tests to use them
* internally, description of the configuration is stored in
AirflowConfigurationParser and used by the parser to generate
the default configuration when needed.
* we got rid of `{{{{` in templated config defaults by marking
the templates with ``is_template`` and getting rid of processing
those entries with regular formatting when generating the default
values. This only concerns defaults from config.yml. Reading
those configuration entries from file is unaffected.
This change aims to be 100% backwards compatible with the previous
implementation when it comes to functionality, even if internals
changed. It also does not add provider-specific changes that are
coming separately.
The only changes visible to the user are:
* generated airflow.cfg is slightly more
readable and displays names of variables that can be used to override
each configuration (which is very useful for copy&pasting)
* user are advised, instead of copying the default_airflow.cfg to use
`airflow config list --defaults` to generate production config. This
configuration has all the entries commented out, so that they can
selectively uncomment and change the values they want. This is now
promoted as "best practice" in the documentation.
42 lines
1.5 KiB
YAML
42 lines
1.5 KiB
YAML
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
---
|
|
version: 2
|
|
mergeable:
|
|
- when: pull_request.*, pull_request_review.*
|
|
validate:
|
|
- do: title
|
|
# Do not merge when it is marked work in progress (WIP)
|
|
or:
|
|
- must_exclude:
|
|
regex: \[WIP\]|\bWIP\b|🚧
|
|
message: This is work in progress. Do not merge yet.
|
|
- must_exclude:
|
|
regex: ^\[DONT-MERGE\]
|
|
message: Do not merge this PR yet.
|
|
- do: label
|
|
must_exclude:
|
|
regex: 'wip'
|
|
- do: label
|
|
must_exclude:
|
|
regex: 'dont-merge'
|
|
# If package.json is updated, so should yarn.lock
|
|
- do: dependent
|
|
changed:
|
|
file: 'package.json'
|
|
files: ['yarn.lock']
|