Skip to content

v6.0.0

Latest
Compare
Choose a tag to compare
@lupomontero lupomontero released this 11 Jun 16:37
· 4 commits to main since this release

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

Changelog

  • 360f16a feat(project): Agrega validación de props de OAs
  • fb39bb8 chore(pkg): Actualiza dependencias
  • 7e8fe35 chore(pkg): Actualiza dependencias
  • 26d16a0 feat(Project): Adds support for variant languages/optional and turning off learning objectives (#88)