Caputchin
Pengembangan game marketplace

Terbitkan ke marketplace

Di akhir tutorial ini game-mu terdaftar di marketplace dan bisa disematkan pengguna mana pun, lewat id game-nya. Penerbitan sengaja rendah-seremoni: tak ada antrean pengajuan, tak ada tinjauan, dan tak ada unggahan. Kamu menge-tag repo GitHub publik dan platform mengindeksnya.

Ini mengasumsikan kamu telah membangun sebuah game (Bangun game marketplace) dan menulis manifest-nya.

1. Tag repositori GitHub

Tambahkan topik GitHub caputchin-game ke repositori publikmu (bagian About di halaman repo). Pengindeks meng-query GitHub untuk topik ini; tag itu adalah seluruh opt-in-mu.

Id game-mu diturunkan dari koordinat repo, owner/repo (atau owner/repo/<leaf-dir> untuk anak koleksi). Kamu tak memilih atau mendeklarasikannya.

2. Pastikan esensi manifest

Tiga hal menggerbang pengindeksan; pastikan caputchin.json akar-mu memilikinya:

  1. "terms_accepted": true (boolean literal) memastikan Ketentuan Pengajuan Marketplace.
  2. Sebuah license di daftar yang disetujui.
  3. Sebuah penunjuk distribusi (entry, npm, atau keduanya) agar bundel diselesaikan.

Tambahkan marketplace.author.email jika kamu ingin email kegagalan-terbit (ia tak pernah ditunjukkan publik, dan ia satu-satunya cara menerimanya).

3. Terbitkan atau perbarui

Dua cara mendarat di indeks:

  • Cron harian mengambil repo ber-tag secara otomatis.
  • Tombol "Terbitkan atau perbarui" di marketplace menjalankan pengindeks per-repo secara sinkron dan mengalihkanmu ke halaman detailmu, atau menunjukkan galat validasi persisnya. Pakai ini untuk daftar pertama atau tepat setelah suntingan manifest.

Saat ia berjalan, pengindeks mengambil manifest-mu, memin bundel ke ref tak-berubah (versi npm yang diterbitkan atau SHA commit yang diselesaikan), menghitung hash integritas SHA-384, dan menyimpan { url, integrity } ber-kunci id game-mu. Rilis baru tayang pada run indeks berikutnya, atau seketika lewat tombol.

4. Pemeriksaan-diri putar-ulang

Saat-indeks platform menjalankan artefak run-mu di isolate tersegel sekali dengan seed deterministik:

  • Lolos → game-mu bisa-diputar-ulang: ronde pemain nyata dijalankan-ulang di sisi-server untuk mencapai keputusan, jadi ia bisa menggerbang sebuah kunci situs.
  • Gagal (run-not-conforming) → game menunjukkan Tidak bisa diputar ulang. Ia tetap terdaftar dan bisa-disematkan, tapi hanya sebagai UX sampai kamu menerbitkan versi yang sesuai. Situs yang sudah pada versi bisa-diputar-ulang sebelumnya tetap menjalankan snapshot persis itu.

Pemeriksaan-diri yang gagal hampir selalu non-determinisme di run-mu; buat simulasimu deterministik dan terbitkan-ulang. Menjalankan selfCheck kit engine secara lokal dulu menangkap ini sebelum kamu mendorong.

5. Pastikan penemuan

Setelah penerbitan berhasil, halaman detail menyematkan game-mu di pratinjau live dengan sebuah tombol untuk tiap preset locale, skin, dan konfigurasi yang dideklarasikan. Mainkan ia di sana untuk memastikan preset diselesaikan sebagaimana kamu maksudkan.

Dapatkan notifikasi saat penerbitan gagal

Pengindeks harian memeriksa-ulang setiap game terbit. Jika reindeks menemui masalah, kamu bisa diemail tentangnya, tapi hanya jika kamu opt in dengan menyetel marketplace.author.email di manifest-mu. Tanpa email disetel, kamu tak dapat notifikasi. Tak ada kanal lain; ini adalah satu sinyal yang kalau tidak akan kamu lewatkan, karena pemeriksaan-ulang harian berjalan tanpa kamu menonton.

Dua jenis email dikirim, cocok dengan dua hasil:

EmailKapanApa artinya
"Verification check failed for <game>"Versi yang di-reindeks gagal pemeriksaan-diri putar-ulang (run-not-conforming)Game tetap terdaftar dan bisa-disematkan, tapi versi itu menunjukkan Tidak bisa diputar ulang dan tak bisa menggerbang sampai kamu menerbitkan yang sesuai.
"We couldn't publish <game>"Reindeks menemui kegagalan lain mana pun (galat manifest, lisensi, atau bundel)Versi itu tak terdaftar sampai kamu memperbaikinya.

Detail yang penting:

  • Hanya reindeks harian yang mengemail-mu. Kegagalan pada tombol "Terbitkan atau perbarui" manual ditunjukkan padamu di modal saat itu juga, jadi tak ada email yang dikirim untuknya.
  • Terdeduplikasi. Kegagalan yang sama pada game yang sama diemail sekali, lalu ditekan selama 30 hari. Kegagalan berbeda (kode galat atau alasan baru) mengemail seketika.
  • Opt out kapan saja dengan menyingkirkan atau mengubah marketplace.author.email. Email juga membawa penunjuk berhenti-langganan satu-klik ke Ketentuan Pengajuan. Kamu bukan akun Caputchin di sini, jadi bidang manifest adalah satu-satunya kontrol.

6. Otomasi dengan CI

Karena penerbitan adalah "tag plus dorong ke ref tak-berubah," kamu bisa menyambungkannya ke pipeline rilismu agar setiap rilis me-reindeks otomatis. Pola andalnya:

  1. Terbitkan bundel ke ref tak-berubah di CI, publish npm (atau rilis GitHub ber-tag) yang menjadi tempat npm / entry manifest-mu diselesaikan. Pengindeks selalu menyelesaikan-ulang ke versi terbitmu terbaru pada run berikutnya, jadi pipeline rilis biasa sudah memajukan pin.
  2. Gerbangi rilis pada pemeriksaan determinisme lokal. Jalankan selfCheck kit engine (atau uji putar-ulang-mu sendiri) sebagai langkah CI agar run non-deterministik menggagalkan build alih-alih mengirim sebagai tak-bisa-diputar-ulang.
  3. Opsional picu reindeks seketika dengan memanggil "Terbitkan atau perbarui" ketimbang menunggu cron harian, jika kamu ingin versi baru live saat CI selesai.
# sketch: release job
- run: npm ci
- run: npm test                 # includes your replay selfCheck
- run: npm publish              # advances the immutable ref the indexer pins
# the daily indexer picks up the new version; or hit Publish or update for instant

Jaga pemeriksaan determinisme sebelum publish agar run buruk tak pernah mencapai marketplace sebagai daftar yang diam-diam tak-bisa-diputar-ulang.

Apa yang tak pernah harus kamu lakukan

  • Tanpa penandatanganan kode, tanpa pengajuan tinjauan, tanpa unggahan CDN platform.
  • Tanpa perjanjian bagi-hasil.
  • Tanpa pemilihan-id; koordinat GitHub-mu adalah id-nya.
  • Tanpa bidang versi; pengindeks memin ref.

Jika penerbitan gagal

Setiap galat jalur-terbit adalah sesuatu yang kamu perbaiki di repo-mu dan coba-ulang. Temukan kodemu di Perbaiki kegagalan terbit; daftar kode penuhnya adalah referensi galat terbit.

Lihat juga

Di halaman ini