इसे छोड़कर कंटेंट पर जाएं

योगदान

सेटअप

सही जगह पर एक छोटा बदलाव करें और उसे पुल रिक्वेस्ट के रूप में भेजें।

शुरू करने से पहले

शुरू करने से पहले का लिंक
  • पहले एक इशू खोलें, या किसी मौजूदा इशू पर कमेंट करें। बताएं कि आप क्या बदलना चाहते हैं और क्यों।
  • जवाब का इंतज़ार करें, ताकि आप ऐसा कुछ न बना लें जो मर्ज ही न हो।
  • सेटअप पूरा करें, ताकि आप HolyArrs बिल्ड करके चला सकें।

सवाल Discord पर पूछें। आइडिया r/HolyArrs पर रखें। इशू बग और रोडमैप के लिए हैं।

अपनी पहली पुल रिक्वेस्ट भेजें

अपनी पहली पुल रिक्वेस्ट भेजें का लिंक
  1. वह मॉड्यूल खोजें जिसमें आपका बदलाव आता है। मॉड्यूल में दिए नाम फ़ोल्डर के नामों से मिलते हैं, इसलिए Discord का गलत अलर्ट alerts में बदलाव है।

  2. बदलाव app/backend/internal/<module>/ और app/frontend/src/lib/<module>/ में करें। उसे एक फ़िक्स या एक फ़ीचर तक रखें।

  3. पहले वेब ऐप बिल्ड करें, फिर प्रोग्राम, और बदलाव को ब्राउज़र में आज़माएं। सेटअप देखें।

  4. टेस्टिंग में दी गई जाँचें चलाएं।

    कोई फ़ेल नहीं दिखना चाहिए।

  5. अगर आपने कोई पेज बदला है, तो उसका एंड-टू-एंड प्रोजेक्ट चलाएं, जैसे npm --prefix app/frontend run e2e -- --project=movies.

  6. पुल रिक्वेस्ट खोलें। इशू का लिंक दें, बताएं कि क्या बदला और आपने उसे कैसे टेस्ट किया, और बदलाव के लिए टेस्ट जोड़ें या अपडेट करें।

  7. आपकी पहली पुल रिक्वेस्ट पर एक बॉट आपसे योगदानकर्ता लाइसेंस समझौते पर साइन करने को कहता है। वह जो एक वाक्य माँगता है, वही जवाब में लिखें।

बदलाव कहाँ जाता है

बदलाव कहाँ जाता है का लिंक
बदलाव यहाँ जाएं
नया रूट मॉड्यूल
नया मॉड्यूल मॉड्यूल। पहले एक इशू खोलें
रोका हुआ फ़ीचर सेटअप
नया वर्ज़न वर्ज़न निकालना। सिर्फ़ मेंटेनर के लिए

अच्छी पुल रिक्वेस्ट कैसी होती है

अच्छी पुल रिक्वेस्ट कैसी होती है का लिंक
  • ऐसे कमेंट लिखें जो बताएं कि कोड जो करता है, वह क्यों करता है। कमेंट में रोडमैप नंबर, तारीख़, नाम या 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 पर स्टार दें, स्पॉन्सर करें या मुझे एक कॉफ़ी पिलाएं।