|
1 | | -# GraphFL Lab Migration Guide |
| 1 | +# GraphFL Lab Migration |
2 | 2 |
|
3 | | -This guide tracks the migration from the historical `spectral_fl` identity to |
4 | | -`graphfl_lab`. **Public rename and Gate 6 cleanup are complete** on `main` |
5 | | -(2026-05-22) and are released as `1.0.0`. A small set of read-only |
6 | | -JSON/config aliases remains for historical artifacts; see `docs/removed-materials.md` and |
7 | | -`docs/framework/naming-and-compatibility.md`. The execution log is closed in |
8 | | -`docs/maintenance/cleanup-status.md`. |
| 3 | +`graphfl_lab`가 canonical package다. Gate 6 cleanup과 public rename은 release `1.0.0`에서 완료되었다. |
9 | 4 |
|
10 | | -## For Users |
| 5 | +## Canonical Surface |
11 | 6 |
|
12 | | -Current supported commands continue to work during the deprecation period: |
13 | | - |
14 | | -```text |
15 | | -python run_vision_experiment.py --help |
16 | | -python run_vision_suite.py --help |
17 | | -python run_graph_ablation.py --help |
18 | | -python run_experiment.py --help |
19 | | -``` |
20 | | - |
21 | | -Planned public direction: |
22 | | - |
23 | | -```text |
24 | | -python run_experiment.py --track vision ... |
25 | | -python run_experiment.py --track cora ... |
26 | | -``` |
27 | | - |
28 | | -During deprecation, old names remain available where documented: |
29 | | - |
30 | | -```text |
31 | | -configs/general/... (path alias to configs/vision in config loader) |
32 | | -spectral_filter_strength (JSON config key alias only; CLI uses --graph-filter-strength) |
33 | | -``` |
34 | | - |
35 | | -Gate 6 and post-Gate-6 cleanup removed `run_general_*`, `graphfl_lab/general_*`, |
36 | | -`general_suite_*` / `result_general_*` code paths. Prefer `run_vision_*`, |
37 | | -`result_vision_*`, and `vision_suite_*` in new work. Old artifact filenames |
38 | | -under local experiment dirs are gitignored, not read by current code. |
39 | | - |
40 | | -## Output Artifacts |
41 | | - |
42 | | -New vision runs write canonical filenames only (Gate 6 batch 2). Suite helpers |
43 | | -also accept short `suite_*` artifact names when present: |
44 | | - |
45 | | -| Canonical (new runs) | Short legacy (read-only) | |
| 7 | +| 영역 | Canonical | |
46 | 8 | |---|---| |
47 | | -| `result_vision_*.json` | — | |
48 | | -| `vision_suite_summary.json` / `.csv` / `.md` | `suite_summary.*` | |
49 | | -| `vision_suite_rows.json` | `suite_rows.json` | |
50 | | - |
51 | | -Readers and suite helpers prefer canonical paths when |
52 | | -both exist. See `graphfl_lab/experiments/suites/vision/artifacts.py` and |
53 | | -`variant_helpers.resolve_result_path_for_variant`. |
54 | | - |
55 | | -Single-run JSON may also record: |
56 | | - |
57 | | -```text |
58 | | -meta.canonical_output_path |
59 | | -meta.compatibility_output_path |
60 | | -``` |
| 9 | +| package | `graphfl_lab` | |
| 10 | +| vision runner | `run_vision_*` | |
| 11 | +| unified runner | `run_experiment.py --track vision|cora` | |
| 12 | +| vision result | `result_vision_*` | |
| 13 | +| vision suite | `vision_suite_*` | |
| 14 | +| aggregation target | `graph_filtered_*` | |
| 15 | +| filter strength | `graph_filter_strength` | |
61 | 16 |
|
62 | | -## Reporting Commands |
| 17 | +## Compatibility Alias |
63 | 18 |
|
64 | | -Canonical report and analysis entrypoints: |
65 | | - |
66 | | -```text |
67 | | -scripts/reports/plot_vision_convergence.py |
68 | | -scripts/reports/generate_dashboard_mockup.py |
69 | | -scripts/analysis/deep_dive_vision.py |
70 | | -scripts/analysis/merge_vision_fedavg_ours.py |
71 | | -``` |
72 | | - |
73 | | -## Schema Fields |
74 | | - |
75 | | -New results will eventually include: |
76 | | - |
77 | | -```text |
78 | | -result_schema_version |
79 | | -config_aliases_used |
80 | | -unsupported_components |
81 | | -``` |
82 | | - |
83 | | -Results without `result_schema_version` are treated as `v0` and should remain |
84 | | -readable with warnings during the compatibility period. |
85 | | - |
86 | | -## For Maintainers |
87 | | - |
88 | | -Do not start a rename by editing imports directly. Start from Gate 0 and keep |
89 | | -the repository resumable: |
90 | | - |
91 | | -```text |
92 | | -python scripts/dev/run.py gate-check 0 |
93 | | -``` |
94 | | - |
95 | | -Gate sequence: |
96 | | - |
97 | | -```text |
98 | | -Gate 0 workspace/status/check contract |
99 | | -Gate 1 inventory |
100 | | -Gate 2 schema/config contract |
101 | | -Gate 3 graphfl_lab package migration (`spectral_fl` shim removed in Gate 6 batch 6) |
102 | | -Gate 4 unified runner and nightly |
103 | | -Gate 5 behavior-preserving modularization |
104 | | -Gate 6 hard cleanup and 1.0.0 |
105 | | -``` |
| 19 | +| Legacy | Current | |
| 20 | +|---|---| |
| 21 | +| `configs/general/...` | `configs/vision/...` path alias | |
| 22 | +| `spectral_filter_strength` | JSON read alias for `graph_filter_strength` | |
| 23 | +| `spectral_filtered_*` | aggregation input alias | |
| 24 | +| `ours_spectral_filtered_*` | historical reporting tag | |
106 | 25 |
|
107 | | -Gate 6 batch 6 removed the `spectral_fl` import shim. Use `graphfl_lab` for all |
108 | | -new imports. Run `scripts/dev/migrate_serialized_objects.py` before loading |
109 | | -external pickle assets; tracked repo assets had no legacy module-path markers. |
| 26 | +## Removed Surface |
110 | 27 |
|
111 | | -Migration C5 (public docs/commands) status: complete on `main`. Gate 4c nightly |
112 | | -evidence is recorded in `docs/maintenance/last_nightly_run.json`. Gate 6 |
113 | | -compatibility removal is documented in `docs/maintenance/gate-6-prep.md`; seven |
114 | | -consecutive nightly runs are optional strict mode, not a hard prerequisite. |
115 | | -The machine-readable closure check is `python scripts/dev/run.py gate-check 6`. |
| 28 | +| Removed | Replacement | |
| 29 | +|---|---| |
| 30 | +| `spectral_fl` package shim | `graphfl_lab` | |
| 31 | +| `run_general_*` | `run_vision_*` | |
| 32 | +| `graphfl_lab/experiments/general/` | `graphfl_lab/experiments/vision/` | |
| 33 | +| `graphfl_lab/experiments/suites/general/` | `graphfl_lab/experiments/suites/vision/` | |
| 34 | +| `general_suite_*` artifact readers/writers | `vision_suite_*` | |
| 35 | +| `result_general_*` artifact readers/writers | `result_vision_*` | |
116 | 36 |
|
117 | | -## Rollback |
| 37 | +## Canonical |
118 | 38 |
|
119 | | -The `pre-graphfl-rename` tag must be created after the Gate 0 commit and before |
120 | | -Gate 1 begins. If a later gate needs rollback, revert to the last merged gate |
121 | | -commit or to the release anchor recorded in `docs/removed-materials.md`. |
| 39 | +세부 migration, compatibility, gate-check contract는 `docs/maintenance/migration-and-compatibility.md`에서 관리한다. |
0 commit comments