
कोड-गुणवत्ता और स्थैतिक-विश्लेषण प्लेटफ़ॉर्म जिसमें क्वालिटी गेट्स, बहु-भाषा स्कैनिंग और सुरक्षा-केंद्रित नियम शामिल हैं, ताकि CI/CD वर्कफ़्लो में भेद्यताओं और रखरखाव-क्षमता संबंधी समस्याओं का पता लगाया जा सके।
SonarQube न केवल किसी एप्लिकेशन के स्वास्थ्य को दिखाने की क्षमता प्रदान करता है, बल्कि नई शुरू की गई समस्याओं को उजागर करने की भी क्षमता प्रदान करता है। क्वालिटी गेट की मदद से, आप क्लीन कोड प्राप्त कर सकते हैं और इस प्रकार व्यवस्थित रूप से कोड की गुणवत्ता में सुधार कर सकते हैं।
सहायता संबंधी प्रश्नों के लिए ("मैं यह कैसे करूँ?", "मुझे यह त्रुटि मिली, क्यों?", ...), कृपया पहले दस्तावेज़ीकरण पढ़ें और फिर SonarSource समुदाय पर जाएँ। आपके प्रश्न का उत्तर संभवतः पहले ही दिया जा चुका है! 🤓
ध्यान रखें कि यह फ़ोरम एक समुदाय है, इसलिए सामान्य शिष्टाचार ("नमस्ते", "धन्यवाद", ...) की अपेक्षा की जाती है। और यदि आपको अपने थ्रेड का उत्तर नहीं मिलता है, तो उसे आगे बढ़ाने (bump) से पहले कम से कम तीन दिन प्रतीक्षा करें। ऑपरेटर स्टैंडबाय पर नहीं हैं। 😄
यदि आप कोई नई सुविधा देखना चाहते हैं या किसी बग की रिपोर्ट करना चाहते हैं, तो कृपया हमारे फ़ोरम में एक नया थ्रेड बनाएँ।
कृपया ध्यान दें कि हम सक्रिय रूप से फीचर योगदान की तलाश नहीं कर रहे हैं। सच तो यह है कि SonarSource के बाहर के किसी व्यक्ति के लिए हमारे रोडमैप और अपेक्षाओं का अनुपालन करना अत्यंत कठिन है। इसलिए, हम आमतौर पर केवल छोटे कॉस्मेटिक बदलाव और टाइपो सुधार स्वीकार करते हैं।
इसे ध्यान में रखते हुए, यदि आप कोड योगदान प्रस्तुत करना चाहते हैं, तो कृपया इस रिपॉजिटरी के लिए एक पुल रिक्वेस्ट बनाएँ। कृपया इस बदलाव में योगदान करने के अपने उद्देश्य स्पष्ट करें: आप किस समस्या को ठीक करने का प्रयास कर रहे हैं, आप क्या सुधार करने का प्रयास कर रहे हैं।
सुनिश्चित करें कि आप हमारी कोड शैली का पालन करते हैं और सभी परीक्षण पास हो रहे हैं (प्रत्येक पुल रिक्वेस्ट के लिए Travis बिल्ड निष्पादित किया जाता है)।
क्या आप SonarSource उत्पादों में योगदान करने के इच्छुक हैं? हम विश्व-स्तरीय कोड-गुणवत्ता समाधान बनाने में हमारी मदद करने के लिए स्मार्ट, जुनूनी और कुशल लोगों की तलाश कर रहे हैं। हमारे वर्तमान नौकरी के अवसर यहाँ देखें!
स्रोतों को स्थानीय रूप से बिल्ड करने के लिए इन निर्देशों का पालन करें।
-x test जोड़कर अक्षम किए जा सकते हैं (उपयोगी यदि आप परीक्षण चलाए बिना केवल बिल्ड करना चाहते हैं)प्रोजेक्ट की मूल निर्देशिका से निष्पादित करें:
./gradlew build
zip वितरण फ़ाइल sonar-application/build/distributions/ में उत्पन्न होती है। इसे अनज़िप करें और निम्न निष्पादित करके सर्वर प्रारंभ करें:
# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat
यदि प्रोजेक्ट कभी बिल्ड नहीं हुआ है, तो इसे हमेशा की तरह बिल्ड करें (पिछला अनुभाग देखें) या तेज़ कमांड का उपयोग करें:
./gradlew ide
फिर रूट फ़ाइल build.gradle को IntelliJ या Eclipse में एक प्रोजेक्ट के रूप में खोलें।
| ./gradlew command | विवरण |
|---|---|
dependencies | निर्भरताओं की सूची बनाएँ |
spotlessApply | HEADER लागू करके स्रोत हेडर ठीक करें |
wrapper --gradle-version 5.2.1 | wrapper अपग्रेड करें |
SonarQube UI (या वेबऐप, जैसा कि हम इसे कहते हैं), एक अन्य रिपॉजिटरी में स्थित है: sonarqube-webapp।
sonarqube रिपॉजिटरी बिल्ड करते समय, वेबऐप स्वचालित रूप से Maven Central से एक निर्भरता के रूप में डाउनलोड होता है, जिससे आपके लिए वेबऐप के बारे में चिंता किए बिना बैकएंड परिवर्तनों में योगदान करना आसान हो जाता है।
लेकिन यदि आपके योगदान में UI परिवर्तन भी शामिल हैं, तो आपको sonarqube-webapp रिपॉजिटरी को क्लोन करना होगा, वहाँ अपने परिवर्तन करने होंगे, इसे स्थानीय रूप से बिल्ड करना होगा और फिर UI के अपने कस्टम बिल्ड को लक्षित करने के लिए WEBAPP_BUILD_PATH पर्यावरण चर का उपयोग करके sonarqube रिपॉजिटरी को बिल्ड करना होगा।
इसे करने का एक उदाहरण यहाँ दिया गया है:
cd /path/to/sonarqube-webapp/server/sonar-web
# do your changes
# install dependencies, only needed the first time
yarn
# build the webapp
yarn build
cd /path/to/sonarqube
# build the sonarqube repository using the custom build of the webapp
WEBAPP_BUILD_PATH=/path/to/sonarqube-webapp/server/sonar-web/build/webapp ./gradlew build
आप ./gradle.properties फ़ाइल में webappVersion प्रॉपर्टी को अपडेट करके और फिर sonarqube रिपॉजिटरी को सामान्य रूप से बिल्ड करके वेबऐप के किसी विशिष्ट संस्करण को भी लक्षित कर सकते हैं।
ऐतिहासिक रूप से हमारे अनुवाद sonar-core/src/main/resources/org/sonar/l10n/core.properties में संग्रहीत थे, लेकिन यह फ़ाइल अब पदावनत (deprecated) है और अब इसे अपडेट नहीं किया जाता है। डिफ़ॉल्ट अनुवाद (अंग्रेज़ी में) अब वेबऐप रिपॉजिटरी में परिभाषित हैं, यहाँ:
https://github.com/SonarSource/sonarqube-webapp/blob/master/libs/sq-server-shared/src/l10n/default.ts
प्रारूप बदल गया है, लेकिन आप निम्न कमांड चलाकर इसे अभी भी .properties फ़ाइल प्रारूप में प्राप्त कर सकते हैं:
cd /path/to/sonarqube-webapp/server/sonar-web
# install dependencies, only needed the first time
yarn
# generate a backward compatible .properties file with all the translation keys
yarn generate-translation-keys
ध्यान दें कि अन्य भाषाओं में अनुवाद के लिए एक्सटेंशन का योगदान पहले की तरह ही काम करता है। केवल डिफ़ॉल्ट अनुवादों का सत्य-स्रोत (source of truth) बदल गया है।
कॉपीराइट (C) SonarSource Sàrl।
GNU Lesser General Public License, Version 3.0 के अंतर्गत लाइसेंस प्राप्त।