Skip to content

Commit d4dbb56

Browse files
committed
Support partial expert rollout in automation
1 parent b9edbab commit d4dbb56

4 files changed

Lines changed: 21 additions & 8 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ This repository teaches programming through small runnable examples and focused
2525
| Language | Current Levels | Coverage | Track Status |
2626
| --- | --- | --- | --- |
2727
| C++ | 00-setup, 01-foundations, 02-core, 03-advanced, 04-expert | Foundations, Core, Advanced, Expert, projects, assessments | Most complete and primary track |
28-
| C# | 01-foundations, 02-core, 03-advanced | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 2/4 projects, 2/4 assessments | Advanced parity complete, checkpoints started |
28+
| C# | 01-foundations, 02-core, 03-advanced, 04-expert (partial) | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 1/5 expert modules, 2/4 projects, 2/4 assessments | Advanced parity complete, expert rollout started |
2929
| Go | 01-foundations, 02-core, 03-advanced | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 2/4 projects, 2/4 assessments | Advanced parity complete, checkpoints started |
3030
| Python | 01-foundations, 02-core, 03-advanced | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 2/4 projects, 2/4 assessments | Advanced parity complete, checkpoints started |
3131

languages/csharp/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
## Scope and Status
44

5-
This track currently covers `01-foundations`, `02-core`, and `03-advanced`, plus the first checkpoint layer in `projects` and `assessments`.
5+
This track currently covers `01-foundations`, `02-core`, `03-advanced`, and an early `04-expert` rollout, plus the first checkpoint layer in `projects` and `assessments`.
66

77
- 8/8 foundations modules implemented.
88
- 6/6 core modules implemented (`input-validation`, `algorithms-basics`, `file-io-basics`, `sorting-and-searching`, `maps-and-frequency-counting`, `error-handling-and-defensive-programming`).
99
- 5/5 advanced modules implemented (`structs-and-classes`, `constructors-and-invariants`, `copy-and-move-semantics`, `inheritance-and-polymorphism`, `templates-basics`).
10-
- Experimental expert start: `04-expert/modularization-and-build-structure` is available while the rest of the level remains planned.
10+
- 1/5 expert modules implemented (`modularization-and-build-structure`).
1111
- 2/4 projects implemented (`01-foundations`, `02-core`).
1212
- 2/4 assessments implemented (`01-foundations`, `02-core`).
1313
- Same module naming as C++, Python, and Go for parity.

scripts/automation_core/ops.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,14 @@ def iter_module_directories(ctx: RepoContext) -> list[tuple[str, str, Path]]:
388388
return directories
389389

390390

391+
def expected_modules_for_language_level(ctx: RepoContext, language: str, level: str) -> list[str]:
392+
config = ctx.manifest.languages[language]
393+
module_overrides = config.get("module_overrides", {})
394+
if level in module_overrides:
395+
return list(module_overrides[level])
396+
return list(ctx.manifest.module_order[level])
397+
398+
391399
def check_readme_structure(ctx: RepoContext) -> None:
392400
readmes = [
393401
module_dir / "README.md"
@@ -423,7 +431,7 @@ def check_module_completeness(ctx: RepoContext) -> None:
423431
if not level_path.is_dir():
424432
continue
425433

426-
expected_modules = list(ctx.manifest.module_order[level])
434+
expected_modules = expected_modules_for_language_level(ctx, language, level)
427435
actual_modules = sorted(path.name for path in level_path.iterdir() if path.is_dir())
428436
missing_modules = [name for name in expected_modules if name not in actual_modules]
429437
unexpected_modules = [name for name in actual_modules if name not in expected_modules]

scripts/automation_manifest.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@
6464
},
6565
"csharp": {
6666
"extension": "cs",
67-
"levels": ["01-foundations", "02-core", "03-advanced"],
68-
"module_levels": ["01-foundations", "02-core", "03-advanced"],
67+
"levels": ["01-foundations", "02-core", "03-advanced", "04-expert"],
68+
"module_levels": ["01-foundations", "02-core", "03-advanced", "04-expert"],
69+
"module_overrides": {
70+
"04-expert": ["modularization-and-build-structure"]
71+
},
6972
"checkpoints": {
7073
"projects": ["01-foundations", "02-core"],
7174
"assessments": ["01-foundations", "02-core"]
@@ -76,10 +79,11 @@
7679
"- 8/8 foundations modules implemented.",
7780
"- 6/6 core modules implemented (`input-validation`, `algorithms-basics`, `file-io-basics`, `sorting-and-searching`, `maps-and-frequency-counting`, `error-handling-and-defensive-programming`).",
7881
"- 5/5 advanced modules implemented (`structs-and-classes`, `constructors-and-invariants`, `copy-and-move-semantics`, `inheritance-and-polymorphism`, `templates-basics`).",
82+
"- 1/5 expert modules implemented (`modularization-and-build-structure`).",
7983
"- 2/4 projects implemented (`01-foundations`, `02-core`).",
8084
"- 2/4 assessments implemented (`01-foundations`, `02-core`)."
8185
],
82-
"root_status_row": "| C# | 01-foundations, 02-core, 03-advanced | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 2/4 projects, 2/4 assessments | Advanced parity complete, checkpoints started |"
86+
"root_status_row": "| C# | 01-foundations, 02-core, 03-advanced, 04-expert (partial) | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 1/5 expert modules, 2/4 projects, 2/4 assessments | Advanced parity complete, expert rollout started |"
8387
},
8488
"go": {
8589
"extension": "go",
@@ -242,7 +246,8 @@
242246
"languages/csharp/03-advanced/constructors-and-invariants/example/constructors-and-invariants-example.csproj",
243247
"languages/csharp/03-advanced/copy-and-move-semantics/example/copy-and-move-semantics-example.csproj",
244248
"languages/csharp/03-advanced/inheritance-and-polymorphism/example/inheritance-and-polymorphism-example.csproj",
245-
"languages/csharp/03-advanced/templates-basics/example/templates-basics-example.csproj"
249+
"languages/csharp/03-advanced/templates-basics/example/templates-basics-example.csproj",
250+
"languages/csharp/04-expert/modularization-and-build-structure/example/modularization-and-build-structure-example.csproj"
246251
],
247252
"stdin_runs": [
248253
{

0 commit comments

Comments
 (0)