پیشنهاد یک ویژگی جدید¶
ما همیشه آماده دریافت پیشنهادها و ایدهها برای ویژگیهای جدید یا مستندسازی BeeWare هستیم. اما چگونه میتوانید ایدهتان را برای بررسی ارسال کنید؟
پیش از شروع¶
ما در حال حاضر فهرست بسیار طولانی از ویژگیهایی داریم که میخواهیم پیادهسازی کنیم و منابع بسیار محدودی در اختیار داریم. اگر ایدهای دارید که فکر میکنید BeeWare را بهتر میکند، خوشحال میشویم آن را بشنویم. اگر تعداد کافی از افراد همان درخواست را مطرح کنند، تیم اصلی ممکن است آن ایده را پیادهسازی کند. با این حال، به خودی خود ارسال یک درخواست ویژگی به احتمال زیاد منجر به پیادهسازی آن در آینده نزدیک نخواهد شد.
بیویر یک جامعه متنباز است. مؤثرترین راه برای اطمینان از پیادهسازی یک قابلیت، خودتان آن را پیادهسازی کنید. ما هر کاری که بتوانیم انجام میدهیم تا به مشارکتکنندگان کمک کنیم قابلیتهایی را که میخواهند اضافه شوند، پیادهسازی کنند. درخواستهایی مبنی بر اینکه تیم اصلی یک قابلیت را برای شما بهصورت رایگان پیادهسازی کند، احتمالاً با استقبال خوبی مواجه نخواهد شد.
اگر در موقعیتی نیستید که خودتان یک قابلیت را پیادهسازی کنید، راه دیگر برای تسریع توسعهٔ قابلیتتان این است که به کسی پول پرداخت کنید تا آن را برای شما پیادهسازی کند. اگر مایلید دربارهٔ پرداخت هزینه برای اولویتبندی توسعهٔ یک قابلیت خاص صحبت کنید، لطفاً با تیم BeeWare تماس بگیرید.
پیشنهاد قابلیت جدید¶
واضحترین پیشنهادی که میتوان داد، ایجاد یک API یا قابلیت جدید است. اگر مورد استفادهای دارید که BeeWare در حال حاضر از آن پشتیبانی نمیکند، یا قابلیت بومی پلتفرمی وجود دارد که BeeWare نمیتواند از آن بهره ببرد، ممکن است بخواهید تغییری را برای پر کردن این شکاف پیشنهاد دهید.
هنگام پیشنهاد یک ویژگی جدید، به خاطر داشته باشید که مجموعه ابزارهای BeeWare از چندین پلتفرم پشتیبانی میکند. این بدان معناست که هر ویژگی جدید باید:
- مناسب و قابل پیادهسازی روی همهٔ پلتفرمها باشد (مثلاً هر کیت ابزار گرافیکی مفهوم «دکمه» را دارد)؛ یا
- مناسب پلتفرمهای از یک «نوع» باشد و نادیده گرفته شدن آن در پلتفرمهای دیگر موجه باشد (مثلاً همه تلفنهای همراه شتابسنج دارند؛ اما بسیاری از رایانههای رومیزی ندارند، بنابراین منطقی است که رابط برنامهنویسی کاربردی شتابسنج برای iOS و اندروید وجود داشته باشد، اما برای پلتفرمهای دسکتاپ یا وب وجود نداشته باشد)؛ یا
- اجازه دسترسی به یک قابلیت پلتفرم داخلی را بدون تغییر API عمومی بدهید (برای مثال، نمیتوانید قابلیتی را اضافه کنید که بهوضوح مختص اندروید باشد، اما میتوانید دسترسی کاربران نهایی به یک قابلیت مختص اندروید را از کد خودشان آسانتر کنید).
این بدان معنا نیست که شما باید مسئول پیادهسازی یک قابلیت روی هر پلتفرم باشید. اگر به سختافزار اپل دسترسی ندارید، منطقی نیست که از شما انتظار داشته باشیم پیادهسازی macOS یا iOS یک قابلیت را ارائه دهید. با این حال، بهعنوان بخشی از فرایند طراحی، باید مشخص کنیم که آیا امکان پیادهسازی قابلیت به روشی که شما توصیف کردهاید وجود دارد یا خیر.
پیشنهاد مستندات جدید¶
یک نکتهٔ دیگر که ممکن است بخواهید پیشنهاد دهید، بهبود مستندات است. اگر ایدهای برای بهبود مستندات BeeWare دارید، ملاحظات شامل موارد زیر است:
- آیا پیشنهاد شما با مستندات موجود تداخل دارد؟ آیا شما یک راهنمای جدید پیشنهاد میکنید یا افزودهای به راهنمای موجود؟
- این چگونه در سایر بخشهای اکوسیستم BeeWare جای میگیرد؟ آیا این پروژه مکان مناسبی برای مستندسازی این ایده است؟ یا باید یک ویژگی را در پروژهای دیگر مستندسازی کنیم و به آن مستندات لینک دهیم؟
- آیا مفهومی کلی وجود دارد که قبل از اینکه دستورالعملهای خاص معنایی پیدا کنند، نیاز به توضیح دارد؟
- آیا توضیح این موضوع برای ما منطقی است، یا شخص دیگری قبلاً آن را جایی پوشش داده که بتوانیم به آن مراجعه کنیم؟
اگر در مورد هر یک از این موارد مطمئن نیستید، نگران نباشید! ایدهٔ خود را ارسال کنید و در بحث اولیه به ما بگویید که در چه مواردی مطمئن نیستید، تا بتوانیم به شکلدهی ایدههای شما به شکلی که با مستندات BeeWare سازگار باشد کمک کنیم.
ارائه پیشنهاد یک ویژگی¶
پیشنهاد یک ویژگی جدید
پس شما ایدهای برای بهبود BeeWare دارید - چگونه آن را برای بررسی ارسال میکنید؟
تحقیق کنید¶
اولین قدم این است که در ردیاب مشکلات BeeWare به دنبال مشکلات ویژگی (مسائلی که با برچسب «enhancement» مشخص شدهاند)، مشکلات مستندسازی (مسائلی که با برچسب «documentation» مشخص شدهاند) یا موضوعات بحث بگردید تا ببینید آیا این ایده قبلاً پیشنهاد شده است یا خیر. اگر چنین است و شما زمینه یا ایدههای جدیدی برای اضافه کردن دارید، آنها را در همان رشته گفتگو موجود درج کنید. اگر برای تحقیق خود به کمک نیاز دارید، میتوانید در کانال #dev در دیسکورد BeeWare درخواست کمک کنید. ما ممکن است بتوانیم شما را به سمت رشتههای گفتگو موجود راهنمایی کنیم، زمینههایی را که ممکن است از آنها مطلع نباشید ارائه دهیم، یا ایده شما را به ایدهای دیگر که شاید در نگاه اول مرتبط به نظر نرسد، پیوند دهیم.
درباره این ایده بحث کنید¶
اگر هیچ مرجع موجودی برای ایدهتان پیدا نکردید، یک موضوع بحث ایجاد کنید. یک توضیح کلی از هدف و مورد استفاده برای ایدهتان ارائه دهید. هر فکری که در مورد ظاهر این قابلیت در صورت پیادهسازی دارید، مانند شکل کلی یک API، ظاهر بصری یک قابلیت، یا سندی که اضافه خواهد شد، را نیز شامل کنید. در صورت امکان، هر تحقیقی که در مورد نحوه تحقق ایدهتان در پلتفرمهای مختلف انجام دادهاید را نیز باید ضمیمه کنید.
به محض باز شدن رشتهٔ بحث، تیم BeeWare و سایر اعضای جامعه پاسخ خواهند داد. تیم اصلی تلاش خواهد کرد تا ظرف دو روز کاری حداقل یک برداشت اولیه از ایدهٔ شما ارائه دهد. اگر ایدهای بهویژه پیچیده باشد، تحلیل دقیقتر ممکن است تا یک هفته طول بکشد. رویدادهایی مانند تعطیلات و کنفرانسها ممکن است این بازههای زمانی را کمی طولانیتر کنند.
این فرصت شماست تا در گفتوگویی دربارهٔ ایدهتان شرکت کنید. ممکن است از شما بخواهیم جزئیات یا زمینهٔ بیشتری ارائه دهید. سایر اعضای جامعه نیز ممکن است در این بحث مشارکت کنند و دیدگاهها، پیشنهادها یا پیشنهادهای متقابل دیگری ارائه دهند. نتیجهٔ این بحث مراحل بعدی را تعیین خواهد کرد.
مهم است بدانید که همه ایدهها پذیرفته نخواهند شد. دلیل اینکه این فرایند با یک پیشنهاد شروع میشود این است که شما تمام کار را انجام ندهید و بعداً متوجه شوید دلیلی وجود دارد که تغییر شما پذیرفته نمیشود.
این به این معنی نیست که ایدهٔ خوبی نبوده است! ممکن است دلایل فنی وجود داشته باشد که نتوان آن را پیادهسازی کرد. برای مثال، ممکن است ما یک ایده را رد کنیم اگر:
- اجرای قابلاعتماد آن در تمام پلتفرمهای پشتیبانیشده دشوار یا غیرممکن خواهد بود؛ یا
- نگهداری آن دشوار خواهد بود، یا نگهداری مستلزم دسترسی به فناوری یا نرمافزاری است که بهطور گسترده در دسترس نیست؛ یا
- این مخاطب خاصی را هدف قرار میدهد، اما بار زیادی بر سایر کاربران تحمیل میکند.
اگر تشخیص دهیم ایدهی شما مناسب نیست، لزوماً به این معنا نیست که باید از آن دست بکشید. اگرچه ممکن است یک ایدهی مشخص را رد کنیم، اما ممکن است بسیار مایل باشیم رابط افزونه یا نقطهی توسعهی دیگری اضافه کنیم که به شما امکان دهد همان قابلیت را بهعنوان یک کتابخانهی خارجی نگهداری کنید. به این ترتیب میتوانید از آن قابلیت بهرهمند شوید، اما بدون دغدغهها یا محدودیتهای خاص نگهداری، یا بدون اینکه آن قابلیت خود به یک مانع برای پروژه تبدیل شود.
تبدیل به یک درخواست رسمی ویژگی¶
وقتی بحث به اجماع دربارهٔ شکل یک قابلیت رسید، میتوانید در ردیاب مسئلهٔ beeware یک مسئلهٔ درخواست قابلیت جدید ایجاد کنید که خلاصهای از بحث را ارائه دهد و برای زمینه به آن ارجاع دهد.
لازم نیست خودتان پیشنهاد فیچرتان را پیادهسازی کنید؛ میتوانید یک issue با جزئیات آنچه پیشنهاد میدهید باز کنید. با این حال، صرفاً ارسال issue به این معنا نیست که برای شما پیادهسازی خواهد شد. شما باید منتظر بمانید تا ممکن است شخص دیگری که به همان ویژگی علاقهمند است، آن را پیگیری کند، چه عضوی از جامعه باشد یا تیم اصلی؛ اما این امر تضمینشده نیست. اگر میخواهید پیادهسازی تضمینشده باشد، باید خودتان آن را پیادهسازی کنید یا به شخص دیگری برای پیادهسازی آن پول پرداخت کنید.