Pasar al contenido principal

Capgo Verificador de Semver

Verifique la compatibilidad de la política del canal contra la base nativa enviada como versión_build

La versión nativa enviada a Capgo como version_build, desde la configuración o metadatos de la aplicación nativa.

La versión de paquete asignada al canal resuelto.

Ingrese dos versiones semánticas para ver la comparación

¿Qué significa "Versión de línea base nativa"?

La Versión de línea base nativa es la versión de la aplicación nativa enviada a Capgo como version_build cuando el dispositivo solicita al servidor de actualizaciones un paquete. En una aplicación Capacitor, ese valor puede provenir de CapacitorUpdater.version si está presente. Si ese ajuste no está presente, el complemento recae en la versión de la aplicación nativa de iOS o Android. No asuma que es su capacitor.config.*versión a menos que su compilación copie ese valor en la configuración o en los metadatos de la aplicación nativa. package.json __CAPGO_KEEP_0__ sigue utilizando

Capgo still uses version_name , y major, minorcomparan el paquete remoto contra patch __CAPGO_KEEP_0__ config version_build.

Capacitor config

Establecer CapacitorUpdater.version cuando desee una versión explícita enviada por la aplicación.

Pro: fácil de mantener lo mismo en iOS y Android.

Con: la configuración desactualizada puede informar la versión incorrecta si se olvida de actualizar antes de una versión nativa.

Versión de la aplicación nativa

Utilice la versión del plataforma, como iOS CFBundleShortVersionString o Android versionName.

Pro: coincide con la versión binaria que los usuarios instalaron desde TestFlight, App Store, Play Store, o pruebas internas.

Con: requiere una compilación nativa y puede variar según la plataforma si los ajustes de lanzamiento se desvían.

Bundle de destino

Comparelo con versiones remotos de paquetes, reglas de semver de canal o restricciones de carga como --native-version.

Pro: evita enviar JavaScript que necesita una versión nativa code más nueva a binarios de aplicaciones antiguas.

Con: las reglas demasiado estrictas pueden bloquear actualizaciones válidas hasta que se ajusta el canal o el metadato del paquete.

Para este tester, ingrese la base nativa que el dispositivo envía como version_build, luego comparelo con la versión remota del paquete que deseas Capgo entregar.

¿Por qué Capgo utiliza la Semántica de la Versión?

Semántica de la Versión es el estándar de versionado más ampliamente adoptado en el desarrollo de software. Al utilizar semver, Capgo garantiza la compatibilidad y la seguridad al entregar actualizaciones en vivo a sus Capacitor aplicaciones.

The semver estándar permite a Capgo comprender exactamente qué cambios se incluyen en cada actualización:

  • Actualizaciones de parche (1.0.0 → 1.0.1): Correcciones de errores, seguras de aplicar automáticamente
  • Actualizaciones menores (1.0.0 → 1.1.0): Nuevas características, compatibles con lo anterior
  • Actualizaciones mayores (1.0.0 → 2.0.0): Cambios disruptivos, requieren lanzamiento de la aplicación nativa en la tienda

Esto impide que Capgo envíe nunca una actualización incompatible a su aplicación nativa code, protegiendo a sus usuarios de errores y asegurando que la aplicación permanezca estable.

Estrategias de Semver flexibles: Más allá de la versión básica

Mientras que semver es estricto sobre su formato básico, puede extenderlo para las necesidades de su equipo utilizando identificadores de pre-lanzamiento y build metadata:

🏷️ Información de construcción (+) - La capa "cosmética"

1.2.0+20240315.142530
Timestamp para el seguimiento de la implementación
1.2.0+ui.refresh.dark-mode
Descripción de actualización de interfaz para el equipo de diseño
1.2.0+build.4729.commit.a1b2c3d
Número de construcción de CI/CD y commit de Git

Importante: La información de construcción se ignora en la precedencia de versión - 1.2.0+anything igual 1.2.0 para Capgo's lógica de actualización.

🔧 Identificadores de prelanzamiento (-) - Canales de desarrollo

1.3.0-beta.1
Canales de prueba de versión beta
1.3.0-hotfix.payment
Rama de corrección urgente
1.3.0-feature.newapi
Prueba de rama de características

Nota: Las versiones preestablecidas tienen menor precedencia - 1.3.0-beta.1 < 1.3.0

Enfoque híbrido - Lo mejor de ambos mundos

1.3.0-rc.1+ui.redesign.20240315
Candidato a liberación con metadatos de interfaz de usuario y fecha de timestamp

Casos de uso y estrategias de Semver en el mundo real y en equipo

🚀 Lanzamiento rápido / Desarrollo rápido

0.1.0 - Primer lanzamiento MVP
0.2.0-beta.1 - Pruebas de nueva característica
0.2.0+ui.v2 - Reestructuración de metadatos de interfaz de usuario
1.0.0 - Listo para producción

Utilice 0.x.x para el desarrollo pre-1.0, metadatos para el seguimiento de diseño

🏢 Empresa / Regulada

2.1.0 → Lanzamiento trimestral
2.1.1+sec.patch.cve2024 → Parche de seguridad con seguimiento
2.2.0-rc.1+audit.ready → Candidato a lanzamiento previo a la auditoría

Semver estricto con metadatos de cumplimiento

🎮 Aplicaciones de juegos / Aplicaciones creativas

1.0.0+season.winter.2024 → Contenido estacional
1.1.0+event.halloween → Características basadas en eventos
1.2.0+assets.hd.remaster → Actualizaciones de activos

Metadatos creativos para el seguimiento de contenido

⚡ Estrategia de parches de emergencia

1.2.0 → Producción actual
1.2.1-hotfix.payment → Corrección de bug crítico
1.2.1+urgent.20240315.1430 → Lanzado con fecha de timestamp

Pre-lanzamiento para pruebas, metadatos para el seguimiento de la implementación

🌍 Estrategia de múltiples plataformas

1.3.0+ios.optimized → Optimizaciones específicas de iOS
1.3.0+android.material3 → Actualizaciones de diseño de Android
1.3.0+web.pwa.ready → Capabilidades de PWA

Same versión, metadatos específicos de plataforma

🔄 Integración de CI/CD

1.4.0-alpha.1+build.123 → Despliegue automático de prelanzamiento
1.4.0+deploy.staging.456 → Despliegue de etapa
1.4.0+prod.final.789 → Despliegue de producción

Versión automática con metadatos de despliegue

💡 Consejos Pro:
  • Utilice metadatos de construcción (+) para rastrear, fechas y hora, o información cosmética que no afecta la compatibilidad
  • Utilice identificadores de prelanzamiento (-) para canales de desarrollo que necesitan diferentes prioridades de actualización
  • Combine ambos para la máxima flexibilidad: 1.2.0-beta.1+ui.dark.theme.20240315
  • Recuerde: Capgo respeta las reglas de precedencia de semver, así que planifique su estrategia de canal según corresponda

Importante: Capgo utiliza la versión semántica estricta

A diferencia de la implementación de npm de semver, Capgo sigue estrictamente la especificación SemVer oficial. npm tiene conocidas desviaciones de la especificación en node-semver, lo que puede causar un comportamiento inesperado.

Por ejemplo, npm trata versiones como 1.0.0-alpha.1 diferentemente de lo que requiere la especificación. Consulte nuestro informe de problema y intentos de solución que nunca se fusionaron.

Versiones Semánticas Válidas

1.0.0 ✓ Lanzamiento estándar
2.1.3-alpha ✓ Pre-lanzamiento
1.0.0-beta.1 ✓ Pre-lanzamiento con número
1.0.0+build.1 ✓ Construye metadatos
1.0.0-rc.1+build.1 ✓ Versión completa

Versión semántica inválida

v1.0.0 ✗ No se permite 'v' al principio
1.0 ✗ Falta la versión de parche
1.0.0.0 ✗ Hay demasiados partes de versión
1.0.0- ✗ Pre-establecimiento vacío
1.0.0+ ✗ Metadatos de construcción vacío

Capgo Actualización de comportamiento

La estrategia menor permite cambios de parche en la misma línea mayor.menor, por ejemplo 1.0.0 -> 1.0.1
La estrategia de parche bloquea 1.0.0 -> 1.0.1. Solo permite cambios de sufijo como 1.0.0-beta.1 -> 1.0.0-beta.2.
La estrategia de mayor bloquea paquetes de destino con un mayor mayor que la base nativa, por ejemplo 1.0.0 -> 2.0.0
La protección de downgrade utiliza la precedencia completa de semver, por lo que 1.0.0 estable es más nuevo que 1.0.0-beta.2

Esta herramienta sigue la especificación de versión semántica oficial a diferencia de la implementación de __CAPGO_KEEP_0__ unlike npm's implementation.