Skip to content

Commit 2b09c95

Browse files
authored
Merge branch 'main' into feat-49796-azure_virtual_machines_operator
2 parents 8926c4a + c9e1ccf commit 2b09c95

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+406
-63
lines changed
Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
<!-- SPDX-License-Identifier: Apache-2.0
2+
https://www.apache.org/licenses/LICENSE-2.0 -->
3+
4+
# Greek (el) Translation Agent Skill
5+
6+
**Locale code:** `el`
7+
**Preferred variant:** Standard Modern Greek (el), consistent with existing translations in `airflow-core/src/airflow/ui/public/i18n/locales/el/`
8+
9+
This file contains locale-specific guidelines so AI translation agents produce
10+
new Greek strings that stay 100% consistent with the existing translations.
11+
12+
## 1. Core Airflow Terminology
13+
14+
The following terms **must remain in English unchanged** (case-sensitive):
15+
16+
- `Dag` / `Dags` — Airflow concept; never write "DAG"
17+
- `XCom` / `XComs` — Airflow cross-communication mechanism
18+
- `Backfill` / `Backfills` — Historical data fill-in; kept as a recognizable technical term
19+
- `Pool` / `Pools` — Resource constraint mechanism
20+
- `Slot` / `Slots` — Pool slot count
21+
- `Map Index` — Task mapping index
22+
- `PID` — Unix process identifier
23+
- `ID` — Universal abbreviation
24+
- `UTC` — Time standard
25+
- `JSON` — Standard technical format name
26+
- `REST API` — Standard technical term
27+
- `URI` — Uniform Resource Identifier
28+
- `Gantt` — Chart type name
29+
- `Catchup` — Dag scheduling catchup setting
30+
- Log levels: `INFO`, `DEBUG` (Note: `CRITICAL`, `ERROR`, `WARNING` are translated — see § 3)
31+
32+
## 2. Standard Translations
33+
34+
The following Airflow-specific terms have established Greek translations
35+
that **must be used consistently**:
36+
37+
| English Term | Greek Translation | Notes |
38+
| ---------------------- | ------------------------------------- | --------------------------------------------------- |
39+
| Task | Εργασία | Plural: "Εργασίες" |
40+
| Task Instance | Εκτέλεση Εργασίας | Plural: "Εκτελέσεις Εργασίας" |
41+
| Task Group | Ομάδα Εργασιών | |
42+
| Dag Run | Εκτέλεση Dag | Plural: "Εκτελέσεις Dag" |
43+
| Run | Εκτέλεση | Plural: "Εκτελέσεις"; used standalone |
44+
| Trigger (noun) | Ενεργοποίηση | |
45+
| Trigger Rule | Κανόνας Ενεργοποίησης | |
46+
| Triggerer | Ενεργοποιητής | Component name |
47+
| Scheduler | Προγραμματιστής | |
48+
| Schedule (noun) | Πρόγραμμα | |
49+
| Executor | Εκτελεστής | |
50+
| Connection | Σύνδεση | Plural: "Συνδέσεις" |
51+
| Variable | Μεταβλητή | Plural: "Μεταβλητές" |
52+
| Audit Log | Καταγραφή Ελέγχου | |
53+
| Log | Καταγραφή | |
54+
| State | Κατάσταση | |
55+
| Queue (noun) | Ουρά | e.g., "Σε Ουρά" for "queued" |
56+
| Config / Configuration | Ρυθμίσεις | |
57+
| Operator | Τελεστής | Plural: "Τελεστές" |
58+
| Asset | Οντότητα | Plural: "Οντότητες" — translated (Greek-specific) |
59+
| Asset Event | Συμβάν Οντότητας | Plural: "Συμβάντα Οντοτήτων" |
60+
| Plugin | Πρόσθετο | Plural: "Πρόσθετα" |
61+
| Provider | Πάροχος | Plural: "Πάροχοι" |
62+
| Dag Processor | Επεξεργαστής Dag | Component name |
63+
| Heartbeat | Παλμός | |
64+
| Map Index | Δείκτης Χάρτη | |
65+
| Upstream (dependency) | Ανάντη | Used in states: "Αποτυχία Ανάντη" |
66+
| Upstream (action) | Άνοδος | Used in clear-task action options |
67+
| Downstream (action) | Κάθοδος | Used in clear-task action options |
68+
69+
> **Note on `Asset`:** Unlike French, Catalan, and other locales where "Asset" is kept in
70+
> English, Greek translates it as **Οντότητα** ("entity"). Use "Οντότητα" consistently
71+
> across all Greek translations.
72+
73+
## 3. Task/Run States and Log Levels
74+
75+
### States
76+
77+
| English State | Greek Translation |
78+
| ------------------- | ---------------------------- |
79+
| running | Εκτελείται |
80+
| failed | Αποτυχία |
81+
| success | Επιτυχία |
82+
| queued | Σε Ουρά |
83+
| scheduled | Προγραμματισμένο |
84+
| skipped | Παραλείφθηκε |
85+
| deferred | Αναβληθέν |
86+
| removed | Αφαιρέθηκε |
87+
| restarting | Επανεκκίνηση |
88+
| up_for_retry | Προς Επανάληψη |
89+
| up_for_reschedule | Προς Επαναπρογραμματισμό |
90+
| upstream_failed | Αποτυχία Ανάντη |
91+
| no_status / none | Χωρίς Κατάσταση |
92+
| planned | Προγραμματισμένο |
93+
94+
### Log Levels
95+
96+
| English Level | Greek Translation |
97+
| ------------- | ------------------ |
98+
| CRITICAL | ΚΡΙΣΙΜΟ |
99+
| ERROR | ΣΦΑΛΜΑ |
100+
| WARNING | ΠΡΟΕΙΔΟΠΟΙΗΣΗ |
101+
| INFO | INFO |
102+
| DEBUG | DEBUG |
103+
104+
## 4. Greek-Specific Guidelines
105+
106+
### Tone and Register
107+
108+
- Use **formal Greek** ("εσείς/σας" form). Do not use the informal "εσύ/σου".
109+
- Use a neutral, professional tone suitable for technical software UIs.
110+
- Keep UI strings concise — they appear in buttons, labels, and tooltips.
111+
112+
### Grammatical Gender
113+
114+
Greek nouns have three genders: masculine (αρσενικό), feminine (θηλυκό), and neuter (ουδέτερο).
115+
Match adjectives and articles accordingly:
116+
117+
- "Dag" is treated as **neuter**: "το Dag", "ένα Dag"
118+
- "Εργασία" (Task) is **feminine**: "η εργασία", "μια εργασία"
119+
- "Εκτέλεση" (Run/Execution) is **feminine**: "η εκτέλεση", "μια εκτέλεση"
120+
- "Σύνδεση" (Connection) is **feminine**: "η σύνδεση"
121+
- "Μεταβλητή" (Variable) is **feminine**: "η μεταβλητή"
122+
- "Οντότητα" (Asset) is **feminine**: "η οντότητα"
123+
- "Καταγραφή" (Log) is **feminine**: "η καταγραφή"
124+
- "Κατάσταση" (State) is **feminine**: "η κατάσταση"
125+
126+
### Plural Forms
127+
128+
Greek uses i18next plural suffixes `_one` and `_other`. Use the established
129+
plural forms from the glossary:
130+
131+
```json
132+
"task_one": "Εργασία",
133+
"task_other": "Εργασίες"
134+
```
135+
136+
```json
137+
"dagRun_one": "Εκτέλεση Dag",
138+
"dagRun_other": "Εκτελέσεις Dag"
139+
```
140+
141+
```json
142+
"asset_one": "Οντότητα",
143+
"asset_other": "Οντότητες"
144+
```
145+
146+
### Genitive Case
147+
148+
Greek uses the genitive case to express "of X" relationships. This commonly appears
149+
in compound terms where English uses a noun modifier:
150+
151+
```json
152+
"dagRunId": "ID Εκτέλεσης Dag" // "ID of Run of Dag"
153+
"taskGroup": "Ομάδα Εργασιών" // "Group of Tasks"
154+
"auditLog": "Καταγραφή Ελέγχου" // "Log of Audit"
155+
"assetEvent_one":"Συμβάν Οντότητας" // "Event of Asset"
156+
"triggerRule": "Κανόνας Ενεργοποίησης" // "Rule of Triggering"
157+
```
158+
159+
### Capitalization
160+
161+
- Use **sentence case** for descriptions and longer strings.
162+
- Use **title-like capitalization** for headers, labels, and button text
163+
(match the style of existing Greek translations).
164+
- Capitalize proper terms: "Dag", "XCom", "Backfill", "Pool", etc.
165+
166+
### Diacritics
167+
168+
Greek uses the **tonos** accent mark (΄). Always preserve accented characters —
169+
missing diacritics change the meaning or make text unreadable. Never write
170+
"Εκτελεση", "Συνδεση", "Εργασια", "Οντοτητα", "Καταγραφη", "Κατασταση" etc.
171+
Always use the correctly accented forms from §2.
172+
173+
### Question Mark
174+
175+
The Greek question mark is the **erotimatiko** (`;`), which looks like a semicolon.
176+
When translating English `?`, use `;` in Greek sentences:
177+
178+
```json
179+
"confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε το {{resourceName}}; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."
180+
```
181+
182+
### Placeholders and Variables
183+
184+
Preserve all `{{variable}}` placeholders exactly — never translate placeholder names.
185+
Reorder phrases for natural Greek word order when needed.
186+
187+
## 5. Terminology Reference
188+
189+
The established Greek translations are defined in the existing locale files.
190+
Before translating, **read the existing el JSON files** to learn the
191+
established terminology:
192+
193+
```
194+
airflow-core/src/airflow/ui/public/i18n/locales/el/
195+
```
196+
197+
Use the translations found in these files as the authoritative glossary. When
198+
translating a term, check how it has been translated elsewhere in the locale to
199+
maintain consistency. If a term has not been translated yet, refer to the English
200+
source in `en/` and apply the rules in this document.
201+
202+
### Action Verbs (Buttons)
203+
204+
```
205+
Add → "Προσθήκη"
206+
Delete → "Διαγραφή"
207+
Edit → "Επεξεργασία"
208+
Save → "Αποθήκευση"
209+
Reset → "Επαναφορά"
210+
Cancel → "Ακύρωση"
211+
Confirm → "Επιβεβαίωση"
212+
Clear → "Εκκαθάριση"
213+
Search → "Αναζήτηση"
214+
Copy → "Αντιγραφή"
215+
```
216+
217+
## 6. Agent Instructions (DO / DON'T)
218+
219+
**DO:**
220+
221+
- Use formal Greek ("εσείς/σας" form) throughout
222+
- Preserve all i18next placeholders: `{{count}}`, `{{dagName}}`, `{{type}}`, etc.
223+
- Apply correct Greek genitive case for "of X" constructions
224+
- Provide `_one` and `_other` suffixes for every plural key
225+
- Translate "Asset" as "Οντότητα" (Greek-specific — not kept in English)
226+
- Translate log levels: "ΚΡΙΣΙΜΟ", "ΣΦΑΛΜΑ", "ΠΡΟΕΙΔΟΠΟΙΗΣΗ" for CRITICAL, ERROR, WARNING
227+
- Preserve Greek diacritics (tonos accent) on all Greek words
228+
- Use `;` (erotimatiko) for question marks in Greek sentences
229+
230+
**DON'T:**
231+
232+
- Write "DAG" — always use "Dag"
233+
- Translate `XCom`, `Backfill`, `Pool`, `Slot`, `ID`, `JSON`, `REST API`, `UTC`, `PID`
234+
- Translate `{{variable}}` placeholder names
235+
- Drop Greek diacritics (e.g., never write "Εκτελεση" for "Εκτέλεση")
236+
- Use the informal "εσύ" form
237+
- Translate "INFO" or "DEBUG" log level labels
238+
- Use English `?` for question marks in Greek sentences

COMMITTERS.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ Before reading this document, you should be familiar with the `Contributors' gui
2222
This document assumes that you are a bit familiar with how Airflow's community works, but you would like to learn more
2323
about the rules by which we add new committers and PMC members.
2424

25-
**The outline for this document in GitHub is available at the top-right corner button (with 3-dots and 3 lines).**
25+
.. contents:: Table of Contents
26+
:depth: 2
27+
:local:
2628

2729
Committers vs. Maintainers
2830
--------------------------

CONTRIBUTING.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
Contributing
1919
============
2020

21-
**The outline for this document in GitHub is available at top-right corner button (with 3-dots and 3 lines).**
2221

2322
Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.
2423

PROVIDERS.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
Apache Airflow Providers
2020
************************
2121

22-
**The outline for this document in GitHub is available at top-right corner button (with 3-dots and 3 lines).**
22+
.. contents:: Table of Contents
23+
:depth: 2
24+
:local:
2325

2426
What is a provider?
2527
===================

airflow-core/docs/templates-ref.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ Variable Type Description
7070
``{{ prev_start_date_success }}`` `pendulum.DateTime`_ Start date from prior successful :class:`~airflow.models.dagrun.DagRun` (if available).
7171
| ``None``
7272
``{{ prev_end_date_success }}`` `pendulum.DateTime`_ End date from prior successful :class:`~airflow.models.dagrun.DagRun` (if available).
73-
| ``None``
74-
``{{ start_date }}`` `pendulum.DateTime`_ Datetime of when current task has been started.
73+
| ``None``
7574
``{{ inlets }}`` list List of inlets declared on the task.
7675
``{{ inlet_events }}`` dict[str, ...] Access past events of inlet assets. See :doc:`Assets <authoring-and-scheduling/asset-scheduling>`. Added in version 2.10.
7776
``{{ outlets }}`` list List of outlets declared on the task.

airflow-core/tests/unit/plugins/test_plugins_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def test_no_log_when_no_plugins(self, caplog):
8484

8585
plugins_manager.ensure_plugins_loaded()
8686

87-
assert caplog.record_tuples == []
87+
assert [r for r in caplog.record_tuples if not r[0].startswith("opentelemetry.")] == []
8888

8989
def test_loads_filesystem_plugins(self, caplog):
9090
from airflow import plugins_manager
@@ -104,7 +104,7 @@ def test_loads_filesystem_plugins(self, caplog):
104104
else:
105105
pytest.fail("Wasn't able to find a registered `AirflowTestOnLoadPlugin`")
106106

107-
assert caplog.record_tuples == []
107+
assert [r for r in caplog.record_tuples if not r[0].startswith("opentelemetry.")] == []
108108

109109
def test_loads_filesystem_plugins_exception(self, caplog, tmp_path):
110110
from airflow import plugins_manager

contributing-docs/01_roles_in_airflow_project.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ There are several roles within the Airflow Open-Source community.
2222

2323
For detailed information for each role, see: `Committers and PMC members <../COMMITTERS.rst>`__.
2424

25-
**The outline for this document in GitHub is available at top-right corner button (with 3-dots and 3 lines).**
25+
.. contents:: Table of Contents
26+
:depth: 2
27+
:local:
2628

2729
PMC Member
2830
----------

contributing-docs/02_how_to_communicate.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ This means that communication plays a big role in it, and this chapter is all ab
2626

2727
In our communication, everyone is expected to follow the `ASF Code of Conduct <https://www.apache.org/foundation/policies/conduct>`_.
2828

29-
**The outline for this document in GitHub is available at top-right corner button (with 3-dots and 3 lines).**
29+
.. contents:: Table of Contents
30+
:depth: 2
31+
:local:
3032

3133
Various Communication channels
3234
------------------------------

contributing-docs/03_contributors_quick_start.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
Contributor's Quick Start
2020
*************************
2121

22-
**The outline for this document in GitHub is available at top-right corner button (with 3-dots and 3 lines).**
22+
.. contents:: Table of Contents
23+
:depth: 2
24+
:local:
2325

2426
Note to Starters
2527
################
@@ -261,6 +263,14 @@ To avoid burden on our CI infrastructure and to save time, prek hooks can be run
261263

262264
Installing prek is best done with ``uv`` (recommended) or ``pipx``.
263265

266+
You can also update the tools installed with UV, including ``prek``.
267+
268+
Run the following command to upgrade all UV-managed tools:
269+
270+
.. code-block:: bash
271+
272+
uv tool upgrade --all
273+
264274
1. Installing required packages
265275

266276
on Debian / Ubuntu, install via
@@ -285,6 +295,7 @@ on macOS, install via
285295
286296
uv tool install prek
287297
298+
288299
or with pipx:
289300

290301
.. code-block:: bash
@@ -361,6 +372,7 @@ It will run prek hooks automatically before committing and stops the commit on f
361372
cd ~/Projects/airflow
362373
prek uninstall
363374
375+
364376
- For more information on this visit |08_static_code_checks.rst|
365377

366378
.. |08_static_code_checks.rst| raw:: html

contributing-docs/03a_contributors_quick_start_beginners.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Option A – Breeze on Your Laptop
8787
8888
The command starts a shell and launches multiple terminals using tmux
8989
and launches all Airflow necessary components in those terminals. To know more about tmux commands,
90-
check out this cheat sheet: https://tmuxcheatsheet.com/. Now You can also access Airflow UI on your local machine at |http://localhost:28080| with user name ``admin`` and password ``admin``. To exit breeze, type ``stop_airflow`` in any
90+
check out this cheat sheet: https://tmuxcheatsheet.com/. Now You can also access Airflow UI on your local machine at `http://localhost:28080 <http://localhost:28080>`_ with user name ``admin`` and password ``admin``. To exit breeze, type ``stop_airflow`` in any
9191
of the tmux panes and hit Enter
9292

9393
**Working with DAGs in Breeze:**

0 commit comments

Comments
 (0)