מאגר המקורות של הקוד של Managed Airflow

בדף הזה מתואר המאגר שבו מאוחסן קוד Apache Airflow שעבר תיקון, שמשמש ב-Managed Airflow.

מידע על המאגר

מאגר Composer-Airflow הוא מאגר לקריאה בלבד שמכיל את קוד Apache Airflow המתוקן שפועל ב-Managed Airflow.

גרסה מסוימת של Apache Airflow שנמצאת ב-Managed Airflow לא תמיד תואמת בדיוק לגרסה המקבילה ב-upstream Airflow, כי ב-Managed Airflow נעשה שימוש בגרסה מתוקנת של Airflow. במאגר הזה נמצא הקוד של כל גרסה עם תיקון של Airflow שמשמשת ב-Managed Airflow. למידע על הגרסאות של Airflow שזמינות ב-Managed Airflow, אפשר לעיין ברשימת הגרסאות של Managed Airflow.

תרומה

הקוד הזה הוא לא הסתעפות של Apache Airflow. הקוד שנמצא במאגר הזה מגיע ישירות ממאגר Apache Airflow, אבל הוא נוצר בפרק זמן שונה מזה של גרסאות רגילות של Apache Airflow.

אם רוצים לתרום לבסיס הקוד הזה, אפשר לתרום ישירות ל-Airflow במקום. אל תעשו זאת במאגר הזה כי לא מתקבלות בו בקשות למשיכת שינויים.

בעיות ותמיכה

למאגר יש ענף אחד לכל גרסה של Airflow שזמינה ב-Managed Service for Apache Airflow. לא כל הגרסאות של Airflow נתמכות ב-Managed Airflow. ברשימת גרסאות Managed Airflow אפשר לראות אילו גרסאות Airflow נתמכות על ידי גרסה מסוימת של Managed Airflow.

דוגמאות לשימוש

בקטע הזה מפורטות דוגמאות לשימוש במאגר.

האם הקומיט הזה ממאגר Airflow נמצא בגרסה שלי של Managed Airflow?

ערכי ה-SHA1 של הקומיטים במאגר Composer-Airflow לא תואמים לערכי ה-SHA1 של הקומיטים במאגר Airflow במעלה הזרם. אחת הדרכים לחפש קומיט ספציפי היא לחפש את הודעת הקומיט המתאימה.

אי אפשר להשתמש בממשק המשתמש של GitHub כדי לחפש הודעות על ביצוע קומיטים בענפים שאינם ענף ברירת המחדל, אבל אפשר לעשות זאת באמצעות git CLI. כדי לחפש קומיט מסוים במאגר הזה, צריך להתקין את git.

כדי לחפש הודעת קומיט באמצעות git CLI:

  1. משכפלים את המאגר ועוברים לספריית המאגר באמצעות הפקודה הבאה:

    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && \
    cd composer-airflow
    
  2. מחפשים את הודעת ה-commit:

    git log --source --grep="COMMIT_MESSAGE" --all
    

    בפקודה הזו:

    • ב---source מוצג הענף שבו נמצאת ההתחייבות
    • --grep מציין את ההודעה שצריך לחפש ביומן
    • --all חיפוש בכל הענפים
  3. הענף ממוקם לצד הגיבוב של הקומיט בשורה הראשונה של כל תוצאה. אם הפקודה מחזירה קומיט, זה אומר שהיא נמצאת בגרסה שלכם של Managed Airflow. בנוסף, אם גרסת Airflow בסביבה שלכם מאוחרת יותר מגרסת הענף, הקומיט ישמש בגרסת Airflow של הסביבה שלכם.

לדוגמה, אם רוצים לחפש את הודעת הקומיט Force explicit choice on GPL dependency, הפקודה תהיה:

git log --source --grep="Force explicit choice on GPL dependency" --all

אם יש התאמה לקומיט, התוצאות ייראו כמו בדוגמה הבאה. יכול להיות שיופיעו כמה תוצאות.

commit 64ff1089e30e80b08bf5155edd9e49f5293ebbe4 refs/heads/<strong>1.10.2</strong>
Author: example_airflow_committer <example_airflow_committer@users.noreply.github.com>
Date:   Wed Aug 1 11:25:31 2018 +0200

    [AIRFLOW-2817] Force explicit choice on GPL dependency (#3660)

    By default one of Apache Airflow's dependencies pulls in a GPL
    library. Airflow should not install (and upgrade) without an explicit choice.

    This is part of the Apache requirements as we cannot depend on Category X
    software.

    (cherry picked from commit c37fc0b6ba19e3fe5656ae37cef9b59cef3c29e8)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    (cherry picked from commit b39e4532d9d1086c60b31553d08972bcc68df641)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    GitOrigin-RevId: cefcf4c61f64be3792cbfed509b82a9eb4cc47be

איך נראה האופרטור הזה של Airflow בגרסה שלי של Managed Airflow?

אופרטורים של Airflow והקוד הנלווה אליהם נארזים ומופצים בנפרד מליבת Airflow בחבילות PyPI שנקראות חבילות ספק.

חלק מהחבילות האלה מותקנות כברירת מחדל ב-Managed Airflow. כדי לדעת איזו גרסה מותקנת בסביבה שלכם, בודקים את רשימת החבילות של גרסת Managed Airflow בסביבה שלכם ברשימת הגרסאות.

ממשק המשתמש של GitHub

כדי לראות את הקוד של אופרטור בגרסה מסוימת של חבילת ספק:

  1. עוברים אל מאגר Airflow במעלה הזרם.

  2. מזינים את שם האופרטור שרוצים לחפש בסרגל החיפוש של GitHub.

  3. אם מוחזרים יותר מקובץ אחד, לוחצים על קובץ הקוד עם נתיב שמתחיל ב-airflow/providers.

    לדוגמה, אם מחפשים את GoogleCloudStorageCreateBucketOperator ואז בוחרים ב-airflow/providers/google/cloud/operators/gcs.py.

  4. לוחצים על בורר הענפים כדי לפתוח את התפריט הנפתח החלפת ענפים/תגים.

  5. לוחצים על הכרטיסייה Tags (תגים).

  6. במקרה של חבילות providers, מקלידים providers-PROVIDER_NAME/PROVIDER_VERSION בסרגל החיפוש של הרשימה הנפתחת כדי לחפש את שם הספק ואת הגרסה. PROVIDER_NAME הוא שם הספק ו-PROVIDER_VERSION הוא שם הגרסה שאתם מחפשים.

    לדוגמה, אם רוצים לראות את גרסה 10.0.0 של חבילת apache-airflow-providers-google, מחפשים את providers-google/10.0.0.

  7. עבור חבילות backport-providers, שמשמשות ב-Airflow 1, מחפשים את backport-providers-PROVIDER_VERSION בסרגל החיפוש של הרשימה הנפתחת.

    לדוגמה, אם רוצים לראות את גרסה 2021.3.3 של חבילת apache-airflow-backport-providers-google, מחפשים את backport-providers-2021.3.3.

  8. לוחצים על התוצאה שמתאימה לשאילתה.

  9. הקוד שמופיע במסך הוא הקוד שפועל בגרסה של האופרטור. אפשר גם ללחוץ על היסטוריה כדי לראות את היסטוריית השמירה עד לנקודה הזו.

‫git CLI

כדי לראות את הקוד של אופרטור בגרסה מסוימת של חבילת ספק:

  1. משכפלים את מאגר Airflow במעלה הזרם.

  2. עבור חבילות providers, מריצים את הפקודה git checkout providers-PROVIDER_NAME/PROVIDER_VERSION, כאשר PROVIDER_NAME הוא שם הספק ו-PROVIDER_VERSION הוא שם הגרסה שמחפשים.

    לדוגמה, אם רוצים לראות את גרסה 10.0.0 של חבילת apache-airflow-providers-google, מריצים את הפקודה git checkout providers-google/10.0.0.

  3. עבור חבילות backport-providers, שמשמשות ב-Airflow 1, מריצים את הפקודה git checkout backport-providers-PROVIDER_VERSION.

    לדוגמה, אם רוצים לראות את גרסה 2021.3.3 של חבילת apache-airflow-backport-providers-google,מריצים את הפקודה git checkout backport-providers-2021.3.3.

  4. אם אתם לא יודעים את נתיב הקובץ של האופרטור, אתם יכולים לחפש אותו באמצעות הפקודה git grep. בדוגמה הבאה אפשר לראות איך מחפשים את GoogleCloudStorageCreateBucketOperator.

    git grep GoogleCloudStorageCreateBucketOperator
    

    הפלט הוא רשימה של קבצים שבהם נמצאת המחרוזת (במקרה הזה, שם האופרטור). מהרשימה הזו, עוברים לקובץ ובודקים את התוכן שלו.

    airflow/contrib/operators/gcs_operator.py:class
    GoogleCloudStorageCreateBucketOperator(BaseOperator):
    
    airflow/contrib/operators/gcs_operator.py:            CreateBucket =
    GoogleCloudStorageCreateBucketOperator(
    
    airflow/contrib/operators/gcs_operator.py:        super(
    GoogleCloudStorageCreateBucketOperator, self).__init__(*args, **kwargs)
    docs/code.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.Google
    CloudStorageCreateBucketOperator
    docs/integration.rst:- :ref:`GoogleCloudStorageCreateBucketOperator` :
    Creates a new cloud storage bucket.
    docs/integration.rst:.. _GoogleCloudStorageCreateBucketOperator:
    docs/integration.rst:GoogleCloudStorageCreateBucketOperator
    docs/integration.rst:.. autoclass:: airflow.contrib.operators.gcs_operator
    .GoogleCloudStorageCreateBucketOperator
    tests/contrib/operators/test_gcs_operator.py:from
    airflow.contrib.operators.gcs_operator import
    GoogleCloudStorageCreateBucketOperator
    tests/contrib/operators/test_gcs_operator.py:        operator =
    GoogleCloudStorageCreateBucketOperator(
    

המאמרים הבאים