Un track consta de muchas partes diferentes.
La configuración y los metadatos del track se especifican en el fichero config.json. En él se enumeran los ejercicios, los conceptos, la configuración del editor y mucho más. Consulta la documentación de config.json.
Todos los ejercicios de concepto y de práctica de un track implican conceptos. Estos conceptos son entidades independientes en sí mismas. Consulta la documentación para obtener más información.
Los conceptos que se enseñan en los ejercicios de concepto del track forman un temario. El temario se muestra a los estudiantes como un mapa de conceptos. Consulta la documentación del mapa de conceptos para saber cómo crear el mapa de conceptos de un temario.
Para obtener más información sobre cómo diseñar un temario, consulta la documentación del temario.
Los tracks tienen dos tipos de ejercicios:
Cada ejercicio tiene una sección opcional Dig Deeper que puede contener:
Algunos ficheros no son específicos de cada ejercicio, sino que se aplican a todos los ejercicios. Consulta la documentación para obtener más información.
Cada track tiene un par de ficheros de documentación obligatorios. Consulta la documentación para obtener más información.
Algunas partes del track se pueden mostrar en widgets.
Todos los documentos deben seguir la guía de estilo. Los documentos Markdown también deben seguir nuestros estándares de Markdown.
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
A cada track se le asigna (automáticamente) una categoría de mantenimiento, que determina los permisos del repositorio de GitHub del mantenedor del track.
Cuando fusionas un PR del track que afecta a un ejercicio, se vuelven a ejecutar los tests de todas las últimas iteraciones publicadas de las soluciones de los estudiantes. En los ejercicios populares, esta es una operación muy costosa (¡70.000 ejecuciones de tests para el Hello World de Python como caso extremo!).
Te animamos a intentar evitar hacerlo sin necesidad.
Las soluciones no se volverán a testear si el commit fusionado cumple alguna de estas condiciones:
.docs o .meta, u otros ficheros con los que los usuarios no interactúan[no important files changed] en el cuerpo del commit.Las soluciones sí se volverán a testear si el commit fusionado cumple las dos condiciones siguientes:
[no important files changed] en el cuerpo del commit.meta/config.json):
Algunos ejemplos:
[no important files changed] añadido, así que no se ejecutó ningún test