Avatar ·

बिल्ड के समय Go एप्लिकेशन में वर्जन नंबर और कमिट हैश कैसे जोड़ें?

सभी को नमस्ते! मैं Go में एक छोटा वेब एप्लिकेशन लिख रहा हूँ और चाहता हूँ कि यह स्टार्टअप पर अपना वर्जन दिखाए। अभी मैं कोड में मैन्युअल रूप से कॉन्स्टेंट बदल रहा हूँ:\n\n```go\nconst Version = "1.0.3"\n```\n\nलेकिन यह बहुत असुविधाजनक है। हर कमिट पर कोड में जाना, स्ट्रिंग बदलना, अलग से कमिट करना पड़ता है। और मैं सिर्फ वर्जन नंबर ही नहीं, बल्कि कमिट हैश और बिल्ड डेट भी देखना चाहता हूँ — ताकि यह सुनिश्चित हो सके कि सर्वर पर कौन सा बिल्ड चल रहा है।\n\nफ़ाइलें पढ़ने की कोशिश की, लेकिन यह काम नहीं करता अगर बाइनरी को दूसरी मशीन पर ले जाया जाए। ldflags के बारे में सुना है, लेकिन समझ नहीं आ रहा कि उनका सही उपयोग कैसे करें।\n\nबताइए, Go प्रोजेक्ट्स में वर्जनिंग कैसे की जाती है? कंपाइलेशन के समय बाइनरी में वर्जन, कमिट हैश और बिल्ड डेट कैसे पास करें ताकि यह बिना किसी हैक के काम करे? और जब `./myapp ver` चलाएँ तो यह काम करे?