Ein Track besteht aus vielen verschiedenen Teilen.
Die Konfiguration und die Metadaten des Tracks stehen in der Datei config.json. Sie listet die Übungen, die Konzepte und die Editor-Einstellungen des Tracks auf und noch vieles mehr. Schau dir die Dokumentation zu config.json an.
Alle Konzept- und Praxisübungen eines Tracks drehen sich um Konzepte. Diese Konzepte sind eigenständige Einheiten. Weitere Informationen findest du in der Dokumentation.
Die Konzepte, die in den Konzeptübungen des Tracks vermittelt werden, bilden einen Lehrplan. Der Lehrplan wird den Lernenden als Konzeptkarte angezeigt. In der Konzeptkarten-Dokumentation erfährst du, wie du die Konzeptkarte für einen Lehrplan aufbaust.
Wie du einen Lehrplan entwirfst, erfährst du in der Dokumentation zum Lehrplan.
Tracks haben zwei Arten von Übungen:
Jede Übung hat einen optionalen „Dig Deeper“-Bereich, der Folgendes enthalten kann:
Manche Dateien gehören nicht zu einzelnen Übungen, sondern gelten für alle Übungen. Weitere Informationen findest du in der Dokumentation.
Jeder Track hat einige erforderliche Dokumentationsdateien. Weitere Informationen findest du in der Dokumentation.
Einige Teile des Tracks lassen sich in Widgets anzeigen.
Alle Dokumente sollten sich an den Styleguide halten. Markdown-Dokumente sollten außerdem unseren Markdown-Standards entsprechen.
csharp ├── config | ├── exercise_readme.go.tmpl | └── maintainers.json ├── docs | ├── ABOUT.md | ├── INSTALLATION.md | ├── LEARNING.md | ├── RESOURCES.md | └── TESTS.md ├── concepts | └── numbers | ├── about.md | ├── introduction.md | └── links.json └── exercises | ├── concept | | └── cars-assemble | | ├── .docs | | | ├── hints.md | | | ├── introduction.md | | | └── instructions.md | | ├── .meta | | | ├── config.json | | | ├── design.md | | | └── Exemplar.cs (track-specific) | | ├── CarsAssemble.cs (track-specific) | | ├── CarsAssemble.csproj (track-specific) | | └── CarsAssembleTests.cs (track-specific) | ├── practice | | └── leap | | └── .docs | | | └── instructions.md | | └── .meta | | | ├── config.json | | | └── Example.cs (track-specific) | | ├── Leap.cs (track-specific) | | ├── Leap.csproj (track-specific) | | └── LeapTests.cs (track-specific) | └── shared | └── .docs | ├── debug.md | ├── help.md | └── tests.md └── config.json
Jedem Track wird (automatisch) eine Wartungskategorie zugewiesen, die die GitHub-Repo-Berechtigungen der Maintainer des Tracks festlegt.
Wenn du einen Track-PR mergst, der eine Übung berührt, führt das dazu, dass die neuesten veröffentlichten Iterationen aller Lösungen von Lernenden erneut getestet werden. Bei beliebten Übungen ist das eine sehr teure Angelegenheit (70.000 Testläufe für Python Hello World, im Extremfall!).
Wir möchten dich ermutigen, das nach Möglichkeit nicht unnötig auszulösen.
Lösungen werden nicht erneut getestet, wenn der gemergte Commit entweder:
.docs oder .meta oder andere Dateien berührt, mit denen Nutzende nicht in Berührung kommen[no important files changed] im Commit-Text enthält.Lösungen werden erneut getestet, wenn der gemergte Commit beides erfüllt:
[no important files changed] im Commit-Text fehlt.meta/config.json angegeben):
Ein paar Beispiele:
[no important files changed] gemergt, also wurden keine Tests ausgeführt