Konsep
Organisasi, app, release, patch, dan channel, serta hubungan di antara semuanya.
Organisasi
└── App satu per package ID, misalnya com.acme.demoapp
├── Channel stable (selalu ada), staging, beta, …
└── Release 1.4.0+12, 1.5.0+13, …
└── Patch 1, 2, 3, … masing-masing terbit di satu channel atau lebih
Organisasi
Semua hal di Retrojet berada di dalam organisasi. Saat mendaftar, satu organisasi dibuat untuk kamu, dan kamu menjadi Owner-nya. Organisasi lain bisa menambahkan kamu sebagai anggota, jadi satu akun bisa bekerja di beberapa organisasi.
| Role | Bisa melakukan |
|---|---|
| Owner | Semua yang bisa dilakukan Admin, ditambah menjadikan seseorang Owner atau mencabut role itu. |
| Admin | Mengganti nama organisasi, menambah dan mengeluarkan anggota, mengubah role, membuat dan menghapus app dan channel, menghapus release. |
| Member | Melihat semuanya, membuat release dan patch lewat CLI, promote dan rollback patch. |
Organisasi selalu punya minimal satu Owner. Yang bisa ditambahkan hanya orang yang sudah punya akun Retrojet, dan menambah anggota butuh paket berbayar (lihat Paket dan batas).
App
App adalah satu project Flutter, dikenali dari package ID-nya (applicationId di Android, bundle ID di platform
Apple). Package ID unik di dalam satu organisasi.
Setiap app punya app ID berupa UUID. retrojet init menuliskannya ke retrojet.yaml di project kamu, dan app
kamu memakainya untuk meminta patch.
Channel
Channel adalah kelompok device yang menerima patch bersamaan. Setiap app langsung punya stable, yang tidak bisa
dihapus. Tambahkan channel lain, seperti staging atau beta, dari console untuk menguji patch di sedikit device
sebelum semua pengguna menerimanya.
Channel yang pernah dipakai untuk menerbitkan patch juga tidak bisa dihapus.
Release
Release adalah build app yang kamu kirim lewat store, misalnya versi 1.4.0+12. CLI meng-upload-nya ke Retrojet supaya
patch berikutnya bisa dibuat di atasnya. Release mencatat versi Flutter yang dipakai untuk build, dan satu entri per
platform (android, ios, …).
Selama CLI masih meng-upload, platform berstatus draft. Setelah upload selesai, statusnya menjadi active.
Menghapus release juga menghapus semua patch-nya, dan tidak bisa dibatalkan. Hanya Owner dan Admin yang bisa, dan hanya dari console. Untuk menghentikan satu patch yang bermasalah, pakai rollback.
Patch
Patch adalah perubahan kode Dart untuk satu release. Nomor patch dihitung per release: 1, 2, 3, …
| Status | Artinya |
|---|---|
| draft | Dibuat oleh CLI, upload belum selesai. Device tidak pernah melihatnya. |
| published | Sudah terbit di minimal satu channel. |
Setiap file patch ditandatangani saat di-upload. Patch hanya berlaku untuk release tempat ia dibuat: device dengan
1.4.0+12 tidak pernah menerima patch untuk 1.5.0+13.
Promote
Publish mengirim patch ke channel pertamanya. Promote menambahkan patch yang sama ke channel lain, misalnya dari
staging ke stable. Isinya persis sama, dan promote tidak dihitung sebagai publish baru di paket kamu.
Rollback
Rollback menarik patch yang sudah terbit dari satu channel, sehingga device di channel itu tidak lagi menerimanya. Channel lain tidak terpengaruh. Rollback tersedia di console, jadi siapa pun di tim bisa bertindak lewat browser.
Device dan install
App kamu di device pengguna mengecek patch untuk release dan channel-nya, mengunduhnya, lalu melaporkan hasilnya: download, install, gagal install, atau gagal update. Laporan ini menjadi angka install dan device di halaman Usage.