Capgo Tester de Semver
Vérifiez la compatibilité de la politique de canal par rapport à la base native envoyée sous forme de version_build
La version native envoyée à Capgo sous la forme de version_build, à partir de la configuration ou des métadonnées de l'application native.
La version du bundle attribuée au canal résolu.
Qu'est-ce que la "Version de base native" signifie
La Version de base native est la version de l'application native envoyée à Capgo lorsque
version_build lorsque le dispositif demande au serveur d'actualisation d'un paquet. Dans une application Capacitor, cette valeur peut provenir de
CapacitorUpdater.version en capacitor.config.*. Si cette configuration n'est pas présente, le plugin se réfère à la version de l'application native provenant d'iOS ou d'Android. N'assumez pas qu'il s'agit de votre package.json
version à moins que votre build copie cette valeur dans la configuration ou les métadonnées natives.
Capgo utilise toujours version_name pour savoir quel paquet téléchargé est actuellement installé. Les politiques de version semantique de canal, telles que major, minor, et
patch comparent le paquet téléchargé contre version_build.
la configuration de Capacitor
Configurez-le lorsque vous souhaitez une version explicite envoyée par l'application. CapacitorUpdater.version Avantages : facile à conserver identique pour les builds iOS et Android.
Inconvénients : la configuration obsolète peut signaler la mauvaise version si vous oubliez de la mettre à jour avant une mise en production native. Version de l'application native
Utilisez la version de la plateforme, comme iOS ou Android
Avantages : correspond à la version binaire que les utilisateurs ont installée à partir de TestFlight, App Store, Play Store ou de tests internes.
Inconvénients : CFBundleShortVersionString __CAPGO_KEEP_0__
versionName.
__CAPGO_KEEP_0__ __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ change cela nécessite une construction native et peut différer par plateforme si les paramètres de publication dérivent.
Bundle ciblant
Comparez-le avec les versions de bundles distantes, les règles de semver du canal, ou les contraintes d'upload telles que --native-version.
Pro: empêche d'envoyer du JavaScript qui nécessite des code natives plus récents vers des binaires d'applications anciennes.
Con: les règles qui sont trop strictes peuvent bloquer des mises à jour valides jusqu'à ce que les métadonnées du canal ou du bundle soient ajustés.
Pour ce testeur, entrez la base native que le dispositif envoie comme version_build, puis comparez-le avec la version de bundle distante que vous souhaitez Capgo livrer.
Pourquoi Capgo utilise la versionnement Sémantique
Versionnement Sémantique est le standard de versionnement le plus largement adopté dans le développement logiciel. En utilisant semver, Capgo garantit la compatibilité et la sécurité lors du déploiement de mises à jour en direct vers vos Capacitor applications.
The semver standard allows Capgo to understand exactly what changes are included in each update:
- Les mises à jour de patch (1.0.0 → 1.0.1) : Corrections de bogues, sécurisées pour une application automatique
- Les mises à jour mineures (1.0.0 → 1.1.0) : Nouvelles fonctionnalités, compatibles avec les versions précédentes
- Les mises à jour majeures (1.0.0 → 2.0.0) : Les changements de rupture, nécessitent une mise à jour native de l'application
Cela empêche Capgo de jamais envoyer une mise à jour incompatible à votre native code, protégeant vos utilisateurs des plantages et garantissant que votre application reste stable.
Stratégies de Semver flexibles : au-delà de la versionnement de base
Alors que Semver est strict sur sa forme de base, vous pouvez l'étendre pour répondre aux besoins de votre équipe en utilisant les identificateurs de pré-version et build metadata:
🏷️ Informations de construction (+) - Le "Cosmétique" Layer
Important : Les informations de construction sont ignorées dans la priorité de version -
1.2.0+anything équivaut à 1.2.0 pour Capgo's logique de mise à jour.
🔧 Identificateurs de pré-version (-) - Canaux de développement
Note: Les versions préalables ont une priorité inférieure -
1.3.0-beta.1 < 1.3.0
🎯 Approche hybride - Meilleur des deux mondes
Cas d'utilisation Semver du monde réel et stratégies d'équipe
🚀 Développement Rapide / Lancement de Startup
0.1.0 - Première version MVP0.2.0-beta.1 - Test de nouvelle fonctionnalité0.2.0+ui.v2 - Métadonnées de refonte de l'interface utilisateur1.0.0 - Prêt pour la productionUtilisez 0.x.x pour le développement pré-1.0, métadonnées pour le suivi de la conception
🏢 Entreprise / Réglementé
2.1.0 → Sortie trimestrielle2.1.1+sec.patch.cve2024 → Correctif de sécurité avec suivi2.2.0-rc.1+audit.ready → Candidat à la version pré-auditSemver strict avec métadonnées de conformité
🎮 Jeux / Applications Créatives
1.0.0+season.winter.2024 → Contenu saisonnier1.1.0+event.halloween → Fonctionnalités déclenchées par des événements1.2.0+assets.hd.remaster → Mises à jour d'actifsMétadonnées créatives pour le suivi du contenu
⚡ Stratégie de mise à jour de correctifs rapides
1.2.0 → Production actuelle1.2.1-hotfix.payment → Correction critique de bogues1.2.1+urgent.20240315.1430 → Déploiement avec horodatagePré-version pour les tests, métadonnées pour le suivi de la mise en production
🌍 Stratégie de multi-plateformes
1.3.0+ios.optimized → Optimisations iOS spécifiques1.3.0+android.material3 → Mises à jour de conception Android1.3.0+web.pwa.ready → Capacités PWAMême version, métadonnées spécifiques à la plateforme
🔄 Intégration CI/CD
1.4.0-alpha.1+build.123 → Déploiement préalable automatique1.4.0+deploy.staging.456 → Déploiement de stade1.4.0+prod.final.789 → Déploiement de productionNumérotation automatique avec métadonnées de déploiement
- Utilisez les métadonnées de build (+) pour suivre, les horodatages ou les informations cosmétiques qui ne modifient pas la compatibilité
- Utilisez les identifiants de version préalable (-) pour les canaux de développement qui nécessitent une priorité d'actualisation différente
- Combinez les deux pour une flexibilité maximale:
1.2.0-beta.1+ui.dark.theme.20240315 - N'oubliez pas : Capgo respecte les règles de numérotation semver, planifiez donc votre stratégie de canal en conséquence
Important : Capgo utilise une versionnement sémantique stricte
Par contre, l'implémentation de npm du versionnement sémantique n'est pas conforme à la spécification officielle de SemVer, contrairement à Capgo qui suit strictement la spécification. npm's node-semver a des déviations connues de la spécification, ce qui peut entraîner un comportement inattendu.
Par exemple, npm traite les versions comme 1.0.0-alpha.1
differemment que la spécification ne le requiert pas. Voir notre
problème signalé et
tentative de correction qui n'a jamais été fusionnée.
Versions Sémantiques Valides
1.0.0
✓ Sortie standard
2.1.3-alpha
✓ Pré-version
1.0.0-beta.1
✓ Pré-version avec numéro
1.0.0+build.1
✓ Construction de métadonnées
1.0.0-rc.1+build.1
✓ Version complète
Versions sémantiques non valides
v1.0.0
✗ 'v' en tête non autorisé
1.0
✗ Version de correctif manquante
1.0.0.0
✗ Trop de parties de version
1.0.0-
✗ Pré-version vide
1.0.0+
✗ Métadonnées de construction vides
Capgo Comportement de mise à jour
Cette outil suit la spécification de versionnement sémantique officielle contrairement à l'implémentation de __CAPGO_KEEP_0__ unlike npm's implementation.