अन्य भाषाओं में: English, Español, Português, 日本語, Deutsch, Français, 한국어, 简体中文, Italiano · हिन्दी में सभी गाइड
प्रकटीकरण: Carbon Forge को 100monkeys.ai बनाता है, इसलिए इसे बनाने वाले का विवरण मानकर पढ़ें। इस गाइड का मसौदा हमारे एक AI एजेंट ने सार्वजनिक दस्तावेज़ों से तैयार किया, ख़ासकर Perspectives: beam angles through one workspace और Source control settings के Perspectives सेक्शन से, और कंपनी ने इसकी समीक्षा की; यह हिन्दी संस्करण मूल अंग्रेज़ी गाइड का अनुवाद है। perspective और कॉल दस्तावेज़ों के अपने उदाहरण हैं, और उद्धरण अंग्रेज़ी में हैं, अनुवाद साथ में। जहाँ दस्तावेज़ कोई सवाल खुला छोड़ते हैं, आख़िरी सेक्शन यह बताता है।
perspective क्या है
दस्तावेज़: "A perspective is a named lens through that record. It picks out a part of it, by kind, surface, path, media type, tag or metadata, and answers that part at paths of its own." (perspective उस रिकॉर्ड में से देखने वाला एक नामित लेंस है। यह उसका एक हिस्सा, प्रकार, सतह, पाथ, मीडिया टाइप, टैग या मेटाडेटा के आधार पर चुनती है, और उस हिस्से को अपने पाथ पर लौटाती है।) और: "Nothing is copied to make one." (इसे बनाने के लिए कुछ भी कॉपी नहीं होता।) एक्सपोर्ट के लिए दो बातें मायने रखती हैं। दायरे में यह सिर्फ़ पढ़ने के लिए है: "A perspective never discloses. It narrows what the reader already reads and never widens it." (perspective कभी कुछ उजागर नहीं करती। यह पाठक जो पहले से पढ़ता है उसे संकरा करती है, कभी चौड़ा नहीं।) और इसका डाउनलोड निश्चित है: "The same ref through the same perspective gives the same bytes." (एक ही perspective से एक ही ref हमेशा वही बाइट्स देता है।)
कदम 1. वर्कस्पेस जो perspectives रिज़ॉल्व करता है उनकी सूची देखें
perspectives.list कॉल करें। हर वर्कस्पेस में बिल्ट-इन perspectives होती हैं: all, code, docs, adrs, internal, public (ठीक वही जो किसी अनाम पाठक को दिखता है) और हर कोड ट्री के लिए एक tree:<path>, उसी ट्री को रूट मानकर। इंस्टेंस एडमिन पूरे इंस्टेंस के लिए perspectives जोड़ सकता है, और वर्कस्पेस की अपनी सबसे आख़िर में आती हैं; "The nearest layer wins" (सबसे नज़दीकी परत जीतती है)। हर जवाब अपना source और वे स्रोत बताता है जिन्हें वह overrides करता है। अगर कोई बिल्ट-इन काम कर दे, तो सीधे कदम 3 पर जाएँ।
कदम 2. अपनी perspective .perspectives पेज पर लिखें
वर्कस्पेस की perspectives आरक्षित पेज .perspectives पर रहती हैं, एक फ़ेंस्ड JSON ब्लॉक या एक तालिका के रूप में। दस्तावेज़ों का उदाहरण, एक perspective तक छोटा किया हुआ:
{
"perspectives": [
{
"name": "api",
"title": "API service",
"description": "The api tree's source and README, without generated files.",
"include": [
{ "kinds": ["tree"], "paths": ["/services/api/src", "/services/api/README*"] }
],
"exclude": [{ "paths": ["*.generated.ts"] }],
"root": "services/api"
}
]
} कोई नियम तब मेल खाता है जब उसके बताए सभी फ़ील्ड मेल खाएँ; include हर उस चीज़ को लेता है जो किसी भी नियम से मेल खाए, और exclude हर उस चीज़ को हटाता है जो किसी भी नियम से मेल खाए, "even when an include rule matched it" (भले ही किसी include नियम ने उसे लिया हो)। पाथ gitignore-शैली के ग्लॉब हैं और ! से शुरू नहीं हो सकते। root सेट हो तो हर पाथ से वह रूट हटा दिया जाता है, इसलिए यह perspective src/main.ts और README.md लौटाती है। कोड ट्री फ़ाइल दर फ़ाइल जाँचे जाते हैं। monorepo, service, library या docs-site जैसे टेम्पलेट perspectives.adopt से, या Settings, Workspace, Source control में Adopt से, आपके लिए यह पेज लिख सकते हैं।
ग़लत पंक्ति छोड़ी नहीं जाती। "When the page cannot be read, every perspective read in the workspace is refused, quoting the page's first bad row, until it is fixed." (जब पेज पढ़ा नहीं जा सकता, तो वर्कस्पेस में perspective से होने वाली हर रीड अस्वीकार होती है, पेज की पहली ग़लत पंक्ति का हवाला देकर, जब तक उसे ठीक न किया जाए।) पेज पर एक पैनल Perspectives on this page दिखता है जो हर सेव पर फिर जाँच करता है।
कदम 3. किसी ref पर प्रीव्यू देखें
perspectives.preview गिनता है कि किसी ref पर perspective में प्रकार के हिसाब से क्या है, और पहले प्रोजेक्ट किए गए पाथ लौटाता है, डिफ़ॉल्ट 100 और अधिकतम 500। "It stores nothing, so it is the way to check a perspective before downloading it." (यह कुछ भी सहेजता नहीं, इसलिए डाउनलोड से पहले perspective जाँचने का यही तरीक़ा है।) ब्राउज़र में यही गिनती कोड ब्राउज़र की ref बार में चयनकर्ता के बगल में दिखती है: Selects <n> pages, <n> atoms, <n> code trees, <n> files, <n> library entries at <ref>।
कदम 4. ऐसा ref चुनें जो हिलता न हो
ref trunk (डिफ़ॉल्ट), lane:<label>, cut:<name> या snapshot:<id> होता है। एक्सपोर्ट जॉब चलते समय ref रिज़ॉल्व करता है, "so trunk is the trunk at that moment. Name a cut or a snapshot for a point that does not move." (इसलिए trunk उस पल का trunk है। न हिलने वाले बिंदु के लिए कोई cut या snapshot बताएँ।) जिस डाउनलोड को आप दोहराना चाहें, उसके लिए cut बताएँ। टकराव वाली lane तब तक अस्वीकार होती है जब तक टकराव सुलझ न जाए।
कदम 5. एक्सपोर्ट करें और आर्काइव डाउनलोड करें
perspectives.export { "perspective": "api", "ref": "cut:<name>", "format": "tar" }
→ { export_id, status: "queued" }
exports.status { ... } // until it answers a download_url एक्सपोर्ट id के साथ exports.status तब तक पूछें जब तक वह download_url न लौटाए; माँगने वाले को लिंक के साथ एक ईमेल भी मिलता है। आर्काइव का नाम <workspace>-<perspective>-<ref>.zip या .tar होता है। अंदर, पेज या atom एक Markdown फ़ाइल है जिसके frontmatter में शीर्षक, प्रकार और मेटाडेटा होते हैं; कोड फ़ाइल अपने बाइट्स और मोड रखती है; सिमलिंक सिमलिंक ही रहता है। एंट्री पाथ के बाइट्स के क्रम में होती हैं, हर फ़ाइल पर ref का समय होता है, कुछ भी कंप्रेस नहीं होता और कोई ओनर नहीं लिखा जाता। zip में अधिकतम 65,535 एंट्री और 4 GiB आते हैं; उससे ज़्यादा के लिए tar इस्तेमाल करें। ब्राउज़र में zip या tar चुनें और प्रीव्यू के बगल में Download दबाएँ।
कदम 6. हर फ़ाइल को मैनिफ़ेस्ट से जाँचें
हर एक्सपोर्ट किए गए आर्काइव में .carbon/perspective.json होता है, फ़ॉर्मेट carbon-perspective/1। यह इंस्टेंस, वर्कस्पेस, रिज़ॉल्व हुई perspective और ref बताता है: cut या snapshot उसकी snapshot id से, trunk या lane composition_sha256 से। हर एंट्री में होता है:
path, kind, entity_id, revision_id, content_hash, seal_hash, mode, size, sha256 हर फ़ाइल का हैश निकालें और sha256 से मिलाएँ; revision_id, content_hash और seal_hash को रिकॉर्ड से मिलाएँ। दस्तावेज़: मैनिफ़ेस्ट के साथ "a reader can check every file against the record it came from" (पाठक हर फ़ाइल को उस रिकॉर्ड से जाँच सकता है जिससे वह आई)। यही आर्काइव को रिकॉर्ड का एक हिस्सा बनाता है, न कि "a copy that can drift into a second truth." (एक ऐसी कॉपी जो भटककर दूसरा सच बन जाए।)
कदम 7. बदलाव एक lane से वापस लाएँ
"A download is read-only by design. Nothing in the archive is read back." (डाउनलोड डिज़ाइन से ही सिर्फ़ पढ़ने के लिए है। आर्काइव में से कुछ भी वापस नहीं पढ़ा जाता।) आर्काइव पर किया काम वापस लाने के लिए उसे टूल कॉल से लिखें, एक lane पर रखें और उसे लैंड करें, या इंपोर्ट करें, ताकि हर बदलाव अपना कर्ता और इरादा साथ रखे। Working in lanes lane समझाता है, और हमारी गाइड Cut a release in Carbon Forge and push it to GitHub (अंग्रेज़ी में) बताती है कि जिस cut से आप एक्सपोर्ट करते हैं उसे कैसे बनाएँ।
दस्तावेज़ किन सवालों का जवाब नहीं देते
- एक्सपोर्ट की सीमा कितनी है। सीमा पार करने वाला डाउनलोड सीमा बताने वाले एक वाक्य के साथ विफल होता है, पर दस्तावेज़ डिफ़ॉल्ट मान नहीं बताते।
download_urlकितनी देर मान्य रहता है और एक्सपोर्ट कितने समय तक रखा जाता है।.perspectivesकौन बदल सकता है। टेम्पलेट अपनाना एडमिन का काम है; पेज ख़ुद "is edited like any other page" (किसी भी दूसरे पेज की तरह बदला जाता है), जिसका मतलब है कोई भी एडिटर।- किसी आर्काइव को उसके मैनिफ़ेस्ट से जाँचने का टूल। फ़ॉर्मेट बताया गया है; जाँच हर पाठक की अपनी स्क्रिप्ट पर छोड़ी गई है।