• Windows native development, Visual Studio installation dependency की वजह से जटिल और गैर-प्रभावी हो जाता है
  • दर्जनों GB install size, अपारदर्शी component management, और version mismatch problems जैसी चीज़ें developer productivity को कम करती हैं
  • इसे हल करने के लिए हल्का CLI tool msvcup बनाया गया, जो MSVC toolchain और Windows SDK को version-wise, isolated form में अपने-आप install कर सकता है
  • msvcup JSON manifest parsing, automatic environment setup (autoenv), और lock file support के ज़रिए reproducible build environment देता है
  • यह approach Visual Studio Installer पर निर्भर हुए बिना script-based पूरी तरह automated build system को संभव बनाती है

Windows native development की समस्याएँ

  • Visual Studio install करने वाला मौजूदा तरीका जटिल installation process और अस्थिर dependency management की वजह से developers पर बोझ डालता है
    • “Desktop development with C++” workload, खास SDK version जैसी बारीक selections करनी पड़ती हैं, और गलत चयन होने पर build fail हो सकता है
    • install size 50GB तक पहुँच जाती है, और uninstall के बाद भी registry leftovers और background services बचे रहते हैं
  • Linux में package manager की एक command से toolchain install की जा सकती है, लेकिन Windows में हज़ारों components को manually चुनना पड़ता है
  • Visual Studio एक single structure है जिसमें editor, compiler, और SDK आपस में उलझे होते हैं, इसलिए version management और environment reproduction मुश्किल हो जाता है
  • नतीजतन “मेरे PC पर तो चलता है” जैसी असंगतियाँ अक्सर होती हैं, और यह native development में entry barrier बन जाती है

msvcup: एक नया approach

  • msvcup एक open source CLI tool है, जो Visual Studio install किए बिना MSVC toolchain और Windows SDK को सीधे download और install करता है
    • हर version C:\msvcup\ के नीचे isolated directories में install होता है, इसलिए versions के बीच टकराव के बिना उन्हें साथ-साथ इस्तेमाल किया जा सकता है
    • installation कुछ ही मिनटों में पूरी हो जाती है, और ARM cross-compilation tools भी अपने-आप शामिल हो जाते हैं
  • msvcup install command ज़रूरी packages install करती है, और autoenv command automatic environment directory बनाती है
    • इस directory में environment variables अपने-आप सेट करने वाले wrapper executables और toolchain.cmake file शामिल होती है, इसलिए CMake projects भी अलग configuration के बिना build हो सकते हैं
  • build.bat script example में msvcup के ज़रिए “Hello, World” प्रोग्राम को Visual Studio के बिना build किया जा सकता है
    • यह Windows 10 या उससे ऊपर के environment में सिर्फ curl और tar के साथ काम करता है

अंदरूनी काम करने का तरीका

  • Microsoft द्वारा वितरित Visual Studio component JSON manifests को parse करके सिर्फ ज़रूरी packages की पहचान की जाती है
    • compiler, linker, headers, libraries जैसे core elements को सीधे Microsoft CDN से download किया जाता है
  • install किए गए components को lock file से manage किया जाता है, ताकि पूरी team एक ही version के packages share कर सके
  • install और autoenv commands idempotent हैं, इसलिए अगर चीज़ें पहले से install हों तो ये कुछ milliseconds में पूरी हो जाती हैं

वास्तविक उपयोग के उदाहरण

  • Tuple (pair programming app) ने msvcup को अपने CI build system में integrate करके Visual Studio pre-installation requirement हटा दी
    • WebRTC सहित सैकड़ों C/C++ projects को एक ही toolchain/SDK के साथ build किया जा सकता है
    • x86_64 और ARM builds दोनों supported हैं
  • फायदे
    • version-wise directory installation से parallel version management और आसान reinstallation संभव
    • cross-compilation का automatic support, अलग configuration की ज़रूरत नहीं
    • lock file आधारित reproducibility की गारंटी, और Microsoft की तरफ बदलाव होने पर तुरंत पता चल सकता है
    • तेज़ execution speed, बेकार की reinstallation नहीं

सीमाएँ और विस्तार

  • msvcup compiler toolchain-centric तरीके से डिज़ाइन किया गया है, इसलिए अगर Visual Studio IDE खुद चाहिए हो, तो official installation अब भी ज़रूरी है
  • लेकिन ज़्यादातर native development workflows में यह IDE के बिना भी पूरा build environment देता है
  • उदाहरण के तौर पर दिया गया raylib build script Visual Studio के बिना भी SDK और toolchain को अपने-आप install करके project build करता है
    • GUI के बिना सिर्फ command line से पूरी तरह automated build process चलती है

निष्कर्ष

  • msvcup Visual Studio Installer की जटिलता हटाकर version-manageable, lightweight native build environment देता है
  • यह तरीका Windows native development को reproducible और automated form में बदल देता है, और developers को IDE dependency से बाहर निकलने में मदद करता है
  • Repo : https://github.com/marler8997/msvcup

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.