El versionat semàntic és un sistema de control de versions que ajuda a gestionar les dependències i les actualitzacions de programari de manera coherent i previsible. En aquest tema, aprendrem què és el versionat semàntic, com funciona i com aplicar-lo als nostres projectes Node.js.

Què és el Versionat Semàntic?

El versionat semàntic (SemVer) és un esquema de versionat que utilitza un format de tres números: MAJOR.MINOR.PATCH. Cada número té un significat específic:

  • MAJOR: Canvis incompatibles amb versions anteriors.
  • MINOR: Noves funcionalitats que són compatibles amb versions anteriors.
  • PATCH: Correccions d'errors i millores menors que són compatibles amb versions anteriors.

Exemple de Versionat Semàntic

1.4.2
  • 1: Versió major.
  • 4: Versió menor.
  • 2: Versió de correcció.

Regles del Versionat Semàntic

  1. Versió Inicial (0.y.z): La versió inicial és 0.y.z, on y i z poden canviar de manera arbitrària. Aquesta versió indica que el programari encara està en desenvolupament i pot canviar de manera significativa.
  2. Versió 1.0.0: Quan el programari està llest per a la producció, es llança la versió 1.0.0.
  3. Canvis MAJOR: Incrementa el número MAJOR quan fas canvis incompatibles amb versions anteriors.
  4. Canvis MINOR: Incrementa el número MINOR quan afegeixes funcionalitats noves que són compatibles amb versions anteriors.
  5. Canvis PATCH: Incrementa el número PATCH quan fas correccions d'errors i millores menors que són compatibles amb versions anteriors.

Com Aplicar el Versionat Semàntic

  1. Configuració del package.json

El fitxer package.json és on es defineix la versió del teu projecte Node.js. Aquí tens un exemple de com es veu una entrada de versió en el package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "Un projecte d'exemple",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

  1. Actualitzar la Versió

Quan fas canvis al teu projecte, has d'actualitzar la versió en el package.json seguint les regles del versionat semàntic. Per exemple:

  • Si afegeixes una nova funcionalitat compatible amb versions anteriors, incrementa el número MINOR:
"version": "1.1.0"
  • Si fas una correcció d'errors, incrementa el número PATCH:
"version": "1.0.1"
  • Si fas canvis incompatibles amb versions anteriors, incrementa el número MAJOR:
"version": "2.0.0"

  1. Utilitzar NPM per a la Gestió de Versions

NPM proporciona eines per gestionar les versions de manera senzilla. Per exemple, pots utilitzar el següent comandament per incrementar la versió PATCH:

npm version patch

Per incrementar la versió MINOR:

npm version minor

Per incrementar la versió MAJOR:

npm version major

Aquests comandaments actualitzaran automàticament el fitxer package.json i crearan un commit amb el canvi de versió.

Exercicis Pràctics

Exercici 1: Actualitzar la Versió PATCH

  1. Crea un projecte Node.js nou.
  2. Afegeix una dependència, per exemple, express.
  3. Configura el package.json amb la versió 1.0.0.
  4. Fes una correcció d'errors en el teu codi.
  5. Utilitza NPM per incrementar la versió PATCH.

Solució

npm init -y
npm install express
# Actualitza el package.json manualment o amb npm version
npm version patch

Exercici 2: Actualitzar la Versió MINOR

  1. Afegeix una nova funcionalitat al teu projecte.
  2. Utilitza NPM per incrementar la versió MINOR.

Solució

# Afegeix la nova funcionalitat
npm version minor

Exercici 3: Actualitzar la Versió MAJOR

  1. Fes un canvi incompatible amb versions anteriors.
  2. Utilitza NPM per incrementar la versió MAJOR.

Solució

# Fes el canvi incompatible
npm version major

Resum

El versionat semàntic és una pràctica essencial per gestionar les versions del teu projecte de manera coherent i previsible. Seguint les regles del versionat semàntic, pots assegurar-te que les actualitzacions del teu programari siguin clares i comprensibles per a tots els usuaris i desenvolupadors que treballen amb el teu projecte.

Curs de Node.js

Mòdul 1: Introducció a Node.js

Mòdul 2: Conceptes Bàsics

Mòdul 3: Sistema de Fitxers i I/O

Mòdul 4: HTTP i Servidors Web

Mòdul 5: NPM i Gestió de Paquets

Mòdul 6: Framework Express.js

Mòdul 7: Bases de Dades i ORMs

Mòdul 8: Autenticació i Autorització

Mòdul 9: Proves i Depuració

Mòdul 10: Temes Avançats

Mòdul 11: Desplegament i DevOps

Mòdul 12: Projectes del Món Real

© Copyright 2024. Tots els drets reservats