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: true
En 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
featured
beta
deprecated
hidden