Skip to content

Commit 7e29155

Browse files
committed
Add Graph-FL evidence pack and docs consolidation
1 parent 47d793c commit 7e29155

68 files changed

Lines changed: 4040 additions & 7486 deletions

File tree

Some content is hidden

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

CHANGELOG.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
# Changelog
1+
# 변경 기록
22

33
## 1.0.0 - 2026-05-22
44

5-
- Made `graphfl_lab` the canonical package and Flower app path.
6-
- Removed the `spectral_fl` package shim and legacy `run_general_*` / `general_*` facades.
7-
- Standardized new vision artifacts on `result_vision_*` and `vision_suite_*`.
8-
- Kept documented read-only aliases for historical JSON/config inputs and old reporting tags.
9-
- Added the unified runner track surface through `run_experiment.py --track vision|cora`.
5+
| 영역 | 변경 |
6+
|---|---|
7+
| package | canonical package를 `graphfl_lab`으로 통일 |
8+
| Flower app | Flower app path를 `graphfl_lab` 기준으로 정리 |
9+
| legacy surface | `spectral_fl`, `run_general_*`, `general_*` facade 제거 |
10+
| vision artifact | 새 결과명을 `result_vision_*`, `vision_suite_*`로 표준화 |
11+
| compatibility | 과거 JSON/config 입력을 위한 read-only alias 유지 |
12+
| unified runner | `run_experiment.py --track vision|cora` surface 추가 |

MIGRATION.md

Lines changed: 29 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,39 @@
1-
# GraphFL Lab Migration Guide
1+
# GraphFL Lab Migration
22

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`에서 완료되었다.
94

10-
## For Users
5+
## Canonical Surface
116

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 |
468
|---|---|
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` |
6116

62-
## Reporting Commands
17+
## Compatibility Alias
6318

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 |
10625

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
11027

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_*` |
11636

117-
## Rollback
37+
## Canonical
11838

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

Comments
 (0)