diff --git a/.github/actions/build-prod-images/action.yml b/.github/actions/build-prod-images/action.yml
index 74667f0de15ad..f9164f357da02 100644
--- a/.github/actions/build-prod-images/action.yml
+++ b/.github/actions/build-prod-images/action.yml
@@ -46,9 +46,9 @@ runs:
run: >
breeze release-management prepare-airflow-package
--package-format wheel --version-suffix-for-pypi dev0
- - name: "Move dist packages to docker-context files"
+ - name: "Copy dist packages to docker-context files"
shell: bash
- run: mv -v ./dist/*.whl ./docker-context-files
+ run: cp -v --no-preserve=mode,ownership ./dist/*.whl ./docker-context-files
- name: "Download constraints from the CI build"
uses: actions/download-artifact@v3
with:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7a9ffb22515dc..ad5388664d620 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1930,8 +1930,8 @@ jobs:
DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
COMMIT_SHA: ${{ github.sha }}
if: matrix.platform == 'linux/amd64'
- - name: "Move dist packages to docker-context files"
- run: mv -v ./dist/*.whl ./docker-context-files
+ - name: "Copy dist packages to docker-context files"
+ run: cp -v --no-preserve=mode,ownership ./dist/*.whl ./docker-context-files
- name: "Push PROD cache ${{ matrix.python-version }} ${{ matrix.platform }}"
run: >
breeze prod-image build
diff --git a/airflow/provider.yaml.schema.json b/airflow/provider.yaml.schema.json
index da32cd1c401e7..be589f5490fec 100644
--- a/airflow/provider.yaml.schema.json
+++ b/airflow/provider.yaml.schema.json
@@ -380,6 +380,16 @@
"type": "string"
}
}
+ },
+ "source-date-epoch": {
+ "type": "integer",
+ "description": "Source date epoch - seconds since epoch (gmtime) when the release documentation was prepared. Used to generate reproducible package builds with flint.",
+
+ "minimum": 0,
+ "default": 0,
+ "examples": [
+ 1609459200
+ ]
}
},
"additionalProperties": false,
@@ -442,6 +452,7 @@
"package-name",
"description",
"suspended",
+ "source-date-epoch",
"dependencies",
"versions"
]
diff --git a/airflow/providers/airbyte/provider.yaml b/airflow/providers/airbyte/provider.yaml
index fb80c9872ebf4..7eabe2cfbdb39 100644
--- a/airflow/providers/airbyte/provider.yaml
+++ b/airflow/providers/airbyte/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Airbyte `__
suspended: false
+source-date-epoch: 1700148043
versions:
- 3.4.0
- 3.3.2
diff --git a/airflow/providers/alibaba/provider.yaml b/airflow/providers/alibaba/provider.yaml
index 5a596fd31a877..2e0664e1b03cd 100644
--- a/airflow/providers/alibaba/provider.yaml
+++ b/airflow/providers/alibaba/provider.yaml
@@ -22,6 +22,7 @@ description: |
Alibaba Cloud integration (including `Alibaba Cloud `__).
suspended: false
+source-date-epoch: 1700148044
versions:
- 2.6.0
- 2.5.3
diff --git a/airflow/providers/amazon/provider.yaml b/airflow/providers/amazon/provider.yaml
index 3b357520a02b2..7873c40f31528 100644
--- a/airflow/providers/amazon/provider.yaml
+++ b/airflow/providers/amazon/provider.yaml
@@ -22,6 +22,7 @@ description: |
Amazon integration (including `Amazon Web Services (AWS) `__).
suspended: false
+source-date-epoch: 1700148045
versions:
- 8.11.0
- 8.10.0
diff --git a/airflow/providers/apache/beam/provider.yaml b/airflow/providers/apache/beam/provider.yaml
index dc42d34e8c408..6910e281fa55a 100644
--- a/airflow/providers/apache/beam/provider.yaml
+++ b/airflow/providers/apache/beam/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Beam `__.
suspended: false
+source-date-epoch: 1700148046
versions:
- 5.3.0
- 5.2.3
diff --git a/airflow/providers/apache/cassandra/provider.yaml b/airflow/providers/apache/cassandra/provider.yaml
index e430d345348ef..a427c959e8069 100644
--- a/airflow/providers/apache/cassandra/provider.yaml
+++ b/airflow/providers/apache/cassandra/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Cassandra `__.
suspended: false
+source-date-epoch: 1700148046
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/apache/drill/provider.yaml b/airflow/providers/apache/drill/provider.yaml
index fb9314c262a8d..c5b50280b41ae 100644
--- a/airflow/providers/apache/drill/provider.yaml
+++ b/airflow/providers/apache/drill/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Drill `__.
suspended: false
+source-date-epoch: 1700148047
versions:
- 2.5.0
- 2.4.4
diff --git a/airflow/providers/apache/druid/provider.yaml b/airflow/providers/apache/druid/provider.yaml
index 0e982d67276b1..e9c46340ddf83 100644
--- a/airflow/providers/apache/druid/provider.yaml
+++ b/airflow/providers/apache/druid/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Druid `__.
suspended: false
+source-date-epoch: 1700148047
versions:
- 3.6.0
- 3.5.0
diff --git a/airflow/providers/apache/flink/provider.yaml b/airflow/providers/apache/flink/provider.yaml
index 0d6cda3412eae..99c8041841f98 100644
--- a/airflow/providers/apache/flink/provider.yaml
+++ b/airflow/providers/apache/flink/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Flink `__
suspended: false
+source-date-epoch: 1700148048
versions:
- 1.2.0
- 1.1.3
diff --git a/airflow/providers/apache/hdfs/provider.yaml b/airflow/providers/apache/hdfs/provider.yaml
index bfa836c13456c..5a52e6ebb4b7a 100644
--- a/airflow/providers/apache/hdfs/provider.yaml
+++ b/airflow/providers/apache/hdfs/provider.yaml
@@ -23,6 +23,7 @@ description: |
and `WebHDFS `__.
suspended: false
+source-date-epoch: 1700148048
versions:
- 4.2.0
- 4.1.1
diff --git a/airflow/providers/apache/hive/provider.yaml b/airflow/providers/apache/hive/provider.yaml
index 82e8f1e5e0652..4b2dbf3958998 100644
--- a/airflow/providers/apache/hive/provider.yaml
+++ b/airflow/providers/apache/hive/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Hive `__
suspended: false
+source-date-epoch: 1700148049
versions:
- 6.2.0
- 6.1.6
diff --git a/airflow/providers/apache/impala/provider.yaml b/airflow/providers/apache/impala/provider.yaml
index 77a6ec492464f..a997f3053f79d 100644
--- a/airflow/providers/apache/impala/provider.yaml
+++ b/airflow/providers/apache/impala/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Impala `__.
suspended: false
+source-date-epoch: 1700148050
versions:
- 1.2.0
- 1.1.3
diff --git a/airflow/providers/apache/kafka/provider.yaml b/airflow/providers/apache/kafka/provider.yaml
index ab8ad48f04a24..674b48380c4e1 100644
--- a/airflow/providers/apache/kafka/provider.yaml
+++ b/airflow/providers/apache/kafka/provider.yaml
@@ -20,6 +20,7 @@ package-name: apache-airflow-providers-apache-kafka
name: Apache Kafka
suspended: false
+source-date-epoch: 1700148050
description: |
`Apache Kafka `__
versions:
diff --git a/airflow/providers/apache/kylin/provider.yaml b/airflow/providers/apache/kylin/provider.yaml
index 07af03e1c6015..fe36480fa3c1a 100644
--- a/airflow/providers/apache/kylin/provider.yaml
+++ b/airflow/providers/apache/kylin/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Kylin `__
suspended: false
+source-date-epoch: 1700148051
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/apache/livy/provider.yaml b/airflow/providers/apache/livy/provider.yaml
index 85f1d03973868..b62796e54753c 100644
--- a/airflow/providers/apache/livy/provider.yaml
+++ b/airflow/providers/apache/livy/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Livy `__
suspended: false
+source-date-epoch: 1700148051
versions:
- 3.6.0
- 3.5.4
diff --git a/airflow/providers/apache/pig/provider.yaml b/airflow/providers/apache/pig/provider.yaml
index e2f3571320b57..0dbe8af52af4e 100644
--- a/airflow/providers/apache/pig/provider.yaml
+++ b/airflow/providers/apache/pig/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Pig `__
suspended: false
+source-date-epoch: 1700148052
versions:
- 4.2.0
- 4.1.2
diff --git a/airflow/providers/apache/pinot/provider.yaml b/airflow/providers/apache/pinot/provider.yaml
index 347c5c3d59930..23c6e8a3fab08 100644
--- a/airflow/providers/apache/pinot/provider.yaml
+++ b/airflow/providers/apache/pinot/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Pinot `__
suspended: false
+source-date-epoch: 1700148052
versions:
- 4.2.0
- 4.1.4
diff --git a/airflow/providers/apache/spark/provider.yaml b/airflow/providers/apache/spark/provider.yaml
index 31f2728a5c1b8..d819d56a3888b 100644
--- a/airflow/providers/apache/spark/provider.yaml
+++ b/airflow/providers/apache/spark/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Spark `__
suspended: false
+source-date-epoch: 1700148053
versions:
- 4.4.0
- 4.3.0
diff --git a/airflow/providers/apache/sqoop/provider.yaml b/airflow/providers/apache/sqoop/provider.yaml
index f959f50cb3b67..80934eb58704c 100644
--- a/airflow/providers/apache/sqoop/provider.yaml
+++ b/airflow/providers/apache/sqoop/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Apache Sqoop `__
suspended: false
+source-date-epoch: 1700148053
versions:
- 4.1.0
- 4.0.0
diff --git a/airflow/providers/apprise/provider.yaml b/airflow/providers/apprise/provider.yaml
index 90f3cbcdb4a78..248a546bb0698 100644
--- a/airflow/providers/apprise/provider.yaml
+++ b/airflow/providers/apprise/provider.yaml
@@ -24,6 +24,7 @@ description: |
`Apprise `__
suspended: false
+source-date-epoch: 1700148054
versions:
- 1.1.0
diff --git a/airflow/providers/arangodb/provider.yaml b/airflow/providers/arangodb/provider.yaml
index 5e4b602b3f5e4..b5a83e7e90b95 100644
--- a/airflow/providers/arangodb/provider.yaml
+++ b/airflow/providers/arangodb/provider.yaml
@@ -26,6 +26,7 @@ dependencies:
- python-arango>=7.3.2
suspended: false
+source-date-epoch: 1700148054
versions:
- 2.3.0
- 2.2.2
diff --git a/airflow/providers/asana/provider.yaml b/airflow/providers/asana/provider.yaml
index 8c1b8a0430bee..4a8bd8777c41b 100644
--- a/airflow/providers/asana/provider.yaml
+++ b/airflow/providers/asana/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Asana `__
suspended: false
+source-date-epoch: 1700148055
versions:
- 2.3.0
- 2.2.2
diff --git a/airflow/providers/atlassian/jira/provider.yaml b/airflow/providers/atlassian/jira/provider.yaml
index 6d3e1c9cc9f90..04d0a7a36d3b5 100644
--- a/airflow/providers/atlassian/jira/provider.yaml
+++ b/airflow/providers/atlassian/jira/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Atlassian Jira `__
suspended: false
+source-date-epoch: 1700148055
versions:
- 2.2.0
- 2.1.1
diff --git a/airflow/providers/celery/provider.yaml b/airflow/providers/celery/provider.yaml
index ff9e767c9df83..74f63bb4e6f88 100644
--- a/airflow/providers/celery/provider.yaml
+++ b/airflow/providers/celery/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Celery `__
suspended: false
+source-date-epoch: 1700148056
versions:
- 3.4.1
- 3.4.0
diff --git a/airflow/providers/cloudant/provider.yaml b/airflow/providers/cloudant/provider.yaml
index 32f79df6c13e1..11a99600d19b5 100644
--- a/airflow/providers/cloudant/provider.yaml
+++ b/airflow/providers/cloudant/provider.yaml
@@ -22,6 +22,7 @@ description: |
`IBM Cloudant `__
suspended: false
+source-date-epoch: 1700148056
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/cncf/kubernetes/provider.yaml b/airflow/providers/cncf/kubernetes/provider.yaml
index 4ea8a840879bf..cf1c107843977 100644
--- a/airflow/providers/cncf/kubernetes/provider.yaml
+++ b/airflow/providers/cncf/kubernetes/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Kubernetes `__
suspended: false
+source-date-epoch: 1700148057
versions:
- 7.9.0
- 7.8.0
diff --git a/airflow/providers/cohere/provider.yaml b/airflow/providers/cohere/provider.yaml
index 55500e0e760ff..8a6b12f73acf0 100644
--- a/airflow/providers/cohere/provider.yaml
+++ b/airflow/providers/cohere/provider.yaml
@@ -24,6 +24,7 @@ description: |
`Cohere `__
suspended: false
+source-date-epoch: 1700148058
versions:
- 1.0.0
diff --git a/airflow/providers/common/io/provider.yaml b/airflow/providers/common/io/provider.yaml
index 1e1ecb392e294..fdc8134090b2a 100644
--- a/airflow/providers/common/io/provider.yaml
+++ b/airflow/providers/common/io/provider.yaml
@@ -22,6 +22,7 @@ description: |
``Common IO Provider``
suspended: false
+source-date-epoch: 1700148058
versions:
- 1.0.1
- 1.0.0
diff --git a/airflow/providers/common/sql/provider.yaml b/airflow/providers/common/sql/provider.yaml
index 4dc1e703262a1..c44888925045f 100644
--- a/airflow/providers/common/sql/provider.yaml
+++ b/airflow/providers/common/sql/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Common SQL Provider `__
suspended: false
+source-date-epoch: 1700148058
versions:
- 1.8.1
- 1.8.0
diff --git a/airflow/providers/daskexecutor/provider.yaml b/airflow/providers/daskexecutor/provider.yaml
index 76e67944b88e9..5516edf827e1f 100644
--- a/airflow/providers/daskexecutor/provider.yaml
+++ b/airflow/providers/daskexecutor/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Dask `__
suspended: false
+source-date-epoch: 1700148059
versions:
- 1.1.0
- 1.0.1
diff --git a/airflow/providers/databricks/provider.yaml b/airflow/providers/databricks/provider.yaml
index 2890561e3814b..81ce8ee1b8454 100644
--- a/airflow/providers/databricks/provider.yaml
+++ b/airflow/providers/databricks/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Databricks `__
suspended: false
+source-date-epoch: 1700148060
versions:
- 5.0.0
- 4.7.0
diff --git a/airflow/providers/datadog/provider.yaml b/airflow/providers/datadog/provider.yaml
index 7286c718fec67..6a757e377e446 100644
--- a/airflow/providers/datadog/provider.yaml
+++ b/airflow/providers/datadog/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Datadog `__
suspended: false
+source-date-epoch: 1700148060
versions:
- 3.4.0
- 3.3.2
diff --git a/airflow/providers/dbt/cloud/provider.yaml b/airflow/providers/dbt/cloud/provider.yaml
index 76d181253f855..acc74672c22b6 100644
--- a/airflow/providers/dbt/cloud/provider.yaml
+++ b/airflow/providers/dbt/cloud/provider.yaml
@@ -22,6 +22,7 @@ description: |
`dbt Cloud `__
suspended: false
+source-date-epoch: 1700148061
versions:
- 3.4.0
- 3.3.0
diff --git a/airflow/providers/dingding/provider.yaml b/airflow/providers/dingding/provider.yaml
index 17a92cac77080..7a418f95a67f6 100644
--- a/airflow/providers/dingding/provider.yaml
+++ b/airflow/providers/dingding/provider.yaml
@@ -22,6 +22,7 @@ description: |
`DingTalk `__
suspended: false
+source-date-epoch: 1700148061
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/discord/provider.yaml b/airflow/providers/discord/provider.yaml
index dc91840d8a1c2..465067a78ca2f 100644
--- a/airflow/providers/discord/provider.yaml
+++ b/airflow/providers/discord/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Discord `__
suspended: false
+source-date-epoch: 1700148062
versions:
- 3.4.1
- 3.4.0
diff --git a/airflow/providers/docker/provider.yaml b/airflow/providers/docker/provider.yaml
index d54f2db7aedbd..bbf4553fb2cfe 100644
--- a/airflow/providers/docker/provider.yaml
+++ b/airflow/providers/docker/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Docker `__
suspended: false
+source-date-epoch: 1700148062
versions:
- 3.8.1
- 3.8.0
diff --git a/airflow/providers/elasticsearch/provider.yaml b/airflow/providers/elasticsearch/provider.yaml
index dc7e7829c1173..8b7704892619f 100644
--- a/airflow/providers/elasticsearch/provider.yaml
+++ b/airflow/providers/elasticsearch/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Elasticsearch `__
suspended: false
+source-date-epoch: 1700148063
versions:
- 5.1.1
- 5.1.0
diff --git a/airflow/providers/exasol/provider.yaml b/airflow/providers/exasol/provider.yaml
index 8314c8960a7fe..f193510a7eb1f 100644
--- a/airflow/providers/exasol/provider.yaml
+++ b/airflow/providers/exasol/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Exasol `__
suspended: false
+source-date-epoch: 1700148064
versions:
- 4.3.0
- 4.2.5
diff --git a/airflow/providers/facebook/provider.yaml b/airflow/providers/facebook/provider.yaml
index 46aa33f244d47..a1427c9a6e076 100644
--- a/airflow/providers/facebook/provider.yaml
+++ b/airflow/providers/facebook/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Facebook Ads `__
suspended: false
+source-date-epoch: 1700148064
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/ftp/provider.yaml b/airflow/providers/ftp/provider.yaml
index 226caf7ca85f2..dcdeb06e7b7b1 100644
--- a/airflow/providers/ftp/provider.yaml
+++ b/airflow/providers/ftp/provider.yaml
@@ -22,6 +22,7 @@ description: |
`File Transfer Protocol (FTP) `__
suspended: false
+source-date-epoch: 1700148065
versions:
- 3.6.1
- 3.6.0
diff --git a/airflow/providers/github/provider.yaml b/airflow/providers/github/provider.yaml
index 962acdb06745b..5737413b192a8 100644
--- a/airflow/providers/github/provider.yaml
+++ b/airflow/providers/github/provider.yaml
@@ -29,6 +29,7 @@ dependencies:
- PyGithub!=1.58
suspended: false
+source-date-epoch: 1700148065
versions:
- 2.4.0
- 2.3.2
diff --git a/airflow/providers/google/provider.yaml b/airflow/providers/google/provider.yaml
index 4287801d2b204..0f72165a3014e 100644
--- a/airflow/providers/google/provider.yaml
+++ b/airflow/providers/google/provider.yaml
@@ -29,6 +29,7 @@ description: |
- `Google Workspace `__ (formerly Google Suite)
suspended: false
+source-date-epoch: 1700148066
versions:
- 10.11.1
- 10.11.0
diff --git a/airflow/providers/grpc/provider.yaml b/airflow/providers/grpc/provider.yaml
index e5f345174857c..9f6b19c3ca205 100644
--- a/airflow/providers/grpc/provider.yaml
+++ b/airflow/providers/grpc/provider.yaml
@@ -22,6 +22,7 @@ description: |
`gRPC `__
suspended: false
+source-date-epoch: 1700148067
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/hashicorp/provider.yaml b/airflow/providers/hashicorp/provider.yaml
index 68c26ccb6fb44..81974af832119 100644
--- a/airflow/providers/hashicorp/provider.yaml
+++ b/airflow/providers/hashicorp/provider.yaml
@@ -22,6 +22,7 @@ description: |
Hashicorp including `Hashicorp Vault `__
suspended: false
+source-date-epoch: 1700148068
versions:
- 3.5.0
- 3.4.3
diff --git a/airflow/providers/http/provider.yaml b/airflow/providers/http/provider.yaml
index ab9ca16c06849..183ecf1351a61 100644
--- a/airflow/providers/http/provider.yaml
+++ b/airflow/providers/http/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Hypertext Transfer Protocol (HTTP) `__
suspended: false
+source-date-epoch: 1700148068
versions:
- 4.7.0
- 4.6.0
diff --git a/airflow/providers/imap/provider.yaml b/airflow/providers/imap/provider.yaml
index eae2b360cb8bd..9701bd392ba5b 100644
--- a/airflow/providers/imap/provider.yaml
+++ b/airflow/providers/imap/provider.yaml
@@ -23,6 +23,7 @@ description: |
`Internet Message Access Protocol (IMAP) `__
suspended: false
+source-date-epoch: 1700148069
versions:
- 3.4.0
- 3.3.2
diff --git a/airflow/providers/influxdb/provider.yaml b/airflow/providers/influxdb/provider.yaml
index 0282c73931681..9a8f105afb1b5 100644
--- a/airflow/providers/influxdb/provider.yaml
+++ b/airflow/providers/influxdb/provider.yaml
@@ -29,6 +29,7 @@ dependencies:
- requests>=2.26.0
suspended: false
+source-date-epoch: 1700148070
versions:
- 2.3.0
- 2.2.3
diff --git a/airflow/providers/jdbc/provider.yaml b/airflow/providers/jdbc/provider.yaml
index 8948dfeb50270..4182086dd320b 100644
--- a/airflow/providers/jdbc/provider.yaml
+++ b/airflow/providers/jdbc/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Java Database Connectivity (JDBC) `__
suspended: false
+source-date-epoch: 1700148070
versions:
- 4.1.0
- 4.0.2
diff --git a/airflow/providers/jenkins/provider.yaml b/airflow/providers/jenkins/provider.yaml
index 12538e796f5f2..0ed5868dbf6f9 100644
--- a/airflow/providers/jenkins/provider.yaml
+++ b/airflow/providers/jenkins/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Jenkins `__
suspended: false
+source-date-epoch: 1700148071
versions:
- 3.4.0
- 3.3.2
diff --git a/airflow/providers/microsoft/azure/provider.yaml b/airflow/providers/microsoft/azure/provider.yaml
index 6679c8b4de408..5d8b449bed4d1 100644
--- a/airflow/providers/microsoft/azure/provider.yaml
+++ b/airflow/providers/microsoft/azure/provider.yaml
@@ -20,6 +20,7 @@ name: Microsoft Azure
description: |
`Microsoft Azure `__
suspended: false
+source-date-epoch: 1700148071
versions:
- 8.2.0
- 8.1.0
diff --git a/airflow/providers/microsoft/mssql/provider.yaml b/airflow/providers/microsoft/mssql/provider.yaml
index ef61b852d4966..f0aa626c252b7 100644
--- a/airflow/providers/microsoft/mssql/provider.yaml
+++ b/airflow/providers/microsoft/mssql/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Microsoft SQL Server (MSSQL) `__
suspended: false
+source-date-epoch: 1700148072
versions:
- 3.5.0
- 3.4.2
diff --git a/airflow/providers/microsoft/psrp/provider.yaml b/airflow/providers/microsoft/psrp/provider.yaml
index bb283157a3779..a7dc6044331d4 100644
--- a/airflow/providers/microsoft/psrp/provider.yaml
+++ b/airflow/providers/microsoft/psrp/provider.yaml
@@ -24,6 +24,7 @@ description: |
`__.
suspended: false
+source-date-epoch: 1700148073
versions:
- 2.4.0
- 2.3.2
diff --git a/airflow/providers/microsoft/winrm/provider.yaml b/airflow/providers/microsoft/winrm/provider.yaml
index c56b2b6dcfb68..7fbd5f8cc393a 100644
--- a/airflow/providers/microsoft/winrm/provider.yaml
+++ b/airflow/providers/microsoft/winrm/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Windows Remote Management (WinRM) `__
suspended: false
+source-date-epoch: 1700148073
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/mongo/provider.yaml b/airflow/providers/mongo/provider.yaml
index 53a441627c2e0..32834c5587b79 100644
--- a/airflow/providers/mongo/provider.yaml
+++ b/airflow/providers/mongo/provider.yaml
@@ -22,6 +22,7 @@ description: |
`MongoDB `__
suspended: false
+source-date-epoch: 1700148074
versions:
- 3.4.0
- 3.3.0
diff --git a/airflow/providers/mysql/provider.yaml b/airflow/providers/mysql/provider.yaml
index 7b73fef4f7b3b..b2a744b8e6fb3 100644
--- a/airflow/providers/mysql/provider.yaml
+++ b/airflow/providers/mysql/provider.yaml
@@ -22,6 +22,7 @@ description: |
`MySQL `__
suspended: false
+source-date-epoch: 1700148074
versions:
- 5.4.0
- 5.3.1
diff --git a/airflow/providers/neo4j/provider.yaml b/airflow/providers/neo4j/provider.yaml
index b00407208c445..c9f5d9457c3a2 100644
--- a/airflow/providers/neo4j/provider.yaml
+++ b/airflow/providers/neo4j/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Neo4j `__
suspended: false
+source-date-epoch: 1700148075
versions:
- 3.4.0
- 3.3.3
diff --git a/airflow/providers/odbc/provider.yaml b/airflow/providers/odbc/provider.yaml
index 513d089b22841..21facc2fd089d 100644
--- a/airflow/providers/odbc/provider.yaml
+++ b/airflow/providers/odbc/provider.yaml
@@ -22,6 +22,7 @@ description: |
`ODBC `__
suspended: false
+source-date-epoch: 1700148076
versions:
- 4.1.0
- 4.0.0
diff --git a/airflow/providers/openai/provider.yaml b/airflow/providers/openai/provider.yaml
index ffb07de7bbe9c..8884108ca6515 100644
--- a/airflow/providers/openai/provider.yaml
+++ b/airflow/providers/openai/provider.yaml
@@ -24,6 +24,7 @@ description: |
`OpenAI `__
suspended: false
+source-date-epoch: 1700148076
versions:
- 1.0.0
diff --git a/airflow/providers/openfaas/provider.yaml b/airflow/providers/openfaas/provider.yaml
index 3eb521d163efe..3c6b73f514e4f 100644
--- a/airflow/providers/openfaas/provider.yaml
+++ b/airflow/providers/openfaas/provider.yaml
@@ -22,6 +22,7 @@ description: |
`OpenFaaS `__
suspended: false
+source-date-epoch: 1700148077
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/openlineage/provider.yaml b/airflow/providers/openlineage/provider.yaml
index 5dd878d5fd0fd..8fed707c37671 100644
--- a/airflow/providers/openlineage/provider.yaml
+++ b/airflow/providers/openlineage/provider.yaml
@@ -22,6 +22,7 @@ description: |
`OpenLineage `__
suspended: false
+source-date-epoch: 1700148077
versions:
- 1.2.1
- 1.2.0
diff --git a/airflow/providers/opensearch/provider.yaml b/airflow/providers/opensearch/provider.yaml
index 270d7cd2085dd..a0bddd79d5103 100644
--- a/airflow/providers/opensearch/provider.yaml
+++ b/airflow/providers/opensearch/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Opensearch `__
suspended: false
+source-date-epoch: 1700148078
versions:
- 1.0.0
diff --git a/airflow/providers/opsgenie/provider.yaml b/airflow/providers/opsgenie/provider.yaml
index da89196f34714..d60f55f6d7d98 100644
--- a/airflow/providers/opsgenie/provider.yaml
+++ b/airflow/providers/opsgenie/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Opsgenie `__
suspended: false
+source-date-epoch: 1700148078
versions:
- 5.2.0
- 5.1.1
diff --git a/airflow/providers/oracle/provider.yaml b/airflow/providers/oracle/provider.yaml
index 3befc752e686d..2a95c4138ab78 100644
--- a/airflow/providers/oracle/provider.yaml
+++ b/airflow/providers/oracle/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Oracle `__
suspended: false
+source-date-epoch: 1700148079
versions:
- 3.8.0
- 3.7.4
diff --git a/airflow/providers/pagerduty/provider.yaml b/airflow/providers/pagerduty/provider.yaml
index 1a03a52deedc1..8d016282362e2 100644
--- a/airflow/providers/pagerduty/provider.yaml
+++ b/airflow/providers/pagerduty/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Pagerduty `__
suspended: false
+source-date-epoch: 1700148079
versions:
- 3.4.0
- 3.3.1
diff --git a/airflow/providers/papermill/provider.yaml b/airflow/providers/papermill/provider.yaml
index c85fde16772f5..8a7155ef585f2 100644
--- a/airflow/providers/papermill/provider.yaml
+++ b/airflow/providers/papermill/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Papermill `__
suspended: false
+source-date-epoch: 1700148080
versions:
- 3.4.0
- 3.2.1
diff --git a/airflow/providers/pgvector/provider.yaml b/airflow/providers/pgvector/provider.yaml
index 1fedfe141b745..37a6471994409 100644
--- a/airflow/providers/pgvector/provider.yaml
+++ b/airflow/providers/pgvector/provider.yaml
@@ -24,6 +24,7 @@ description: |
`pgvector `__
suspended: false
+source-date-epoch: 1700148080
versions:
- 1.0.0
diff --git a/airflow/providers/pinecone/provider.yaml b/airflow/providers/pinecone/provider.yaml
index f3050cfe229b6..853c223ae6a64 100644
--- a/airflow/providers/pinecone/provider.yaml
+++ b/airflow/providers/pinecone/provider.yaml
@@ -24,6 +24,7 @@ description: |
`Pinecone `__
suspended: false
+source-date-epoch: 1700148081
versions:
- 1.0.0
diff --git a/airflow/providers/plexus/provider.yaml b/airflow/providers/plexus/provider.yaml
index bb25339651f8d..70d2251e8fe47 100644
--- a/airflow/providers/plexus/provider.yaml
+++ b/airflow/providers/plexus/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Plexus `__
suspended: false
+source-date-epoch: 1700148081
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/postgres/provider.yaml b/airflow/providers/postgres/provider.yaml
index 78e716bfca4bd..4afc8bc6955df 100644
--- a/airflow/providers/postgres/provider.yaml
+++ b/airflow/providers/postgres/provider.yaml
@@ -22,6 +22,7 @@ description: |
`PostgreSQL `__
suspended: false
+source-date-epoch: 1700148082
versions:
- 5.8.0
- 5.7.1
diff --git a/airflow/providers/presto/provider.yaml b/airflow/providers/presto/provider.yaml
index 107375a3c8b17..fa20f97a7dd4e 100644
--- a/airflow/providers/presto/provider.yaml
+++ b/airflow/providers/presto/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Presto `__
suspended: false
+source-date-epoch: 1700148082
versions:
- 5.2.1
- 5.2.0
diff --git a/airflow/providers/redis/provider.yaml b/airflow/providers/redis/provider.yaml
index 486555ea54130..052fc17a18e35 100644
--- a/airflow/providers/redis/provider.yaml
+++ b/airflow/providers/redis/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Redis `__
suspended: false
+source-date-epoch: 1700148083
versions:
- 3.4.0
- 3.3.2
diff --git a/airflow/providers/salesforce/provider.yaml b/airflow/providers/salesforce/provider.yaml
index a494a6dc5c6a4..e68d51ab0bf21 100644
--- a/airflow/providers/salesforce/provider.yaml
+++ b/airflow/providers/salesforce/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Salesforce `__
suspended: false
+source-date-epoch: 1700148084
versions:
- 5.5.1
- 5.5.0
diff --git a/airflow/providers/samba/provider.yaml b/airflow/providers/samba/provider.yaml
index 27d673e8e360a..0822edb681cf7 100644
--- a/airflow/providers/samba/provider.yaml
+++ b/airflow/providers/samba/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Samba `__
suspended: false
+source-date-epoch: 1700148084
versions:
- 4.3.0
- 4.2.2
diff --git a/airflow/providers/segment/provider.yaml b/airflow/providers/segment/provider.yaml
index 22b17d9c3367c..81e68982f6bb8 100644
--- a/airflow/providers/segment/provider.yaml
+++ b/airflow/providers/segment/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Segment `__
suspended: false
+source-date-epoch: 1700148085
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/sendgrid/provider.yaml b/airflow/providers/sendgrid/provider.yaml
index f1e7e90c8feb2..e897e7af8cdd9 100644
--- a/airflow/providers/sendgrid/provider.yaml
+++ b/airflow/providers/sendgrid/provider.yaml
@@ -26,6 +26,7 @@ dependencies:
- sendgrid>=6.0.0
suspended: false
+source-date-epoch: 1700148085
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/sftp/provider.yaml b/airflow/providers/sftp/provider.yaml
index 073700ff354d9..af2be40c4aa7c 100644
--- a/airflow/providers/sftp/provider.yaml
+++ b/airflow/providers/sftp/provider.yaml
@@ -22,6 +22,7 @@ description: |
`SSH File Transfer Protocol (SFTP) `__
suspended: false
+source-date-epoch: 1700148086
versions:
- 4.7.0
- 4.6.1
diff --git a/airflow/providers/singularity/provider.yaml b/airflow/providers/singularity/provider.yaml
index 443ed1a98a7d4..52a83b896a03d 100644
--- a/airflow/providers/singularity/provider.yaml
+++ b/airflow/providers/singularity/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Singularity `__
suspended: false
+source-date-epoch: 1700148086
versions:
- 3.3.0
- 3.2.2
diff --git a/airflow/providers/slack/provider.yaml b/airflow/providers/slack/provider.yaml
index e1283fde7b284..73b7dc3e4e9d1 100644
--- a/airflow/providers/slack/provider.yaml
+++ b/airflow/providers/slack/provider.yaml
@@ -25,6 +25,7 @@ description: |
- `Slack Incoming Webhook `__
suspended: false
+source-date-epoch: 1700148087
versions:
- 8.4.0
- 8.3.0
diff --git a/airflow/providers/smtp/provider.yaml b/airflow/providers/smtp/provider.yaml
index 8ff02eb9faa9e..096eeed141185 100644
--- a/airflow/providers/smtp/provider.yaml
+++ b/airflow/providers/smtp/provider.yaml
@@ -23,6 +23,7 @@ description: |
`Simple Mail Transfer Protocol (SMTP) `__
suspended: false
+source-date-epoch: 1700148088
versions:
- 1.4.1
- 1.4.0
diff --git a/airflow/providers/snowflake/provider.yaml b/airflow/providers/snowflake/provider.yaml
index bdc5b3ef079cb..026ec5c14d038 100644
--- a/airflow/providers/snowflake/provider.yaml
+++ b/airflow/providers/snowflake/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Snowflake `__
suspended: false
+source-date-epoch: 1700148088
versions:
- 5.1.1
- 5.1.0
diff --git a/airflow/providers/sqlite/provider.yaml b/airflow/providers/sqlite/provider.yaml
index 6bde2aca1cd2f..4a20baf34239c 100644
--- a/airflow/providers/sqlite/provider.yaml
+++ b/airflow/providers/sqlite/provider.yaml
@@ -22,6 +22,7 @@ description: |
`SQLite `__
suspended: false
+source-date-epoch: 1700148089
versions:
- 3.5.0
- 3.4.3
diff --git a/airflow/providers/ssh/provider.yaml b/airflow/providers/ssh/provider.yaml
index 0944c7dda3375..0330f00b94732 100644
--- a/airflow/providers/ssh/provider.yaml
+++ b/airflow/providers/ssh/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Secure Shell (SSH) `__
suspended: false
+source-date-epoch: 1700148090
versions:
- 3.8.1
- 3.8.0
diff --git a/airflow/providers/tableau/provider.yaml b/airflow/providers/tableau/provider.yaml
index ef591d060b6bb..8e456d3140311 100644
--- a/airflow/providers/tableau/provider.yaml
+++ b/airflow/providers/tableau/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Tableau `__
suspended: false
+source-date-epoch: 1700148090
versions:
- 4.3.0
- 4.2.2
diff --git a/airflow/providers/tabular/provider.yaml b/airflow/providers/tabular/provider.yaml
index 267068b71d80e..1fc5dc57706f1 100644
--- a/airflow/providers/tabular/provider.yaml
+++ b/airflow/providers/tabular/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Tabular `__
suspended: false
+source-date-epoch: 1700148091
versions:
- 1.3.0
- 1.2.1
diff --git a/airflow/providers/telegram/provider.yaml b/airflow/providers/telegram/provider.yaml
index 36c59720f9d51..8241dc46560ad 100644
--- a/airflow/providers/telegram/provider.yaml
+++ b/airflow/providers/telegram/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Telegram `__
suspended: false
+source-date-epoch: 1700148091
versions:
- 4.2.0
- 4.1.1
diff --git a/airflow/providers/trino/provider.yaml b/airflow/providers/trino/provider.yaml
index 562304635a503..5ae593b9e1cb4 100644
--- a/airflow/providers/trino/provider.yaml
+++ b/airflow/providers/trino/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Trino `__
suspended: false
+source-date-epoch: 1700148092
versions:
- 5.4.0
- 5.3.1
diff --git a/airflow/providers/vertica/provider.yaml b/airflow/providers/vertica/provider.yaml
index 09ef356ecdf63..f809a8a1bab78 100644
--- a/airflow/providers/vertica/provider.yaml
+++ b/airflow/providers/vertica/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Vertica `__
suspended: false
+source-date-epoch: 1700148092
versions:
- 3.6.0
- 3.5.2
diff --git a/airflow/providers/weaviate/provider.yaml b/airflow/providers/weaviate/provider.yaml
index 94224031da41c..7301f5021c26a 100644
--- a/airflow/providers/weaviate/provider.yaml
+++ b/airflow/providers/weaviate/provider.yaml
@@ -24,6 +24,7 @@ description: |
`Weaviate `__
suspended: false
+source-date-epoch: 1700148093
versions:
- 1.0.0
diff --git a/airflow/providers/yandex/provider.yaml b/airflow/providers/yandex/provider.yaml
index 8073992a25b33..c275924076141 100644
--- a/airflow/providers/yandex/provider.yaml
+++ b/airflow/providers/yandex/provider.yaml
@@ -21,6 +21,7 @@ name: Yandex
description: |
Yandex including `Yandex.Cloud `__
suspended: false
+source-date-epoch: 1700148093
versions:
- 3.6.0
- 3.5.0
diff --git a/airflow/providers/zendesk/provider.yaml b/airflow/providers/zendesk/provider.yaml
index 04fa4423c9de3..25f03bd351978 100644
--- a/airflow/providers/zendesk/provider.yaml
+++ b/airflow/providers/zendesk/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Zendesk `__
suspended: false
+source-date-epoch: 1700148094
versions:
- 4.4.0
- 4.3.2
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index cdc40645ab01f..fe3494541bdad 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -481,7 +481,6 @@ def prepare_provider_packages(
cleanup_build_remnants(target_provider_root_sources_path)
build_provider_package(
provider_id=provider_id,
- version_suffix=version_suffix_for_pypi,
package_format=package_format,
target_provider_root_sources_path=target_provider_root_sources_path,
)
diff --git a/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py b/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
index 3c0370f33e382..0193f9e0abf87 100644
--- a/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
+++ b/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
@@ -28,6 +28,7 @@
from enum import Enum
from pathlib import Path
from shutil import copyfile
+from time import time
from typing import Any, NamedTuple
import jinja2
@@ -42,8 +43,9 @@
ProviderPackageDetails,
get_provider_details,
get_provider_jinja_context,
- get_provider_packages_metadata,
get_source_package_path,
+ refresh_provider_metadata_from_yaml_file,
+ refresh_provider_metadata_with_provider_id,
render_template,
)
from airflow_breeze.utils.run_utils import run_command
@@ -458,13 +460,29 @@ def _update_version_in_provider_yaml(
original_text = provider_yaml_path.read_text()
new_text = re.sub(r"versions:", f"versions:\n - {v}", original_text, 1)
provider_yaml_path.write_text(new_text)
- # IMPORTANT!!! Whenever we update provider.yaml files, we MUST clear cache for
- # get_provider_packages_metadata function, because otherwise anything next will not use it
- get_provider_packages_metadata.cache_clear()
get_console().print(f"[special]Bumped version to {v}\n")
return with_breaking_changes, maybe_with_new_features
+def _update_source_date_epoch_in_provider_yaml(
+ provider_package_id: str,
+) -> None:
+ """
+ Updates source date epoch in provider yaml that then can be used to generate reproducible packages.
+
+ :param provider_package_id: provider package
+ """
+ provider_yaml_path = get_source_package_path(provider_package_id) / "provider.yaml"
+ original_text = provider_yaml_path.read_text()
+ source_date_epoch = int(time())
+ new_text = re.sub(
+ r"source-date-epoch: [0-9]*", f"source-date-epoch: {source_date_epoch}", original_text, 1
+ )
+ provider_yaml_path.write_text(new_text)
+ refresh_provider_metadata_with_provider_id(provider_package_id)
+ get_console().print(f"[special]Updated source-date-epoch to {source_date_epoch}\n")
+
+
def _verify_changelog_exists(package: str) -> Path:
provider_details = get_provider_details(package)
changelog_path = Path(provider_details.source_provider_package_path) / "CHANGELOG.rst"
@@ -687,11 +705,14 @@ def update_release_notes(
with_breaking_changes, maybe_with_new_features = _update_version_in_provider_yaml(
provider_package_id=provider_package_id, type_of_change=type_of_change
)
+ _update_source_date_epoch_in_provider_yaml(provider_package_id)
proceed, list_of_list_of_changes, changes_as_table = _get_all_changes_for_package(
provider_package_id=provider_package_id,
base_branch=base_branch,
reapply_templates_only=reapply_templates_only,
)
+ else:
+ _update_source_date_epoch_in_provider_yaml(provider_package_id)
provider_details = get_provider_details(provider_package_id)
_verify_changelog_exists(provider_details.provider_id)
jinja_context = get_provider_documentation_jinja_context(
@@ -951,9 +972,7 @@ def _replace_min_airflow_version_in_provider_yaml(
provider_yaml_txt,
)
provider_yaml_path.write_text(provider_yaml_txt)
- # IMPORTANT!!! Whenever we update provider.yaml files, we MUST clear cache for
- # get_provider_packages_metadata function, because otherwise anything next will not use it
- get_provider_packages_metadata.cache_clear()
+ refresh_provider_metadata_from_yaml_file(provider_yaml_path)
def update_min_airflow_version(
diff --git a/dev/breeze/src/airflow_breeze/prepare_providers/provider_packages.py b/dev/breeze/src/airflow_breeze/prepare_providers/provider_packages.py
index 5b004eb27d528..2f3b7eface50c 100644
--- a/dev/breeze/src/airflow_breeze/prepare_providers/provider_packages.py
+++ b/dev/breeze/src/airflow_breeze/prepare_providers/provider_packages.py
@@ -22,7 +22,6 @@
import sys
from pathlib import Path
from shutil import copytree, rmtree
-from stat import S_IRGRP, S_IROTH, S_IRUSR, S_IWUSR
from typing import IO, Any
from airflow_breeze.utils.console import get_console
@@ -179,9 +178,7 @@ def cleanup_build_remnants(target_provider_root_sources_path: Path):
get_console().print(f"[info]Cleaned remnants in {target_provider_root_sources_path}\n")
-def build_provider_package(
- provider_id: str, version_suffix: str, target_provider_root_sources_path: Path, package_format: str
-):
+def build_provider_package(provider_id: str, target_provider_root_sources_path: Path, package_format: str):
get_console().print(
f"\n[info]Building provider package: {provider_id} in format {package_format} in "
f"{target_provider_root_sources_path}\n"
@@ -190,7 +187,14 @@ def build_provider_package(
if package_format != "both":
command.extend(["--format", package_format])
try:
- run_command(command, check=True, cwd=target_provider_root_sources_path)
+ run_command(
+ command,
+ check=True,
+ cwd=target_provider_root_sources_path,
+ env={
+ "SOURCE_DATE_EPOCH": str(get_provider_details(provider_id).source_date_epoch),
+ },
+ )
except subprocess.CalledProcessError as ex:
get_console().print("[error]The command returned an error %s", ex)
raise PrepareReleasePackageErrorBuildingPackageException()
@@ -207,8 +211,6 @@ def move_built_packages_and_cleanup(
# Shutil can move packages also between filesystems
target_file = dist_folder / file.name
target_file.unlink(missing_ok=True)
- # Change ownership to group/other to read the file
- file.chmod(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
shutil.move(file.as_posix(), dist_folder.as_posix())
if skip_cleanup:
diff --git a/dev/breeze/src/airflow_breeze/utils/packages.py b/dev/breeze/src/airflow_breeze/utils/packages.py
index df2c4b1d51632..3d59643dbca3e 100644
--- a/dev/breeze/src/airflow_breeze/utils/packages.py
+++ b/dev/breeze/src/airflow_breeze/utils/packages.py
@@ -84,6 +84,7 @@ class PluginInfo(NamedTuple):
class ProviderPackageDetails(NamedTuple):
provider_id: str
+ source_date_epoch: int
full_package_name: str
pypi_package_name: str
source_provider_package_path: Path
@@ -131,27 +132,41 @@ def from_requirement(cls, requirement_string: str) -> PipRequirements:
return cls(package=package, version_required=version_required.strip())
-@lru_cache
+PROVIDER_METADATA: dict[str, dict[str, Any]] = {}
+
+
+def refresh_provider_metadata_from_yaml_file(provider_yaml_path: Path):
+ import jsonschema
+ import yaml
+
+ schema = _load_schema()
+ with open(provider_yaml_path) as yaml_file:
+ provider = yaml.safe_load(yaml_file)
+ try:
+ jsonschema.validate(provider, schema=schema)
+ except jsonschema.ValidationError:
+ raise Exception(f"Unable to parse: {provider_yaml_path}.")
+ PROVIDER_METADATA[get_short_package_name(provider["package-name"])] = provider
+
+
+def refresh_provider_metadata_with_provider_id(provider_id: str):
+ provider_yaml_path = get_source_package_path(provider_id) / "provider.yaml"
+ refresh_provider_metadata_from_yaml_file(provider_yaml_path)
+
+
def get_provider_packages_metadata() -> dict[str, dict[str, Any]]:
"""
Load all data from providers files
:return: A list containing the contents of all provider.yaml files.
"""
- import jsonschema
- import yaml
- schema = _load_schema()
- result: dict[str, dict[str, Any]] = {}
+ if PROVIDER_METADATA:
+ return PROVIDER_METADATA
+
for provider_yaml_path in get_provider_yaml_paths():
- with open(provider_yaml_path) as yaml_file:
- provider = yaml.safe_load(yaml_file)
- try:
- jsonschema.validate(provider, schema=schema)
- except jsonschema.ValidationError:
- raise Exception(f"Unable to parse: {provider_yaml_path}.")
- result[get_short_package_name(provider["package-name"])] = provider
- return result
+ refresh_provider_metadata_from_yaml_file(provider_yaml_path)
+ return PROVIDER_METADATA
def validate_provider_info_with_runtime_schema(provider_info: dict[str, Any]) -> None:
@@ -440,6 +455,7 @@ def get_provider_details(provider_id: str) -> ProviderPackageDetails:
)
return ProviderPackageDetails(
provider_id=provider_id,
+ source_date_epoch=provider_info["source-date-epoch"],
full_package_name=f"airflow.providers.{provider_id}",
pypi_package_name=f"apache-airflow-providers-{provider_id.replace('.', '-')}",
source_provider_package_path=get_source_package_path(provider_id),
diff --git a/dev/refresh_images.sh b/dev/refresh_images.sh
index 638e86930cc1f..2b11229aa06bc 100755
--- a/dev/refresh_images.sh
+++ b/dev/refresh_images.sh
@@ -42,7 +42,7 @@ breeze release-management prepare-provider-packages \
breeze release-management prepare-airflow-package --package-format wheel --version-suffix-for-pypi dev0
-mv -v ./dist/*.whl ./docker-context-files
+mv -v ./dist/*.whl ./docker-context-files && chmod a+r ./docker-context-files/*
breeze prod-image build \
--builder airflow_cache \