Capgo Tester di Semver
Verifica la compatibilità di versione semantica per le tue Capacitor aggiornamenti dell'app
La versione dell'app installata che viene riferita a Capgo, dal config o dai metadati dell'app nativa.
Cos'è "Versione Locale"
La Versione Locale è la versione già presente sul dispositivo quando richiede al server di aggiornamento un bundle. In un'app Capacitor, quel valore può provenire da
CapacitorUpdater.version in capacitor.config.*Se quel setting non è presente, il plugin ricade sulla versione nativa dell'app da iOS o Android. Non assumere che sia tuo package.json
version a meno che non copi il valore di costruzione in config o metadati nativi.
Capacitor config
Setta CapacitorUpdater.version quando desideri una versione esplicita inviata dall'app.
Pro: facile da mantenere lo stesso per le costruzioni di iOS e Android.
Con: la config non aggiornata 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 degli utenti installato da TestFlight, App Store, Play Store o test interni.
Contro: modificarlo richiede una compilazione nativa e può differire in base al sistema operativo 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 come --native-version.
Pro: prevenire l'invio di JavaScript che richiede una versione nativa code più recente per i binari degli app vecchi.
Contro: le regole troppo restrittive possono bloccare gli aggiornamenti validi fino a quando il canale o i metadati del bundle non vengono aggiustati.
Per questo tester, inserisci la versione che il dispositivo riporterebbe come locale, poi confrontala con la versione remota del bundle che desideri Capgo inviare.
Perché Capgo utilizza la versione semantica
Versione semantica è la versione più ampiamente adottata dello standard di versioning nel software sviluppato. Utilizzando semver, Capgo garantisce compatibilità e sicurezza quando si inviano aggiornamenti live ai propri Capacitor app.
Lo 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 passato
- Aggiornamenti maggiori (1.0.0 → 2.0.0): Cambiamenti dirompenti, richiedono rilascio di app nativa sullo store
Ciò impedisce a Capgo di inviare mai un aggiornamento incompatibile al proprio code, proteggendo gli utenti da crash e assicurando che l'app rimanga stabile.
Strategie Semver flessibili: oltre la versioning base
Mentre semver è rigoroso sul suo formato di base, puoi estenderlo per le esigenze del tuo team utilizzando identificatori di pre-release Ecco costruire i metadati:
🏷️ Metadati di costruzione (+) - La "Cappa" di livello
Importante: I metadati di costruzione sono ignorati nella precedenza della versione -
1.2.0+anything uguale 1.2.0 per Capgo's logica di aggiornamento.
🔧 Identificatori di anteprima (-) - Canali di sviluppo
Nota: Le versioni di anteprima 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
🚀 Sviluppo veloce / Startup
0.1.0 - Prima versione MVP0.2.0-beta.1 - Test di nuova funzionalità0.2.0+ui.v2 - Metadati per la ridisegnazione dell'interfaccia utente1.0.0 - Pronto per la produzioneUtilizza 0.x.x per lo sviluppo pre-1.0, metadati per la tracciatura del design
🏢 Impresa / Regolamentata
2.1.0 → Rilascio trimestrale2.1.1+sec.patch.cve2024 → Patch di sicurezza con tracciamento2.2.0-rc.1+audit.ready → Candidato per il rilascio pre-auditSemver rigoroso con metadati di conformità
🎮 Applicazioni di Gioco / Creativo
1.0.0+season.winter.2024 → Contenuto stagionale1.1.0+event.halloween → Caratteristiche di evento1.2.0+assets.hd.remaster → Aggiornamenti di assetMetadati creativi per il tracciamento del contenuto
⚡ Strategia di Hotfix
1.2.0 → Produzione corrente1.2.1-hotfix.payment → Correzione critica di bug1.2.1+urgent.20240315.1430 → Rilasciato con timestampPre-rilascio per la prova, metadati per il tracciamento della distribuzione
🌍 Strategia Multi-Platforma
1.3.0+ios.optimized → Ottimizzazioni iOS specifiche1.3.0+android.material3 → Aggiornamenti di progettazione per Android1.3.0+web.pwa.ready → Funzionalità di PWAStessa versione, metadati specifici della piattaforma
🔄 Integrazione CI/CD
1.4.0-alpha.1+build.123 → Distribuzione pre-anteprima automatizzata1.4.0+deploy.staging.456 → Distribuzione di staging1.4.0+prod.final.789 → Distribuzione di produzioneVersione automatica con metadati di distribuzione
- Utilizza i metadati di costruzione (+) per la tracciatura, i timestamp o le informazioni estetiche che non influiscono sulla compatibilità
- Utilizza gli identificatori di anteprima (-) 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 versioni come 1.0.0-alpha.1
differente rispetto a ciò che richiede la specifica. Vedi il nostro
issue segnalato e
tentativo di risoluzione che non è mai stato integrato.
Versioni Semanticamente 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 valide
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.