Bỏ qua

Đề xuất một tính năng mới

Chúng tôi luôn sẵn lòng tiếp nhận các đề xuất và ý tưởng về các tính năng mới hoặc tài liệu hướng dẫn cho BeeWare Docs Tools. Nhưng làm thế nào để bạn gửi ý tưởng của mình để chúng tôi xem xét?

Trước khi bắt đầu

Chúng tôi đã có một danh sách rất dài các tính năng mà chúng tôi muốn triển khai, nhưng nguồn lực lại rất hạn chế. Nếu bạn có ý tưởng nào đó mà bạn cho rằng sẽ giúp BeeWare Docs Tools trở nên tốt hơn, chúng tôi rất mong được nghe ý kiến của bạn. Nếu có đủ nhiều người đề xuất cùng một ý tưởng, nhóm phát triển chính có thể sẽ triển khai ý tưởng đó. Tuy nhiên, chỉ riêng việc gửi đề xuất tính năng thì khó có khả năng dẫn đến việc tính năng đó được triển khai trong tương lai gần.

BeeWare là một cộng đồng mã nguồn mở. Cách hiệu quả nhất để đảm bảo một tính năng được triển khai là tự mình triển khai nó. Chúng tôi sẽ làm mọi thứ có thể để hỗ trợ các nhà đóng góp triển khai những tính năng mà họ mong muốn được bổ sung. Những yêu cầu đòi hỏi đội ngũ phát triển chính phải triển khai một tính năng miễn phí cho bạn có lẽ sẽ không được đón nhận tích cực.

Nếu bạn không thể tự mình triển khai tính năng đó, cách khác để đẩy nhanh quá trình phát triển tính năng là thuê người khác thực hiện giúp bạn. Nếu bạn muốn thảo luận về việc chi trả để ưu tiên phát triển một tính năng cụ thể, vui lòng liên hệ với đội ngũ BeeWare.

Đề xuất tính năng mới

Điều đầu tiên và rõ ràng nhất mà bạn có thể đề xuất là một API hoặc tính năng mới. Nếu bạn có một trường hợp sử dụng mà BeeWare Docs Tools hiện chưa hỗ trợ, hoặc có một tính năng gốc của nền tảng mà BeeWare Docs Tools hiện chưa thể tận dụng, bạn có thể đề xuất một thay đổi để khắc phục lỗ hổng đó.

Khi đề xuất một tính năng mới, hãy lưu ý rằng bộ công cụ BeeWare hỗ trợ nhiều nền tảng. Điều này có nghĩa là bất kỳ tính năng mới nào cũng phải:

  • Phải phù hợp và có thể triển khai trên tất cả các nền tảng (ví dụ: mọi bộ công cụ giao diện người dùng đồ họa đều có khái niệm về "nút"); hoặc
  • Phù hợp với các nền tảng cùng "loại", và nên bỏ qua trên các nền tảng khác (ví dụ: tất cả điện thoại di động đều có cảm biến gia tốc; trong khi không nhiều máy tính để bàn có, do đó, việc có một API cảm biến gia tốc dành cho iOS và Android là hợp lý, nhưng không cần thiết cho các nền tảng máy tính để bàn hoặc web); hoặc
  • Cho phép truy cập vào một tính năng của nền tảng nội bộ mà không cần thay đổi API công khai (ví dụ: bạn không thể thêm một tính năng rõ ràng là dành riêng cho Android, nhưng bạn có thể giúp người dùng cuối dễ dàng truy cập tính năng dành riêng cho Android từ mã nguồn của chính họ).

Điều này không có nghĩa là bạn phải chịu trách nhiệm triển khai tính năng đó trên mọi nền tảng. Nếu bạn không có thiết bị của Apple, chúng tôi không thể yêu cầu bạn phải triển khai tính năng đó trên macOS hoặc iOS. Tuy nhiên, trong quá trình thiết kế, chúng tôi cần xác định rằng việc triển khai tính năng theo cách bạn mô tả là có thể thực hiện được.

Đề xuất tài liệu mới

Một điều khác mà bạn có thể muốn đề xuất là cải thiện tài liệu hướng dẫn. Nếu bạn có ý tưởng nào để cải thiện tài liệu hướng dẫn cho BeeWare Docs Tools, hãy cân nhắc các yếu tố sau:

  • Đề xuất của bạn có trùng lặp với tài liệu hiện có không? Bạn đang đề xuất một hướng dẫn mới hay bổ sung vào một hướng dẫn hiện có?
  • Dự án này phù hợp với phần còn lại của hệ sinh thái BeeWare như thế nào? Đây có phải là nơi thích hợp để ghi chép ý tưởng này không? Hay chúng ta nên ghi chép tính năng này trong một dự án khác và liên kết đến tài liệu đó?
  • Có khái niệm tổng quát nào cần được giải thích trước khi các hướng dẫn cụ thể mới trở nên dễ hiểu không?
  • Chủ đề này có đáng để chúng ta giải thích không, hay đã có ai đó đề cập đến nó ở đâu đó mà chúng ta có thể tham khảo?

Nếu bạn còn băn khoăn về bất kỳ điều gì, đừng lo lắng! Hãy gửi ý tưởng của bạn và cho chúng tôi biết trong cuộc thảo luận ban đầu những điểm bạn còn băn khoăn, và chúng tôi sẽ giúp bạn điều chỉnh ý tưởng của mình sao cho phù hợp với tài liệu hướng dẫn của BeeWare.

Đóng góp đề xuất tính năng

Đề xuất một tính năng mới

Đề xuất một tính năng mới

Vậy là bạn đã có ý tưởng về việc cải tiến cho BeeWare Docs Tools - làm thế nào để gửi ý tưởng đó để được xem xét?

Hãy tìm hiểu kỹ

Bước đầu tiên là tìm kiếm trên hệ thống theo dõi vấn đề BeeWare Docs Tools để xem liệu ý tưởng đó đã từng được đề xuất trước đây hay chưa, thông qua các vấn đề liên quan đến tính năng (các vấn đề được gắn thẻ "enhancement"), vấn đề liên quan đến tài liệu (các vấn đề được gắn thẻ "documentation"), hoặc các chuỗi thảo luận. Nếu đã có, và bạn có bối cảnh hoặc ý tưởng mới để bổ sung, hãy đưa chúng vào chuỗi thảo luận hiện có. Nếu bạn cần hỗ trợ trong quá trình tìm kiếm, bạn có thể hỏi trong kênh #dev trên BeeWare Discord. Chúng tôi có thể chỉ cho bạn các chuỗi thảo luận hiện có, cung cấp bối cảnh mà bạn có thể chưa biết, hoặc kết nối ý tưởng của bạn với một ý tưởng khác có thể không liên quan ngay lập tức.

Thảo luận về ý tưởng này

Nếu bạn không tìm thấy bất kỳ tài liệu tham khảo nào liên quan đến ý tưởng của mình, hãy tạo một Chủ đề thảo luận. Hãy mô tả tổng quan về mục đích và trường hợp sử dụng của ý tưởng. Hãy nêu rõ những suy nghĩ của bạn về hình thức của tính năng này nếu được triển khai, chẳng hạn như cấu trúc chung của API, giao diện trực quan của tính năng hoặc tài liệu sẽ được bổ sung. Nếu có thể, bạn cũng nên bao gồm bất kỳ nghiên cứu nào bạn đã thực hiện về cách ý tưởng của bạn sẽ được thể hiện trên các nền tảng khác nhau.

Sau khi chủ đề thảo luận được mở, nhóm BeeWare và các thành viên khác trong cộng đồng sẽ phản hồi. Nhóm nòng cốt sẽ cố gắng đưa ra ít nhất là đánh giá ban đầu về ý tưởng của bạn trong vòng hai ngày làm việc. Nếu ý tưởng đó đặc biệt phức tạp, việc phân tích chi tiết hơn có thể mất đến một tuần. Các sự kiện như ngày lễ và hội nghị có thể khiến thời gian xử lý kéo dài hơn một chút.

Đây là cơ hội để bạn tham gia trao đổi về ý tưởng của mình. Chúng tôi có thể yêu cầu bạn cung cấp thêm chi tiết hoặc bối cảnh. Các thành viên khác trong cộng đồng cũng có thể tham gia vào cuộc thảo luận, đưa ra những góc nhìn, đề xuất hoặc ý kiến phản biện khác. Kết quả của cuộc thảo luận này sẽ quyết định các bước tiếp theo.

Điều quan trọng là phải hiểu rằng không phải ý tưởng nào cũng được chấp nhận. Lý do tại sao quy trình này bắt đầu bằng một bản đề xuất là để tránh trường hợp bạn bỏ ra rất nhiều công sức, chỉ để rồi phát hiện ra rằng có lý do khiến đề xuất thay đổi của bạn không được chấp nhận.

Điều này không có nghĩa là đó không phải là một ý tưởng hay! Có thể có những lý do kỹ thuật khiến ý tưởng đó không thể thực hiện được. Ví dụ, chúng ta có thể từ chối một ý tưởng nếu:

  • Sẽ rất khó hoặc không thể triển khai một cách đáng tin cậy trên tất cả các nền tảng được hỗ trợ; hoặc
  • Việc bảo trì sẽ rất khó khăn, hoặc việc bảo trì sẽ đòi hỏi phải sử dụng công nghệ hoặc phần mềm mà không phải ai cũng có thể tiếp cận được; hoặc
  • Nó phục vụ một nhóm đối tượng nhỏ, nhưng lại gây ra gánh nặng đáng kể cho những người dùng khác.

Nếu chúng tôi nhận thấy ý tưởng của bạn không phù hợp, điều đó không có nghĩa là bạn phải từ bỏ nó. Mặc dù chúng tôi có thể từ chối một ý tưởng cụ thể, nhưng chúng tôi có thể sẵn lòng hơn nhiều trong việc bổ sung một giao diện plugin hoặc điểm mở rộng khác, giúp bạn duy trì tính năng đó dưới dạng một thư viện bên ngoài. Nhờ đó, bạn vẫn có thể sử dụng tính năng này mà không phải lo lắng về các vấn đề bảo trì cụ thể hay những hạn chế của tính năng đó trở thành rào cản đối với chính dự án.

Chuyển thành yêu cầu tính năng chính thức

Khi cuộc thảo luận đã đạt được sự đồng thuận về hình thức của một tính năng, bạn có thể tạo một yêu cầu tính năng mới trong hệ thống theo dõi vấn đề BeeWare Docs Tools, trong đó tóm tắt nội dung cuộc thảo luận và đính kèm liên kết đến cuộc thảo luận để cung cấp bối cảnh.

Bạn không cần phải tự mình triển khai đề xuất tính năng của mình; bạn có thể tạo một vấn đề (issue) kèm theo chi tiết về đề xuất của bạn. Tuy nhiên, việc chỉ đơn thuần đăng tải vấn đề đó không có nghĩa là nó sẽ được triển khai cho bạn. Bạn sẽ cần chờ đợi để xem liệu đề xuất đó có được ai đó quan tâm đến tính năng tương tự tiếp nhận hay không, dù đó là một thành viên khác trong cộng đồng hay đội ngũ phát triển chính; tuy nhiên, điều này không được đảm bảo sẽ xảy ra. Nếu bạn muốn đảm bảo tính năng được triển khai, bạn sẽ cần tự mình triển khai nó, hoặc trả tiền cho người khác để họ triển khai giúp bạn.

Nếu bạn quan tâm, bạn có thể bắt đầu triển khai tính năng mới của mình.