Skip to content

Releases: Laboratoria/curriculum-parser

v6.0.0

11 Jun 16:37
Compare
Choose a tag to compare

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)

v5.3.0

23 Nov 18:41
Compare
Choose a tag to compare

✨ Highlights

➕➕ Topic, Project, Challenge multi-tracks

Soluciona el problema de que antes no se podía asignar un tópico, proyecto o challenge a más de un track, anteriormente para replicar un tópico en distintos tracks debía duplicarse el tópico, lo que era ineficiente. Desde ahora cualquier tópico, proyecto o challenge puede pertenecer a más de un track.

A partir de este release, ahora puede agregarse una lista de tracks en yml a Proyectos, Tópicos y Challenges, que incluya más de un track, por ejemplo un README de un tópico puede incluir en su sección de metadata:

tracks:
  - web-dev
  - ux
  - data

Changelog

  • fb3f8f3 refactor(cd): Deletes non necessary dependency install on publish
  • 9a79d41 fix(cicd): Adds NPM registry-url
  • 00d6b8e feat(cicd): Adds github actions to publish to NPM
  • af002bc Update README.md
  • 7976b43 fix(tests): Adds new test cases for parseTracks function in common
  • 8553da5 refactor(Common): Refactors the new parseTracks function as per code review. It maintains backwards compatibility with current workflows
  • 47613da refactor(Common): Added validateTracks() in Common module, used in Topic, Project and Challenge modules
  • 7182029 refactor(lib): Refactors Topic, Project and Challenge to use yml array format from meta object instead of csv
  • 39d63c9 refactor(Topic): Changes error message when no tracks are found
  • 22b400c feat(Challenge): Adds 'tracks' attribute to Challenge object
  • 16b8cf0 feat(Project): Adds 'tracks' attribute to Project object
  • 6a48057 feat(Topic): Adds 'tracks' attribute to Topic object

v5.2.0

31 Oct 10:56
Compare
Choose a tag to compare

✨ Highlights

➕➕ Agrega soporte para portugués en challenges de tipo (env) form

Changelog

  • 451e4d3 feat(ci): Agrega Node 20
  • 58d76fd chore(pkg): Actualiza dependencias
  • e4bfb5a feat(tests): Adds cases for '.pt' READMEs
  • a07b600 feat(Challenge): Adds support for Brazilian Portuguese 'form' type challenges

v5.1.0

11 Sep 16:46
Compare
Choose a tag to compare

✨ Highlights

Agrega soporte para string multilinea en challenges del tipo form

Changelog

  • b8fcf9d chore(pkg): Actualiza dependencias
  • 673a311 chore(pkg): Actualiza dependencias
  • 13f06e7 test(challenge): Incrementa cobertura
  • 177bdbf feat(challenge): Agrega soporte para string multilinea en challenges del tipo Form
  • 899e801 fix(project): Throws error when README does not contain a summary

v5.0.0

22 Jul 00:25
Compare
Choose a tag to compare

🌟 Highlights

➕➕ Nueva estructura de proyectos y tópicos #52

⚠️ BREAKING CHANGE

En este hito, realizamos cambios en el analizador para crear una nueva estructura de proyectos y tópicos. El cambio más notable en esta estructura es que ahora solo hay un archivo JSON que representa un proyecto o tópico, el cual contiene las versiones en diferentes idiomas, en lugar de tener una representación "distinta" por cada idioma.

Por ejemplo, la propiedad intl tiene traducciones en español (es) y portugués (pt).

{
  "slug": "burger-queen-api-client",
  "repo": "Laboratoria/bootcamp",
  "path": "projects/04-burger-queen-api-client",
  "version": "6.3.0",
  "parserVersion": "5.0.0-beta.0",
  ...
  "track": "web-dev",
  "learningObjectives": [...],
   "intl": {
    "es": {
      "title": "Burger Queen (API Client)",
      "summary": "<p>Un pequeño restaurante de hamburguesas, que está creciendo, necesita un\nsistema a través del ..."
    },
    "pt": {
      "title": "Burger Queen (API Client)",
      "summary": "<p>Um pequeno restaurante de hambúrgueres, que está crescendo, necessita uma\ninterface em que se possa realizar pedidos utilizando um <em>tablet</em>....</p>"
    }
  },

➕➕ Agrega soporte básico para entorno (env) de challenge tipo form

Estos cambios dan soporte al 1er reto de admisiones del nuevo bootcamp de análisis de datos.

➖➖ Quitamos type "quiz" de las “partes” de los tópicos

⚠️ BREAKING CHANGE

➕➕ Exportamos transformLearningObjectives para usar en curricula

🔧📦 Convertimos el app para usar ESM #52

También en este release , reemplazamos el uso de CommonJS modules por ECMAScript modules (ESM).
Entonces ahora usamos import/export.

Milestones

Changelog

Full Changelog: v4.0.0...v5.x

v4.0.0

05 Jul 16:53
Compare
Choose a tag to compare

⚠️ BREAKING CHANGES

Requires Node.js v14 or greater.

Changelog

Full Changelog: v3.2.0...v4.0.0

Milestone

v3.2.0

23 Mar 15:09
Compare
Choose a tag to compare

Changelog

  • 562a3c6 chore(deps): Actualiza deps y deja de usar @laboratoria/models y mongoose
  • f5cfcba feat(course): Make use of getImages function on course.js module, includes tests
  • abcab07 feat(common): Moved getImages function from project.js to common.js to be used in other modules
  • e0f1a28 chore(deps): Upgrades dependencies including the marked dependency which was yelding a high vulnerability in its previous version
  • 3019c5c Update mentions to 'master' branch to refer to the current 'main' branch, including the outdated badge from coveralls.io on tests coverage on README file

v3.1.0

27 Oct 21:50
Compare
Choose a tag to compare

Milestone

Changelog

  • 2391149 chore(package): Adds tests and mocks to .npmignore
  • 5acb04e chore(tests): Renames test folder to __tests__, adds sharp mock and nock
  • b3f968a feat(projects): Adds project thumbs and descriptions

v3.0.0 - The landing

21 Jun 19:58
Compare
Choose a tag to compare

v3.0.0 - The landing

Milestone

⚠️ Breaking changes

Quita dependencia obsoleta @laboratoria/rubric

Este release finalmente deja de incluir @laboratoria/rubric como dependencia, la cual fue oficilamente deprecada en diciembre del año pasado (2020). Como reemplazo de rubric ahora se incluye nueva funcionalidad para manejar los objetivos de aprendizaje de los proyectos (ver puntos más abajo).

Los JSON de proyecto ya no incluyen los campos rubric y skills

Estos campos hacían referencia a la antigua rúbrica. El parser ya no trata de parsear nada relacionado a la antigua rúbrica. En api.laboratoria.la el campo rubric es requerido pero tiene un valor por defecto, así que no debería ser necesario quitarlo de ProjectSchema, y el campo skills ya era opcional de todas formas.

Los JSON de proyecto ahora opcionalmente incluyen el campo learningObjectives

Este campo es un arreglo de strings. Por ejemplo:

{
  "slug": "trivia-pt",
  "repo": "Laboratoria/bootcamp",
  "path": "projects/00-trivia",
  "version": "3.0.0-alpha.0",
  "parserVersion": "3.0.0-alpha.1",
  "createdAt": "2021-06-02T00:55:35.126Z",
  "prefix": 0,
  "title": "Trivia",
  "locale": "pt-BR",
  "track": "js",
  "learningObjectives": [
    "html/semantics",
    "css/selectors",
    "browser/dom/selectors",
    "browser/dom/events",
    "browser/dom/manipulation",
    "js/data-types/primitive",
    "js/data-types/strings",
    "js/variables",
    "js/conditionals",
    "js/functions",
    "js/semantics",
    "ux/user-understanding",
    "ux/prototyping"
  ]
}

Los objetivos de aprendizaje de cada proyecto se especifican opcionalmente en un archivo project.yml. Ver ejemplo. Los objetivos de aprendizaje en los proyectos son opcionales. Éste es el punto más peliagudo. En la estructura actual de ProjectSchema no se incluye la propiedad learningObjectives, así que asumo que no quedaría guardada en API y por ende MongoDB.

Opción --rubric se ha quitado del comando curriculum-parser project en favor de --lo

Ahora para parsear proyectos usamos una nueva opción --lo (siglas de Learning Objectives) donde específicamos la ruta al directorio que contiene la data centralizada de los objetivos de aprendizaje. Por ejemplo, en la versión 3.x de Laboratoria/bootcamp podríamos parsear un proyecto de la siguiente manera:

curriculum-parser project projects/00-trivia \
  --repo Laboratoria/bootcamp \
  --version 3.0.0 \
  --locale es-ES \
  --track js \
  --lo=./learning-objectives

Changelog

  • 7556be5 chore(deps): Actualiza dependencias
  • b45f1cc feat(learning-objectives): Replaces old rubric skills with new learning objectives

v2.7.1: Security update

09 Mar 17:23
Compare
Choose a tag to compare

Upgrades marked to 2.x.