Highlights
⚠️ BREAKING CHANGE: project.learningObjectives pasa de arreglo de strings a arreglo de objetos
Propiedad learningObjectives en output JSON al parsear proyectos pasa de ser un arreglo de strings a ser un arreglo de objetos donde cada objeto tiene una propiedad id con el mismo string que antes, además de opcionalmente incluir las propiedades optional (OAs opcionales) y exclude (para excluir OAs generales en variantes).
{
"learningObjectives": [
"html",
"css",
"dom"
],
}{
"learningObjectives": [
{ "id": "html" },
{ "id": "css" },
{ "id": "dom" }
]
}☮️ Compatible con archivos project.yml de versiones anteriores
En los project.yml ahora los objetivos de aprendizaje se pueden expresar a la antigua como strings (esto hace que los project.yml antiguos sean compatibles) o como objetos (y así acceder a la nueva funcionalidad).
➕➕ Agrega project.variants
En los project.yml, la propiedad opcional variants puede ser una lista (array) de variantes, donde cada una se define como un objeto con las propiedades name y learningObjectives. De esta manera, cada variante puede agregar o excluir objetivos de aprendizaje específicamente para esa versión. La proppiedad learningObjectives de cada variante expresa las diferencias con respecto a los objetivos de aprendizaje listados de forma general en el proyecto. Consideremos este project.yml:
tracks:
- web-dev
learningObjectives:
- html
- css
- dom
variants:
- name: vanilla
- name: react
learningObjectives:
- react
- id: dom
exclude: true
- name: angular
learningObjectives:
- angular
- id: object-oriented-programming
optional: trueEn este caso, este proyecto estaría ofreciendo 3 variantes (vanilla, react y angular). Las variantes por defecto heredan los objetivos de aprendizaje generales del proyecto (html, css y dom en este caso), y opcionalmente pueden agregar objetivos específicos de la variante (en la variante react agregamos los objetivos de react, y en la de angular agregamos los objetivos de angular y object-oriented-programming como opcional) e incluso excluir objetivos heredados (en el ejemplo la variante react está diciendo que en esa variante no se deben incluir los objetivos de dom).
➕➕ Agrega project.tags
featuredbetadeprecatedhidden