Capgo Tester di Semver
Verifica la compatibilità della politica del canale contro la linea di base nativa inviata come versione_build
La versione del bundle assegnata al canale risolto.
Cosa significa "Versione di Riferimento Nativa"
Native Baseline Version is the native app version sent to Capgo as
version_build when the device asks the update server for a bundle. In a Capacitor app, that value can come from
CapacitorUpdater.version . Se tale impostazione non è presente, il plugin ricade sulla versione dell'app nativa da iOS o Android. Non supporre che sia la tua capacitor.config.*versione a meno che non copiassi quel valore nella configurazione o nei metadati nativi. package.json
Capgo utilizza ancora
Capgo still uses version_name Sapere quale bundle scaricato è attualmente installato. Il canale delle politiche semver come major, minor, e
patch confrontare il bundle remoto contro version_build.
Capacitor configurazione
Imposta CapacitorUpdater.version quando desideri una versione esplicita inviata dall'applicazione.
Pro: facile da mantenere lo stesso per le build iOS e Android.
Contro: la configurazione obsoleta può riportare la versione sbagliata se dimentichi di aggiornarla prima di una rilascio nativo.
Versione dell'app nativa
Usa la versione della piattaforma, ad esempio iOS CFBundleShortVersionString o Android
versionName.
Pro: corrisponde al binario installato dagli utenti tramite TestFlight, App Store, Play Store o testing interno.
Con: modificarlo richiede una compilazione nativa e può differire da piattaforma a piattaforma se le impostazioni di rilascio si allontanano.
Target bundle
Confrontalo con le versioni remote del bundle, le regole semver del canale o le restrizioni di caricamento dei metadati come --min-update-versionIl canale deve utilizzare --disable-auto-update metadata.
Pro: prevenire l'invio di JavaScript che richiede una versione nativa code più recente per i binari di app vecchi.
Con: le regole troppo restrittive possono bloccare gli aggiornamenti validi fino a quando il canale o i metadati del bundle non vengono aggiustati.
For questo tester, inserisci la versione di base nativa che il dispositivo invia come version_build, poi confrontala con la versione del pacchetto remoto che desideri Capgo consegnare.
Perché Capgo utilizza la versione semantica
La versione semantica è lo standard di versioning più ampiamente adottato nello sviluppo software. Utilizzando semver, Capgo garantisce la compatibilità e la sicurezza quando si inviano aggiornamenti live ai tuoi Capacitor app.
Il standard semver consente a Capgo di comprendere esattamente quali modifiche sono incluse in ogni aggiornamento:
- Aggiornamenti di patch (1.0.0 → 1.0.1): Correzioni di bug, sicure per l'applicazione automatica
- Aggiornamenti minori (1.0.0 → 1.1.0): Nuove funzionalità, compatibili con il retro
- Aggiornamenti maggiori (1.0.0 → 2.0.0): Cambiamenti di rotta, richiedono rilascio di app nativa negli store
Ciò impedisce che Capgo invii mai un aggiornamento incompatibile al tuo code nativo, proteggendo gli utenti da crash e garantendo che l'applicazione rimanga stabile.
Strategie Semver Flessibili: Oltre la Versioning Base
Sebbene semver sia rigoroso sul suo formato di base, puoi estenderlo per le esigenze del tuo team utilizzando identificatori di pre-versione e metadati di costruzione:
🏷️ Metadati di Costruzione (+) - La 'Lamina Cosmetica'
Ecco il punto chiave: Il metadati del build vengono ignorati nella precedenza delle versioni -
1.2.0+anything uguale 1.2.0 per la logica di aggiornamento di Capgo.
🔧 Identificatori di versione pre-release (-) - Canali di sviluppo
Ecco il punto chiave: Le versioni pre-release hanno una precedenza inferiore -
1.3.0-beta.1 < 1.3.0
🎯 Approccio ibrido - Migliore di entrambi i mondi
Utilizzo reale dei casi di semver e strategie di squadra
🚀 Avvio / Sviluppo rapido
0.1.0 - Primo rilascio MVP0.2.0-beta.1 - Test di nuove funzionalità0.2.0+ui.v2 - Metadati di ridisegno dell'interfaccia utente1.0.0 - Pronto per la produzioneUsa 0.x.x per lo sviluppo pre-1.0, metadati per il tracciamento del design
🏢 Imprese / Regolamentate
2.1.0 → Rilascio trimestrale2.1.1+sec.patch.cve2024 → Patch di sicurezza con tracciamento2.2.0-rc.1+audit.ready → Candidato di rilascio pre-auditSemver rigoroso con metadati di conformità
🎮 Applicazioni di gioco / Creative
1.0.0+season.winter.2024 → Contenuto stagionale1.1.0+event.halloween → Caratteristiche di tipo evento1.2.0+assets.hd.remaster → Aggiornamenti di assetMetadati creativi per il tracciamento del contenuto
⚡ Strategia di patch veloce
1.2.0 → Produzione corrente1.2.1-hotfix.payment → Correzione critica di bug1.2.1+urgent.20240315.1430 → Rilasciato con timestampPre-release per test, metadati per la tracciatura della distribuzione
🌍 Strategia Multi-Platforma
1.3.0+ios.optimized → Ottimizzazioni iOS specifiche1.3.0+android.material3 → Aggiornamenti di design Android1.3.0+web.pwa.ready → Capacità PWAStessa versione, metadati specifici per piattaforma
🔄 Integrazione CI/CD
1.4.0-alpha.1+build.123 → Pre-release automatizzato1.4.0+deploy.staging.456 → Distribuzione di staging1.4.0+prod.final.789 → Distribuzione di produzioneVersionamento automatico con metadati di distribuzione
- Usa i metadati di costruzione (+) per la tracciatura, i timestamp o le informazioni estetiche che non influiscono sulla compatibilità
- Usa gli identificatori di versione pre-release (-) per i canali di sviluppo che richiedono una precedenza diversa degli aggiornamenti
- Combina entrambi per massima flessibilità:
1.2.0-beta.1+ui.dark.theme.20240315 - Ricorda: Capgo rispetta le regole di precedenza semver, quindi pianifica la tua strategia di canale di conseguenza
Importante: Capgo utilizza la versioning semantico rigorosa
A differenza dell'implementazione semver di npm, Capgo segue la specifica SemVer ufficiale in modo rigoroso. npm's node-semver ha delle deviazioni note dalla spec, che possono causare un comportamento imprevisto.
Ad esempio, npm tratta le versioni come 1.0.0-alpha.1
differente rispetto a quanto richiesto dalla specifica. Vedi il nostro
issue segnalato e
context che non è mai stato integrato.
Versioni Semantiche Validi
1.0.0
✓ Rilascio standard
2.1.3-alpha
✓ Pre-release
1.0.0-beta.1
✓ Pre-release con numero
1.0.0+build.1
✓ Metadati di costruzione
1.0.0-rc.1+build.1
✓ Versione completa
Versioni Semantiche Non Validi
v1.0.0
✗ Non è consentito il 'v' iniziale
1.0
✗ Mancante la versione di patch
1.0.0.0
✗ Troppi componenti di versione
1.0.0-
✗ Pre-release vuoto
1.0.0+
✗ Metadati di costruzione vuoti
Capgo Comportamento dell'aggiornamento
Questo strumento segue la specifica di versionamento semantico ufficiale diversamente dall'implementazione di __CAPGO_KEEP_0__ unlike npm's implementation.