Cùng ngày khi liên kết đến kho lưu trữ mã nguồn mở mới của ứng dụng Telegram dành cho macOS được công bố cho người thử nghiệm beta, nhóm phát triển ứng dụng đã bắt đầu chấp nhận các đóng góp từ nhà phát triển bên thứ ba. Tính đến 10:19 UTC ngày 25 tháng 10, TelegramMessenger/telegram-macos đã nhận được 81 pull request từ 19 tác giả, và 30 trong số đó đã được hợp nhất vào nhánh chính. Các đóng góp được chấp nhận sẽ được đưa vào bản beta của macOS chỉ trong vài giờ, thậm chí có một đóng góp được đưa vào chưa đầy một giờ. Điều này áp dụng cho những người đang sử dụng kênh beta của ứng dụng dành cho Mac, cũng như các nhà phát triển muốn sửa đổi ứng dụng chính thức thay vì tạo một bản fork của riêng mình.

Số lượng đóng góp đã gửi và được chấp nhận

Pull request là một đề xuất thay đổi mã nguồn mà chủ sở hữu kho lưu trữ có thể hợp nhất vào nhánh của mình hoặc từ chối. Pull request đầu tiên được gửi vào lúc 14:18 UTC ngày 23 tháng 10, và pull request đầu tiên được hợp nhất vào lúc 17:45 UTC cùng ngày: đó là #3, thay thế biểu tượng cờ cướp biển bằng viên kim cương cho các số điện thoại sưu tầm trong danh sách quốc gia. Trong ngày 23 tháng 10, có 17 pull request được gửi; ngày 24, có 55; và trong mười giờ đầu tiên của ngày 25, có thêm 9 pull request.

Tính đến 10:19 UTC ngày 25 tháng 10:

Trạng tháiSố pull request
Đã hợp nhất30
Đã đóng mà không hợp nhất14
Đang mở37

Các đóng góp đã hợp nhất được gửi bởi 11 tác giả khác nhau, tổng cộng có 7 307 dòng được thêm và 1 089 dòng bị xóa. Tất cả 30 đóng góp này đều được hợp nhất bởi một tài khoản duy nhất, macosswift. Trong hồ sơ của tài khoản này có ghi tên Telegram macOS, công ty Telegram và trang web macos.telegram.org. Chín đóng góp đã hợp nhất từ một tác giả đến từ các nhánh có tiền tố codex/, đây là cách mà tác nhân Codex của OpenAI đặt tên mặc định.

Các quy tắc mới xuất hiện vào ngày thứ hai

Vào lúc 16:12 UTC ngày 24 tháng 10, các tệp CONTRIBUTING.md và mẫu pull request đã xuất hiện trong kho lưu trữ. Mỗi pull request hiện phải có bốn phần: thay đổi chính, lý do, ảnh chụp màn hình hoặc video "trước" và "sau" trong cùng một kịch bản, và mô tả cách kiểm tra. Nếu không có kết quả trực quan, thay vì ảnh chụp màn hình, cần giải thích lý do và đính kèm kết quả kiểm tra; đối với các thay đổi về hành vi, cần chỉ rõ phiên bản macOS và số bản dựng của ứng dụng. Một pull request thiếu bất kỳ phần nào hoặc không có xác nhận kiểm tra được đánh dấu sẽ không được xem xét.

Mẫu này bắt đầu được áp dụng vào tối cùng ngày. Từ 17:58 đến 18:09 UTC, bốn pull request đã bị đóng với ghi chú REJECTED: không có ảnh chụp màn hình hoặc video cho phần "trước" và "sau". Từ 19:31 đến 19:36 UTC, một nhận xét tương tự đã được để lại dưới 11 pull request khác. Chúng không bị đóng mà được yêu cầu bổ sung, và hai trong số đó đã được hợp nhất vào tối cùng ngày.

Lý do bị từ chối

Ngoài việc mẫu bị bỏ trống, các đóng góp còn bị đóng vì lý do nội dung, kèm theo giải thích trong phần bình luận:

  • #6, bảng điều khiển bên phẳng và các tab thư mục yêu thích, thay đổi giao diện và sản phẩm, và nhóm "hiện không có kế hoạch chấp nhận" những thay đổi như vậy;
  • #13 hiển thị nút AI editor từ ký tự thứ 10, trong khi theo thiết kế nó xuất hiện từ ba dòng. Trường nhập liệu cũng bị nhảy lên 30 điểm. Phần chỉnh sửa tin nhắn đã gửi được coi là hoạt động và đã được hợp nhất riêng vào #22;
  • #53 chỉ sửa thủ công các chuỗi tiếng Nga, trong khi bản dịch của ứng dụng được thực hiện trên translations.telegram.org cho tất cả các ngôn ngữ cùng một lúc;
  • #23, bản dựng cục bộ và chữ ký ứng dụng: nhóm đã hứa sẽ tự thay đổi cài đặt bản dựng và chữ ký, và đóng góp này đã làm hỏng kiểm tra bản dựng trong CI;
  • #32 hiển thị các cuộc trò chuyện mà người dùng không tham gia trong các thư mục, và #40 làm hỏng chức năng tìm kiếm. Kèm theo đó là ảnh chụp màn hình và video về lỗi.

Dưới #14 ban đầu có ghi rằng mã không biên dịch được và yêu cầu kiểm tra bản dựng trước khi gửi. Sau đó, nó đã được hợp nhất. #75 với thanh tab nổi cũng bị trả lại với nhận xét: sau vài lần chuyển đổi, ảnh đại diện bị lệch khỏi vòng tròn chọn. Tác giả đã sửa lỗi này vào lúc 07:39 UTC, và vào lúc 08:09 UTC, đóng góp đã được hợp nhất.

Cách các đóng góp được đưa vào bản beta

Bản beta của macOS được phát hành thông qua các phiên bản cập nhật với cùng một ghi chú "Bug fixes, minor improvements, and more". Việc các đóng góp từ bên thứ ba đã được đưa vào bản dựng có thể được thấy qua tệp nhị phân của nó: các chuỗi từ mã của họ xuất hiện ở những nơi trước đây không có.

Bản dựng 13.1.0.283377 được phát hành vào lúc 21:27 UTC ngày 24 tháng 10. Trong đó lần đầu tiên có các chuỗi "Could not load message history" và "Message history pagination did not advance" từ #20 (lỗi xuất cuộc trò chuyện giờ đây được hiển thị cho từng cuộc trò chuyện, thay vì bị mất một cách âm thầm), "Failed to persist the custom application icon at %@" từ #10 (thay đổi biểu tượng ứng dụng), tên dịch vụ từ #2 và #27 (cài đặt thông báo) và từ #16 (lệnh bot). Năm đóng góp này được hợp nhất từ 15:50 đến 18:45 UTC, nghĩa là chúng đã được đưa vào bản beta trong khoảng thời gian từ 2 giờ 43 phút đến 5 giờ 37 phút.

Bản dựng 13.1.0.283380 được phát hành vào lúc 09:06 UTC ngày 25 tháng 10, 57 phút sau khi #75 được hợp nhất. Trong đó đã xuất hiện các tên TabBarItemControl và SelectionGesture từ mã của đóng góp này.

Phần mã của nhóm phát triển gần như đã bắt kịp bản beta. Vào lúc 17:04 UTC ngày 23 tháng 10, một commit "Merge branch 'release' into master (13.1)" đã được đưa vào nhánh chính, số bản dựng trong Info.plist tăng từ 283305 lên 283357, thêm hơn một triệu dòng. Bản beta vào thời điểm đó đã là 283368. Mô-đun HTMLBubbles, vốn vẽ các tin nhắn HTML và JavaScript trong bản beta, vẫn chưa có trong mã nguồn mở, và hai script trong kho lưu trữ kiểm tra để đảm bảo nó không bị đưa vào đó.

Những gì đã được hợp nhất

Pull requestThay đổi gì
#2Cài đặt thông báo như trong Telegram dành cho iOS: danh mục, ngoại lệ, phản ứng
#27Thông báo về Stories và phần cài đặt Stories
#75Thanh tab nổi như trong iOS, chỉ báo có thể kéo được
#36Thời hạn "1 năm" cho việc tự động kết thúc các phiên không hoạt động
#31, #37Mục "Xóa khỏi thư mục" và xóa ảnh đại diện thư mục
#22AI editor khi chỉnh sửa tin nhắn đã gửi
#20Lỗi xuất cuộc trò chuyện hiển thị cho từng cuộc trò chuyện
#34, #9Sao chép ảnh sẽ đặt hình ảnh vào bộ đệm, và tin nhắn được sao chép cùng với ngày
#29, #30Dịch sang ngôn ngữ giao diện khu vực (ví dụ: pt-br) và nhập chữ có dấu trong khảo sát, nhiệm vụ và ghi chú liên hệ

Trong #75 có một lưu ý của tác giả: hiệu ứng thấu kính trên chỉ báo, như trong iOS, không được đưa vào đóng góp này. Trong iOS, nó được vẽ bởi một thành phần UIKit đóng, không có trong SDK macOS, và chỉ có thể được tái tạo bằng trình kết xuất riêng trên Metal.