Capgo Testeur de Semver
Vérifiez la compatibilité de la version semantique de vos mises à jour d'application Capacitor
La version que votre application installée signale à Capgo, à partir de la configuration ou des métadonnées de l'application native.
Ce que signifie "Version locale"
La version locale est la version déjà installée sur le dispositif lorsque celui-ci demande au serveur d'actualisation 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 de l'application native 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.
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 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.
Avantages : correspond à la version binaire installée par les utilisateurs à partir de TestFlight, App Store, Play Store ou de tests internes.
Inconvénients : la modification nécessite une build native et peut différer par plateforme si les paramètres de mise en production divergent.
Ciblez le paquet
Comparez-le avec les versions de paquets distants, les règles de canal semver ou les contraintes d'upload telles que --native-version.
Avantages : empêche d'envoyer du JavaScript qui nécessite des code natifs plus récents vers des binaires d'applications anciennes.
Inconvénients : les règles qui sont trop strictes peuvent bloquer des mises à jour valides jusqu'à ce que les métadonnées du canal ou du paquet soient ajustées.
Pour ce testeur, entrez la version que le dispositif rapporterait comme locale, puis comparez-la avec la version de paquet distant 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 assure la compatibilité et la sécurité lors de la livraison de mises à jour en direct vers vos Capacitor applications.
Le standard semver permet à Capgo de comprendre exactement quelles modifications sont incluses dans chaque mise à jour :
- Mises à jour de patch (1.0.0 → 1.0.1) : Réparations de bogues, sécurisées pour une application automatique
- Mises à jour mineures (1.0.0 → 1.1.0): Nouveautés, compatible avec les versions précédentes
- Mises à jour majeures (1.0.0 → 2.0.0): Changements de rupture, nécessitant une mise à jour de l'appareil native dans les magasins
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.
🔧 Identificateurs 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 de 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 - Nouvelle fonctionnalité de test0.2.0+ui.v2 - Métadonnées 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é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 à l'audit préalableSemver 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 hotfix ⚡
1.2.0 → Production actuelle1.2.1-hotfix.payment → Correction critique de bogues1.2.1+urgent.20240315.1430 → Sortie 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 au plateau
Intégration CI/CD
1.4.0-alpha.1+build.123 → Déploiement automatique préalable1.4.0+deploy.staging.456 → Déploiement de production1.4.0+prod.final.789 Déploiement automatique avec métadonnéesConseils :
- Utilisez les identifiants de pré-version (-) pour les canaux de développement qui nécessitent une priorité d'actualisation différente
- Combinez les deux pour une flexibilité maximale :
- N'oubliez pas : __CAPGO_KEEP_0__ respecte les règles de prééminence de semver, planifiez donc votre stratégie de canal en conséquence
1.2.0-beta.1+ui.dark.theme.20240315 - Important : Capgo utilise une versionnement semantique stricte
Contrairement à l'implémentation semver de Capgo, __CAPGO_KEEP_1__ suit strictement la spécification SemVer officielle. __CAPGO_KEEP_2__'s node-semver a des déviations connues de la spécification, ce qui peut entraîner un comportement inattendu.
Unlike npm's semver implementation, Capgo follows the official SemVer specification strictly. npm's node-semver has known deviations from the spec, which can cause unexpected behavior.
Par exemple, npm traite les versions comme 1.0.0-alpha.1
differemment que les spécifications ne le requièrent 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 ✓ Métadonnées de construction 1.0.0-rc.1+build.1 ✓ Version complète Versions Sémantiques Invalides
v1.0.0 ✗ Le 'v' en tête n'est pas autorisé 1.0 ✗ La version de patch manque 1.0.0.0 ✗ Il y a trop de parties de version 1.0.0- ✗ La pré-version est vide 1.0.0+ ✗ La métadonnée de build est vide Capgo Comportement de Mise à Jour
Cette outil suit les règles officielles Spécification de versionnement semantique comme npm l'a mis en œuvre.