Capgo Testeur de Semver
Vérifiez la compatibilité de la version semantique pour les mises à jour de votre application Capacitor
La version que votre application installée signale à Capgo, à partir de la configuration ou des métadonnées natives de l'application.
Ce que signifie "Version locale"
La version locale est la version déjà présente sur le dispositif lorsque celui-ci demande à l'update server un bundle. Dans une application Capacitor, cette valeur peut provenir de
CapacitorUpdater.version dans capacitor.config.*Si ce paramètre n'est pas présent, le plugin se réfère à la version native de l'application iOS ou Android. N'assumez pas qu'il s'agit de votre package.json
version à moins que votre build ne copie cette valeur dans la config ou les métadonnées natives.
Capacitor config
Définir CapacitorUpdater.version lorsque vous souhaitez une version explicite envoyée par l'application.
Avantages : facile à conserver identique pour les builds iOS et Android.
Inconvénients : une config 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 CFBundleShortVersionString ou Android
versionName.
Avantages : correspond à la version binaire que les utilisateurs ont installée à partir de TestFlight, App Store, Play Store ou de tests internes.
Contrairement à cela Modifier cela nécessite une compilation native et peut différer par plateforme si les paramètres de publication dérivent.
Ciblage de la mise en boîte
Comparez-le avec les versions de mise en boîte distantes, les règles de semver de canal ou les contraintes d'upload telles que --native-version.
Pro Empêche d'envoyer du JavaScript qui nécessite une version native plus récente de code pour les anciens binaires d'applications.
Contrairement à cela Les règles qui sont trop strictes peuvent bloquer les mises à jour valides jusqu'à ce que le canal ou les métadonnées de la mise en boîte soient ajustés.
Pour ce testeur, entrez la version que le dispositif rapporterait comme locale, puis comparez-la avec la version de mise en boîte distante que vous souhaitez Capgo livrer.
Pourquoi Capgo utilise la versionnement sémantique
Versionnement sémantique est la norme de versionnement la plus largement adoptée dans le développement logiciel. En utilisant semver, Capgo assure la compatibilité et la sécurité lors de la livraison d'actualisations en direct vers vos Capacitor applications.
La norme semver permet à Capgo de comprendre exactement quelles modifications sont incluses dans chaque mise à jour :
- Mises à jour de patch (1.0.0 → 1.0.1) : Corrections de bogues, sécuritaire à appliquer automatiquement
- Mises à jour mineures (1.0.0 → 1.1.0) : Nouvelles fonctionnalités, compatibles avec le mode arrière
- Mises à jour majeures (1.0.0 → 2.0.0) : Changements de rupture, nécessitent une mise à jour native de l'app store
Cela empêche Capgo de jamais envoyer une mise à jour incompatible à votre application 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
Même si semver est strict sur sa forme de base, vous pouvez l'étendre pour répondre aux besoins de votre équipe en utilisant identificateurs de pré-version et informations de build:
🏷️ Informations de build (+) - La couche "Cosmétique"
Important : Les informations de build sont ignorées dans la priorité de version -
1.2.0+anything équivaut à 1.2.0 pour la logique de mise à jour de Capgo.
Identificateurs de pré-version (-) - Canaux de développement
Remarque : Les versions de pré-version ont une priorité inférieure -
1.3.0-beta.1 < 1.3.0
Approche hybride - Meilleur des deux mondes
Utilisation et stratégies de l'équipe pour Semver dans le monde réel
🚀 Développement rapide / Startup
0.1.0 - Première mise en production de MVP0.2.0-beta.1 - Test de nouvelle fonctionnalité0.2.0+ui.v2 - Mise à jour de la métadonnée de la conception de l'interface utilisateur1.0.0 - Prêt pour la productionUtilisez 0.x.x pour le développement pré-1.0, métadonnée pour le suivi de la conception
🏢 Entreprise / Réglementée
2.1.0 → Sortie trimestrielle2.1.1+sec.patch.cve2024 → Correctif de sécurité avec suivi2.2.0-rc.1+audit.ready → Candidat à l'examen préalableSemver strict avec métadonnée 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 critique1.2.1+urgent.20240315.1430 → Publié 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 spécifiques à iOS1.3.0+android.material3 → Mises à jour de conception Android1.3.0+web.pwa.ready → Capacités PWAMême version, métadonnées spécifiques au plateau
🔄 Intégration CI/CD
1.4.0-alpha.1+build.123 → Mise en ligne 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 construction (+) pour suivre, les horodatages ou les informations cosmétiques qui ne modifient pas la compatibilité
- Utilisez les identificateurs de version préalable (-) pour les canaux de développement qui nécessitent une priorité différente des mises à jour
- Combinez les deux pour une flexibilité maximale :
1.2.0-beta.1+ui.dark.theme.20240315 - Rappelez-vous : Capgo respecte les règles de prééminence de semver, planifiez donc votre stratégie de canal en conséquence
Important : Capgo utilise une versionnement semantique stricte
Contrairement à l'implémentation semver de npm, Capgo suit strictement la spécification SemVer officielle. 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
différemment que les exigences de la spécification le requièrent. Voir notre
problème signalé et
tentative de correction qui n'a jamais été fusionnée.
Versions Sémantiques Valides
1.0.0 ✓ Lancement standard 2.1.3-alpha ✓ Pré-lancement 1.0.0-beta.1 ✓ Pré-version avec numéro 1.0.0+build.1 ✓ Métadonnées de construction 1.0.0-rc.1+build.1 ✓ Version complète Versions sémantiques invalides
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 numérotation sémantique officielle contrairement à l'implémentation de __CAPGO_KEEP_0__. unlike npm's implementation.