potiuk opened a new pull request, #36333:
URL: https://github.com/apache/airflow/pull/36333
Since we are getting more diagrams generated in Airflow using the "diagram
as a code" approach, this PR improves the pre-commit to be more suitable to
support generation of more of the images coming from different sources, placed
in different directories and generated independently, so that the whole process
is more distributed and easy for whoever creates diagrams to add their own
diagram.
The changes implemented in this PR:
* the code to generate the diagrams is now next to the diagram they
generate. It has the same name as the diagram, but it has the .py extension.
This way it is immediately visible where is the source of each diagram (right
next to each diagram)
* each of the .py diagram Python files is runnable on its own. This way you
can easily regenerate the diagrams by running corresponding Python file or even
automate it by running "save" action and generate the diagrams automatically by
running the Python code every time the file is saved. That makes a very nice
workflow on iterating on each diagram, independently from each othere
* the pre-commit script is given a set of folders which should be scanned
and it finds and run the diagrams on pre-commmit. It also creates and verifies
the md5sum hash of the source Python file separately for each diagram and only
runs diagram generation when the source file changed vs. last time the hash was
saved and committed. The hash sum is stored next to the image and sources with
.md5sum extension
Also updated documentation in the CONTRIBUTING.rst explaining how to
generate the diagrams and what is the mechanism of that generation.
<!--
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.
-->
<!--
Thank you for contributing! Please make sure that your code changes
are covered with tests. And in case of new features or big changes
remember to adjust the documentation.
Feel free to ping committers for the review!
In case of an existing issue, reference it using one of the following:
closes: #ISSUE
related: #ISSUE
How to write a good git commit message:
http://chris.beams.io/posts/git-commit/
-->
<!-- Please keep an empty line above the dashes. -->
---
**^ Add meaningful description above**
Read the **[Pull Request
Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)**
for more information.
In case of fundamental code changes, an Airflow Improvement Proposal
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
is needed.
In case of a new dependency, check compliance with the [ASF 3rd Party
License Policy](https://www.apache.org/legal/resolved.html#category-x).
In case of backwards incompatible changes please leave a note in a
newsfragment file, named `{pr_number}.significant.rst` or
`{issue_number}.significant.rst`, in
[newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]