The devel-common stand-in experiment (#227): full record, both rounds #245
Replies: 2 comments
|
Round 3 (2026-08-23, piab 0.11.0). Posted to #227; archived here for the permanent record. Round 3: same drift scan, piab 0.11.0 (all six issue fixes from rounds 1-2 shipped). Same venvs, worktrees, and shim patches as round 2, so the plugin version is the only variable on the six release legs. The 3.4.0.dev leg moved from Breeze/Linux to a local macOS source build at the same commit
Failure-class drift, s2
Reading:
Caveats, honestly: baselines needed Full logs + |
|
Wave-2 fix record (2026-08-24, post round 3, all merged). Posted to #227; archived here. Wave 2 is done: every issue the round-3 scan produced is now fixed and merged (plus two more found while fixing). The full arc, for the record: Round-3 residuals -> fixes, all on
Direction / user-facing contract changes that came out of this wave:
Bonus find: the #274 CI exposed an upstream Airflow 3.2.0-only regression -- Process notes, FWIW: all six fixes ran as parallel plan-first agents (plans human-approved before implementation), shipped through Data: round-3 results + logs remain at nredd/airflow-exp-227@2330c1da59 ( |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Permanent record of the #227 experiment, both rounds, so nothing lives only in issue-comment threads. Everything below is reproducible from the linked artifacts.
Question (#227): how much of upstream Airflow's own
tests/unitsuite survives when thetests_common/devel-commonharness is swapped for this plugin?Method, two rounds:
main@c9f06bc42b(3.4.0.dev). Strategy 1 = hybrid (tests_commonactive, piab ownsAIRFLOW_HOME+ metadata DB via--without-db-init); strategy 2 = shim (airflow-core/tests/conftest.pypytest_pluginsswapped to a marker-only module, every missing fixture errors and becomes the metric). Subsets:unit/models,unit/serialization,unit/timetablestests/conftest.pyinsteadArtifacts:
results.csvand xz'd per-cell pytest logs: nredd/airflow-exp-227 @exp/227-piab-devel-common(files/exp227/results/, commits92873a2c04+d9839511d6; standalone labeled repo, not a PR vehicle), including per-version reproduction patches -- applydrift-<version>.patchto the upstream release tag to rebuild any cell exactlydag_makercontract divergence, #239create_dag_runkwarg double-pass bug, #240 missing backfillTableGroupbug, #241 env drift-check coexistence dx, #244 retained-AIRFLOW_HOMEaccumulation. Per-version drift data is commented on Upstream fixture surface: six names block 195 core-unit tests #237-clear_db and dag-fixture cleanup miss the backfill tables #240Round-1 results (3.4.0.dev, 2131 tests across the three subsets):
Round-1 headlines: strategy-1 serial is bit-for-bit identical to baseline and 10-40% faster; baseline xdist is broken on stock harness (shared sqlite, lock storms) while piab's per-worker DBs run the same cell without them; zero probe failures on uncertified 3.4.0.dev.
Drift scan,
unit/models(the signal subset):timetablesstrategy 2 is clean (and beats baseline) at 2.9.3/3.1.0/3.1.8; the 8sync_dagbag_to_dbfails appear at 3.2 and hold flat.serializations2 fails are flat at 15-27 everywhere, dominated by stock-harness env expectations baked into expected values (filelocpaths, operator extra links,allowed_deserialization_classes).Failure-class drift, s2
unit/models:DAG.__init__sessionkwarg (#238)create_dagrunkwarg double-pass (#239)assert None is not None(#238)'DAG' has no attribute 'create_dagrun'(#238)sync_dagbag_to_dbmissing (#238)infer_manual_data_interval(#238)create_task_instancefixture (#237)testing_dag_bundlefixture (#237)Conclusions:
DAG.create_dagrun, 3.2+ wantssync_dagbag_to_db/infer_manual_data_interval) but the proportion holds. 2.x scores better (62-63%) on its smaller fixture surfaceexecution_datevariant) and clear_db and dag-fixture cleanup miss the backfill tables #240 (32 -> 83 errors across certified 3.x)session-kwarg routing plus acreate_task_instance-shaped helper (Upstream fixture surface: six names block 195 core-unit tests #237): together ~250-320 tests per version, on both familiesCaveats: drift scan ran on macOS (one spawn-vs-fork hang at 2.11.2, root-caused to stock-harness env dependence); constraints files pin no test-harness deps so the pytest stack resolved unconstrained except 2.9.3 (baseline pytest 7.4.4 vs s2 8.4.2 -- piab floors at 8); a handful of local-env baseline failures (optional providers, pandas/pyarrow, time-machine 3.4) appear identically in both columns. No PRs to apache/airflow anywhere, by design.
All reactions