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: Versió major.
- 4: Versió menor.
- 2: Versió de correcció.
Regles del Versionat Semàntic
- Versió Inicial (0.y.z): La versió inicial és
0.y.z
, ony
iz
poden canviar de manera arbitrària. Aquesta versió indica que el programari encara està en desenvolupament i pot canviar de manera significativa. - Versió 1.0.0: Quan el programari està llest per a la producció, es llança la versió
1.0.0
. - Canvis MAJOR: Incrementa el número MAJOR quan fas canvis incompatibles amb versions anteriors.
- Canvis MINOR: Incrementa el número MINOR quan afegeixes funcionalitats noves que són compatibles amb versions anteriors.
- 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
- Configuració del
package.json
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" } }
- 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:
- Si fas una correcció d'errors, incrementa el número PATCH:
- Si fas canvis incompatibles amb versions anteriors, incrementa el número MAJOR:
- 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:
Per incrementar la versió MINOR:
Per incrementar la versió 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
- Crea un projecte Node.js nou.
- Afegeix una dependència, per exemple,
express
. - Configura el
package.json
amb la versió1.0.0
. - Fes una correcció d'errors en el teu codi.
- 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
- Afegeix una nova funcionalitat al teu projecte.
- Utilitza NPM per incrementar la versió MINOR.
Solució
Exercici 3: Actualitzar la Versió MAJOR
- Fes un canvi incompatible amb versions anteriors.
- Utilitza NPM per incrementar la versió MAJOR.
Solució
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
- Introducció a Express.js
- Configuració d'una Aplicació Express
- Middleware
- Routing en Express
- Gestió d'Errors
Mòdul 7: Bases de Dades i ORMs
- Introducció a les Bases de Dades
- Utilitzar MongoDB amb Mongoose
- Utilitzar Bases de Dades SQL amb Sequelize
- Operacions CRUD
Mòdul 8: Autenticació i Autorització
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb Mocha i Chai
- Proves d'Integració
- Depuració d'Aplicacions Node.js
Mòdul 10: Temes Avançats
Mòdul 11: Desplegament i DevOps
- Variables d'Entorn
- Utilitzar PM2 per a la Gestió de Processos
- Desplegar a Heroku
- Integració i Desplegament Continu