অবদান রাখা
সেটআপ
সঠিক জায়গায় একটি ছোট বদল করুন এবং পুল রিকোয়েস্ট হিসেবে পাঠান।
শুরু করার আগে
শুরু করার আগে-এর লিংক- আগে একটি ইস্যু খুলুন, অথবা আগে থেকে থাকা কোনোটিতে কমেন্ট করুন। কী বদলাতে চান এবং কেন, তা লিখুন।
- উত্তরের অপেক্ষা করুন, যাতে এমন কিছু না বানান যা মার্জ হবে না।
- সেটআপ শেষ করুন, যাতে HolyArrs বিল্ড করে চালাতে পারেন।
প্রশ্ন যাবে Discord-এ। আইডিয়া যাবে r/HolyArrs-এ। ইস্যু শুধু বাগ ও রোডম্যাপের জন্য।
প্রথম পুল রিকোয়েস্ট পাঠান
প্রথম পুল রিকোয়েস্ট পাঠান-এর লিংক-
আপনার বদল কোন মডিউলের, তা খুঁজুন। মডিউল পেজের নামগুলো ফোল্ডারের নামের সঙ্গে মেলে, তাই Discord-এর ভুল অ্যালার্ট ঠিক করা মানে
alerts-এ বদল। -
app/backend/internal/<module>/ওapp/frontend/src/lib/<module>/-এ বদলটি করুন। একটি ফিক্স বা একটি ফিচারেই রাখুন। -
আগে ওয়েব অ্যাপ, তারপর প্রোগ্রাম বিল্ড করুন এবং ব্রাউজারে বদলটি পরখ করুন। দেখুন সেটআপ।
-
টেস্টিং-এর চেকগুলো চালান।
আপনি কোনো ব্যর্থতা দেখতে পাবেন না।
-
কোনো পেজ বদলালে তার এন্ড-টু-এন্ড প্রজেক্ট চালান, যেমন
npm --prefix app/frontend run e2e -- --project=movies। -
পুল রিকোয়েস্ট খুলুন। ইস্যুটি লিংক করুন, কী বদলেছে ও কীভাবে টেস্ট করেছেন লিখুন, এবং বদলের জন্য টেস্ট যোগ বা আপডেট করুন।
-
প্রথম পুল রিকোয়েস্টে একটি বট আপনাকে কন্ট্রিবিউটর লাইসেন্স চুক্তিতে সই করতে বলবে। সে যে একটি বাক্য চায়, সেটি উত্তরে লিখুন।
বিকল্প
বিকল্প-এর লিংকবদল কোথায় যাবে
বদল কোথায় যাবে-এর লিংক| বদল | যেখানে যাবেন |
|---|---|
| একটি নতুন রুট | মডিউল |
| একটি নতুন মডিউল | মডিউল। আগে একটি ইস্যু খুলুন |
| একটি আটকে রাখা ফিচার | সেটআপ |
| একটি নতুন ভার্সন বের করা | নতুন ভার্সন বের করা। শুধু মেইনটেইনারদের জন্য |
ভালো পুল রিকোয়েস্ট দেখতে কেমন
ভালো পুল রিকোয়েস্ট দেখতে কেমন-এর লিংক- কোড যা করে তা কেন করে, কমেন্টে সেটা লিখুন। কমেন্টে রোডম্যাপের নম্বর, তারিখ, নাম বা em dash দেবেন না।
- ইস্যুটি শব্দ নিয়ে না হলে অ্যাপের শব্দে হাত দেবেন না।
- প্রকাশিত API পাথ, ফিল্ডের নাম, সেটিংসের কী, টেবিলের নাম ও কাজের নাম যেমন আছে তেমনই রাখুন। শুধু যোগ করুন, কখনো নাম বদলাবেন না।
কাজ না করলে
কাজ না করলে-এর লিংকলক্ষণ: একটি স্ট্রাকচার চেক ফেল করে। কারণ: বার্তায় ফাইল ও নিয়মের নাম থাকে। সমাধান: কোডটি সরান, অথবা ওপরের মডিউল থেকে সাধারণ ডেটা পাঠান। দেখুন মডিউল।
লক্ষণ: ওয়েব অ্যাপ পুরোনো দেখায়। কারণ: প্রোগ্রাম নিজের ভেতরে বসানো বিল্ডটিই সার্ভ করে। সমাধান: প্রোগ্রামের আগে আবার ওয়েব অ্যাপ বিল্ড করুন।
লক্ষণ: এন্ড-টু-এন্ড টেস্ট চালু হয় না।
কারণ: টেস্টের ব্রাউজার ইনস্টল করা নেই।
সমাধান: npx --prefix app/frontend playwright install chromium চালান।
বিশেষজ্ঞদের জন্য
বিশেষজ্ঞদের জন্য-এর লিংকপুল রিকোয়েস্টকে যে নিয়ম মানতে হয়
- একটি মডিউল অন্য মডিউলের সঙ্গে কথা বলে শুধু তার সার্ভিসের (Go) বা
index.ts-এর (ওয়েব) মাধ্যমে। কখনো তার স্টোর বা ফাইলের মাধ্যমে নয়। - SQL থাকে শুধু মডিউলের
store*.goফাইলে, সেই মডিউলের নিজের টেবিলের ওপর। - ওয়েবের কোনো অংশ
lib/ui-তে যায় শুধু তখন, যখন 2টি বা বেশি মডিউল সেটি ব্যবহার করে। util,common,sharedবাhelpersনামে কোনো প্যাকেজ নয়।- বাইরের প্রতিটি কল
core/outboundদিয়ে যায়।
টেস্ট এই নিয়মগুলো যাচাই করে, তাই ভুল ইমপোর্ট বিল্ড ফেল করায়। পুরো তালিকা ও চেকের নাম মডিউল পেজে আছে।
CI কী চালায়
| কাজ | যা চালায় |
|---|---|
| Web | check, lint, test, build এবং এন্ড-টু-এন্ড স্যুট |
| Go | amd64 ও arm64-এ go build, go vet এবং go test -timeout 60m ./..., নেটিভভাবে ও এমুলেশনে |
| Race | go test -race ./... |
| Contract | openapi.json-এর মিল, প্রতিটি রুটে স্কোপ চেক, ডাউনলোডার স্যুট |
| Fault and scale | ক্র্যাশ, ধীর লেখা, বাইরের খারাপ সার্ভিস ও মেমরির রান |
| Image | একটি ডেভেলপমেন্ট ইমেজ বিল্ড হয়, চালু হয় এবং নিজের ভার্সন জানায় |
লম্বা রানগুলোর বিস্তারিত টেস্টিং পেজে আছে।
সংশ্লিষ্ট
সংশ্লিষ্ট-এর লিংকHolyArrs বিনামূল্যে। এটি আপনার সময় বাঁচিয়ে থাকলে GitHub-এ স্টার দিন, স্পনসর করুন অথবা এক কাপ কফি কিনে দিন।