Pada hari yang sama ketika tautan ke repositori terbuka baru klien Telegram untuk macOS dirilis kepada para penguji beta, tim klien mulai menerima kontribusi dari pengembang pihak ketiga ke dalamnya. Hingga 25 Oktober pukul 10:19 UTC, 81 pull request dari 19 kontributor telah dikirimkan ke TelegramMessenger/telegram-macos, dan 30 di antaranya telah digabungkan (merged) ke main branch. Kontribusi yang diterima masuk ke versi beta macOS dalam beberapa jam; salah satunya bahkan kurang dari satu jam. Ini berlaku bagi mereka yang berada di saluran beta klien untuk Mac, serta para pengembang yang ingin memperbaiki klien resmi, bukan membuat fork sendiri.

Berapa Banyak Kontribusi yang Dikirim dan Diterima

Pull request adalah usulan perubahan kode yang dapat digabungkan (merge) atau ditolak oleh pemilik repositori ke branch mereka. Yang pertama tiba pada 23 Oktober pukul 14:18 UTC, dan yang pertama digabungkan pada 17:45 UTC: ini adalah #3, yang mengganti bendera bajak laut dengan berlian untuk nomor koleksi di daftar negara. Pada 23 Oktober, 17 pull request dikirimkan; pada 24 Oktober, 55; dan dalam sepuluh jam pertama 25 Oktober, 9 lagi.

Per 25 Oktober pukul 10:19 UTC:

StatusPull Request
Digabungkan (Merged)30
Ditutup tanpa penggabungan14
Terbuka37

Kontribusi yang digabungkan berasal dari 11 kontributor berbeda, dengan total 7.307 baris ditambahkan dan 1.089 baris dihapus. Ke-30 kontribusi tersebut digabungkan oleh satu akun, macosswift. Profilnya mencantumkan nama Telegram macOS, perusahaan Telegram, dan situs web macos.telegram.org. Sembilan kontribusi yang digabungkan dari satu kontributor berasal dari branch dengan awalan codex/, yang merupakan nama default yang diberikan oleh agen Codex dari OpenAI.

Aturan Baru yang Muncul pada Hari Kedua

Pada 24 Oktober pukul 16:12 UTC, CONTRIBUTING.md dan template pull request muncul di repositori. Setiap pull request kini harus memiliki empat bagian: perubahan utama, alasan, tangkapan layar atau video "sebelum" dan "sesudah" dalam skenario yang sama, serta deskripsi pengujian. Jika tidak ada hasil yang terlihat, alih-alih tangkapan layar, Anda harus menjelaskan alasannya dan melampirkan hasil pengujian, serta untuk perubahan perilaku, sebutkan versi macOS dan nomor build klien. Pull request tanpa salah satu bagian atau tanpa konfirmasi pengujian yang ditandai tidak akan siap untuk ditinjau.

Template mulai diterapkan pada malam yang sama. Dari 17:58 hingga 18:09 UTC, empat pull request ditutup dengan tanda REJECTED: tidak ada tangkapan layar atau video di bawah bagian "sebelum" dan "sesudah". Dari 19:31 hingga 19:36 UTC, komentar serupa ditinggalkan di bawah 11 pull request lainnya. Pull request tersebut tidak ditutup, melainkan diminta untuk dilengkapi, dan dua di antaranya digabungkan pada malam yang sama.

Alasan Penolakan

Selain template yang kosong, kontribusi juga ditutup berdasarkan substansi, dengan penjelasan dalam komentar:

  • #6, panel samping datar dan tab folder favorit, mengubah antarmuka dan produk, dan perubahan semacam itu "tidak direncanakan untuk diambil saat ini" oleh tim;
  • #13 menampilkan tombol editor AI dari karakter ke-10, padahal menurut desain, tombol tersebut muncul dari tiga baris. Bidang input juga melompat 30 poin. Bagian pengeditan pesan terkirim dianggap berfungsi, dan digabungkan secara terpisah, di #22;
  • #53 hanya mengoreksi string Rusia secara manual, padahal terjemahan klien dilakukan di translations.telegram.org untuk semua bahasa sekaligus;
  • #23, build lokal dan penandatanganan aplikasi: tim berjanji akan mengubah pengaturan build dan penandatanganan sendiri, dan dalam kontribusi ini, pengujian build di CI rusak;
  • #32 menampilkan chat di folder yang tidak diikuti pengguna, dan #40 merusak pencarian. Di bawahnya, tangkapan layar dan video kerusakan ditinggalkan.

Di bawah #14 awalnya ditulis bahwa kode tidak dapat dikompilasi, dan diminta untuk memeriksa build sebelum mengirim. Kemudian, kontribusi tersebut digabungkan. #75 dengan tab bar mengambang juga dikembalikan dengan komentar: setelah beberapa kali beralih, avatar tidak sejajar dengan cincin seleksi. Kontributor memperbaikinya pada 07:39 UTC, dan pada 08:09 UTC kontribusi tersebut digabungkan.

Bagaimana Kontribusi Masuk ke Versi Beta

Versi beta macOS dirilis melalui versi pembaruan dengan catatan yang sama "Bug fixes, minor improvements, and more". Bahwa build tersebut menyertakan kontribusi pihak ketiga terlihat dari binary-nya: string dari kode mereka muncul di tempat yang sebelumnya tidak ada.

Build 13.1.0.283377 dirilis pada 24 Oktober pukul 21:27 UTC. Di dalamnya, untuk pertama kalinya terdapat string "Could not load message history" dan "Message history pagination did not advance" dari #20 (kesalahan ekspor chat kini ditampilkan untuk setiap chat, tidak lagi hilang secara diam-diam), "Failed to persist the custom application icon at %@" dari #10 (perubahan ikon aplikasi), nama layanan dari #2 dan #27 (pengaturan notifikasi) dan dari #16 (perintah bot). Kelima kontribusi ini digabungkan dari 15:50 hingga 18:45 UTC, artinya mereka mencapai versi beta dalam waktu antara 2 jam 43 menit hingga 5 jam 37 menit.

Build 13.1.0.283380 dirilis pada 25 Oktober pukul 09:06 UTC, 57 menit setelah penggabungan #75. Di dalamnya muncul nama TabBarItemControl dan SelectionGesture dari kode kontribusi ini.

Bagian kode tim sendiri hampir menyusul versi beta. Pada 23 Oktober pukul 17:04 UTC, commit "Merge branch 'release' into master (13.1)" masuk ke main branch, nomor build di Info.plist meningkat dari 283305 menjadi 283357, dan lebih dari satu juta baris ditambahkan. Versi beta pada jam tersebut sudah 283368. Modul HTMLBubbles, yang menggambar pesan di versi beta menggunakan HTML dan JavaScript, masih belum ada dalam kode terbuka, dan dua script di repositori memeriksa bahwa modul tersebut tidak masuk ke sana.

Apa yang Sudah Digabungkan

Pull RequestPerubahan
#2Pengaturan notifikasi seperti di Telegram untuk iOS: kategori, pengecualian, reaksi
#27Notifikasi cerita dan bagian pengaturan cerita
#75Tab bar mengambang seperti di iOS, indikator dapat ditarik
#36Durasi "1 tahun" untuk pengakhiran otomatis sesi tidak aktif
#31, #37Opsi "Hapus dari folder" dan penghapusan avatar folder
#22Editor AI saat mengedit pesan terkirim
#20Kesalahan ekspor chat terlihat untuk setiap chat
#34, #9Menyalin foto menempatkan gambar itu sendiri ke clipboard, dan pesan disalin beserta tanggalnya
#29, #30Terjemahan ke bahasa antarmuka regional (misalnya, pt-br) dan input huruf dengan diakritik dalam jajak pendapat, tugas, dan catatan kontak

Di #75, ada catatan dari kontributor: efek lensa pada indikator, seperti di iOS, tidak termasuk dalam kontribusi. Di iOS, efek tersebut digambar oleh komponen UIKit tertutup yang tidak ada di SDK macOS, dan hanya dapat direplikasi dengan renderer sendiri menggunakan Metal.