Capgo Testeur de Semver
Vérifiez la compatibilité de la politique de canal contre la base native envoyée sous forme de version_build
La version native envoyée à Capgo sous forme de version_build, depuis la configuration ou les métadonnées de l'application native.
La version du paquet attribuée au canal résolu.
Qu'est-ce que "Version native de base"
La Version native de base est la version de l'application native envoyée à Capgo comme
version_build lorsque le dispositif demande au serveur d'actualisation un bundle. Dans une application Capacitor, cette valeur peut provenir de
CapacitorUpdater.version In cas où 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 que c'est votre version, à moins que votre build copie cette valeur dans la configuration ou les métadonnées natives.
__CAPGO_KEEP_0__ utilise toujours
pour savoir quel bundle téléchargé est actuellement installé. Les politiques de canal semver comme ", et ", permettent de comparer le bundle distant contre
__CAPGO_KEEP_0__ config
Définir
lorsque vous souhaitez envoyer une version explicite par l'application.
Pro :
facile à conserver identique dans les builds iOS et Android. 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 que c'est votre version, à moins que votre build copie cette valeur dans la configuration ou les métadonnées natives. package.json
version
Capgo still uses version_name __CAPGO_KEEP_0__ major, minorpour savoir quel bundle téléchargé est actuellement installé.
patch Channel semver version_build.
Capacitor config
contre CapacitorUpdater.version __CAPGO_KEEP_0__ config
Définir quand vous souhaitez envoyer une version explicite par l'application.
Con: une configuration obsolète peut signaler la mauvaise version si vous oubliez de l'actualiser avant une mise en production native.
Version de l'application native
Utilisez la version de la plateforme, comme iOS CFBundleShortVersionString ou Android
versionName.
Pro: correspond à la version binaire que les utilisateurs ont installée à partir de TestFlight, App Store, Play Store ou de tests internes.
Con: la modification nécessite une compilation native et peut différer par plateforme si les paramètres de mise en production divergent.
Ciblage du paquet
Comparez-le avec les versions de paquets distantes, les règles de semver de canal ou les contraintes d'upload telles que --native-version.
Pro: empêche l'envoi de JavaScript qui nécessite des code natifs plus récents vers les binaires d'applications anciennes.
Con : les règles trop strictes peuvent bloquer les mises à jour valides jusqu'à ce que les métadonnées du canal ou du paquet soient ajustées.
Pour ce testeur, entrez la base native que le dispositif envoie comme version_buildpuis comparez-la avec la version de paquet distant 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 garantit la compatibilité et la sécurité lors du déploiement de mises à jour en direct vers vos applications Capacitor.
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ûres à appliquer automatiquement
- Mises à jour mineures (1.0.0 → 1.1.0) : Nouveautés, compatible avec la version précédente
- Mises à jour majeures (1.0.0 → 2.0.0) : Changements majeurs, nécessite une mise à jour de l'app native dans les magasins d'applications
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 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 méta-données de construction:
🏷️ Méta-données de construction (+) - La 'Couche Cosmétique'
Important : Les métadonnées de build sont ignorées dans la priorité de version -
1.2.0+anything équivaut à 1.2.0 pour Capgo's logique de mise à jour.
🔧 Identifiants de pré-version (-) - Canaux de développement
Remarque : 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 dans le monde réel et stratégies d'équipe
Lancement rapide / Développement rapide
0.1.0 - Première version MVP0.2.0-beta.1 - Test de nouvelle fonctionnalité0.2.0+ui.v2 - Métadonnées de redécoration d'interface utilisateur1.0.0 - Prêt pour la productionUtilisez 0.x.x pour le développement pré-1.0, les métadonnées 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 à la mise en audit préalableSemver stricte avec des 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 correction urgente
1.2.0 → Production actuelle1.2.1-hotfix.payment → Correction critique de bug1.2.1+urgent.20240315.1430 → Déploiement avec horodatagePré-version pour les tests, métadonnées pour le suivi de déploiement
🌍 Stratégie de multi-plateforme
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 au plateau
🔄 Intégration CI/CD
1.4.0-alpha.1+build.123 → Pré-version automatisée1.4.0+deploy.staging.456 → Déploiement de stade1.4.0+prod.final.789 → Déploiement de productionVersionnement 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 pré-version (-) 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 priorité de versionnement semver, donc planifiez votre stratégie de canal en conséquence
Important : Capgo utilise un versionnement semantique strict
Differemment de 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
differemment que la spécification le requiert. Consultez 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 ✓ Métadonnées de build 1.0.0-rc.1+build.1 ✓ Version complète Versions Sémantiques Invalides
v1.0.0 ✗ 'v' en début non autorisé 1.0 ✗ Version de patch manquante 1.0.0.0 ✗ Trop de parties de version 1.0.0- ✗ Pré-version vide 1.0.0+ ✗ Informations de build vide Capgo Comportement de mise à jour
Cette outil suit la spécification de versionnement sémantique officielle contrairement à l'implémentation de __CAPGO_KEEP_0__. npm Update Behavior