{"id":181,"date":"2026-02-28T15:38:29","date_gmt":"2026-02-28T18:38:29","guid":{"rendered":"https:\/\/solidchain.ar\/?p=181"},"modified":"2026-02-28T15:38:30","modified_gmt":"2026-02-28T18:38:30","slug":"versionado-de-software-semver-y-el-ciclo-de-vida","status":"publish","type":"post","link":"https:\/\/solidchain.ar\/index.php\/2026\/02\/28\/versionado-de-software-semver-y-el-ciclo-de-vida\/","title":{"rendered":"Versionado de Software: SemVer y el Ciclo de Vida"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El &#8220;Contrato&#8221; del Versionado Sem\u00e1ntico<\/h2>\n\n\n\n<p>El SemVer no es solo un n\u00famero; es un compromiso. Al usar el formato <strong>X.Y.Z<\/strong>, le est\u00e1s diciendo a quien use tu c\u00f3digo (ya sea un cliente o un colega) qu\u00e9 esperar al actualizar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El N\u00famero MAYOR (X): La Ruptura (Breaking Changes)<\/h3>\n\n\n\n<p>Este n\u00famero cambia cuando el c\u00f3digo nuevo <strong>no es compatible<\/strong> con el anterior. Si alguien actualiza a una nueva versi\u00f3n &#8220;Major&#8221;, es muy probable que su aplicaci\u00f3n deje de funcionar a menos que haga cambios manuales.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cambios en la Firma:<\/strong> Renombrar una funci\u00f3n principal o cambiar el orden\/tipo de los par\u00e1metros requeridos.<\/li>\n\n\n\n<li><strong>Esquema de Base de Datos:<\/strong> Eliminar columnas de una tabla o cambiar tipos de datos que afectan consultas existentes.<\/li>\n\n\n\n<li><strong>Eliminaci\u00f3n de Funciones:<\/strong> Quitar una parte del c\u00f3digo que hab\u00edas marcado como &#8220;obsoleta&#8221; (deprecated) en versiones anteriores.<\/li>\n\n\n\n<li><strong>Cambios de Dependencias:<\/strong> Migrar de un framework a otro (por ejemplo, pasar de una librer\u00eda de renderizado a otra totalmente distinta).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">El N\u00famero MENOR (Y): La Evoluci\u00f3n (New Features)<\/h3>\n\n\n\n<p>Se incrementa cuando a\u00f1ades valor al producto sin romper lo que ya existe. Es una actualizaci\u00f3n &#8220;segura&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nuevos Endpoints:<\/strong> Agregar una nueva ruta a una API (ej. <code>\/api\/v1\/users<\/code> sigue funcionando, pero ahora existe <code>\/api\/v1\/reports<\/code>).<\/li>\n\n\n\n<li><strong>Par\u00e1metros Opcionales:<\/strong> Agregar una nueva funcionalidad a una funci\u00f3n existente que, si no se usa, no afecta el resultado previo.<\/li>\n\n\n\n<li><strong>Nuevas Vistas o Componentes:<\/strong> En el frontend, agregar una nueva pantalla o un bot\u00f3n que antes no estaba.<\/li>\n\n\n\n<li><strong>Optimizaciones de Rendimiento:<\/strong> Si el c\u00f3digo ahora corre m\u00e1s r\u00e1pido pero se llama igual, es un cambio menor.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">El N\u00famero PARCHE (Z): La Estabilidad (Bug Fixes)<\/h3>\n\n\n\n<p>Este es el n\u00famero que m\u00e1s se mueve. Representa el mantenimiento diario y la correcci\u00f3n de errores que no alteran c\u00f3mo se usa la aplicaci\u00f3n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Correcci\u00f3n de Seguridad:<\/strong> Parchear una vulnerabilidad.<\/li>\n\n\n\n<li><strong>Refactorizaci\u00f3n Interna:<\/strong> Limpiar el c\u00f3digo para que sea m\u00e1s legible sin cambiar su comportamiento externo.<\/li>\n\n\n\n<li><strong>Errores de L\u00f3gica:<\/strong> Corregir un c\u00e1lculo matem\u00e1tico que devolv\u00eda un resultado err\u00f3neo bajo ciertas condiciones.<\/li>\n\n\n\n<li><strong>Ajustes Visuales:<\/strong> Corregir un error de alineaci\u00f3n en el CSS o una falta de ortograf\u00eda en la interfaz.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">El Mapa de Ruta: Del C\u00f3digo al Usuario Final<\/h2>\n\n\n\n<p>La relaci\u00f3n entre el versionado y el ciclo de vida se visualiza mejor como una l\u00ednea de tiempo donde el n\u00famero de versi\u00f3n va ganando &#8220;apellidos&#8221; (sufijos) antes de quedar limpio para el p\u00fablico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fase 1: El Nacimiento (Alpha y la Versi\u00f3n 0)<\/h3>\n\n\n\n<p>Cuando empiezas un proyecto nuevo (como cuando inicias el backend en .NET o la estructura en PHP de tus aplicaciones), no tienes una versi\u00f3n estable.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estado:<\/strong> Alpha.<\/li>\n\n\n\n<li><strong>Versi\u00f3n Sugerida:<\/strong> <code>0.1.0-alpha<\/code>.<\/li>\n\n\n\n<li><strong>L\u00f3gica:<\/strong> Est\u00e1s en la &#8220;Versi\u00f3n Cero&#8221;. Aqu\u00ed, el n\u00famero <strong>Menor<\/strong> (1) sube cada vez que terminas una funcionalidad b\u00e1sica, y el <strong>Parche<\/strong> (0) sube con cada correcci\u00f3n interna. El sufijo <code>-alpha<\/code> advierte que el c\u00f3digo puede romperse en cualquier momento.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Fase 2: El Pulido (Beta y el Salto a la 1.0.0)<\/h3>\n\n\n\n<p>Una vez que la aplicaci\u00f3n tiene todas las funciones principales y es &#8220;funcionalmente completa&#8221;, pasamos a las pruebas externas.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estado:<\/strong> Beta.<\/li>\n\n\n\n<li><strong>Versi\u00f3n Sugerida:<\/strong> <code>1.0.0-beta.1<\/code>.<\/li>\n\n\n\n<li><strong>L\u00f3gica:<\/strong> Ya te est\u00e1s preparando para el gran lanzamiento (v1.0.0). Las versiones Beta sirven para recolectar feedback. Si encuentras errores durante las pruebas de usuario, subes el sufijo: <code>1.0.0-beta.2<\/code>, <code>1.0.0-beta.3<\/code>, etc.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Fase 3: La Recta Final (Release Candidate)<\/h3>\n\n\n\n<p>Es el \u00faltimo filtro. La aplicaci\u00f3n ya no deber\u00eda recibir funciones nuevas, solo correcciones cr\u00edticas.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estado:<\/strong> RC (Release Candidate).<\/li>\n\n\n\n<li><strong>Versi\u00f3n Sugerida:<\/strong> <code>1.0.0-rc.1<\/code>.<\/li>\n\n\n\n<li><strong>L\u00f3gica:<\/strong> Si esta versi\u00f3n no presenta errores graves en un periodo de tiempo (por ejemplo, una semana), se le quita el sufijo y se convierte oficialmente en la versi\u00f3n <strong>Stable<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Fase 4: Producci\u00f3n y Mantenimiento (Stable\/GA)<\/h3>\n\n\n\n<p>El software ya est\u00e1 en manos del usuario final. Aqu\u00ed es donde el SemVer brilla en su forma pura.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estado:<\/strong> Stable \/ GA.<\/li>\n\n\n\n<li><strong>Versi\u00f3n:<\/strong> <code>1.0.0<\/code>.<\/li>\n\n\n\n<li><strong>L\u00f3gica de mantenimiento:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00bfUn error visual en el CSS? \u2192 Lanzas la <code>1.0.1<\/code>.<\/li>\n\n\n\n<li>\u00bfA\u00f1adiste un nuevo reporte o vista? \u2192 Lanzas la <code>1.1.0<\/code>.<\/li>\n\n\n\n<li>\u00bfCambiaste la estructura de la base de datos y las versiones viejas ya no conectan? \u2192 Lanzas la <code>2.0.0<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>El &#8220;Contrato&#8221; del Versionado Sem\u00e1ntico El SemVer no es solo un n\u00famero; es un compromiso. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":182,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/posts\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":2,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/posts\/181\/revisions\/184"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/media\/182"}],"wp:attachment":[{"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidchain.ar\/index.php\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}