Packaging Python projects for distribution In Hindi

Packaging Python projects for distribution In Hindi

पाइथन प्रोग्रामिंग लैंग्वेज में पाइथन प्रोग्राम सॉफ्टवेयर प्रोजेक्ट को एक ग्रुप और सिंगल फाइल में पैकेज करने का अर्थ है, पाइथन डेवलपर अपने पाइथन प्रोग्राम सोर्स कोड, डिपेंडेंसी, मेटाडेटा और अन्य एसेंशियल प्रोग्राम फ़ाइलें तैयार करना, जिससे कि मौजूदा पाइथन सोर्स प्रोजेक्ट को आसानी से अन्य सॉफ्टवेयर डेवलपर यूज़र्स और सिस्टम में इंस्टॉल, शेयर, पब्लिश, या जरूरी डेवलपर के मध्य आसानी से डिस्ट्रीब्यूट किया जा सके।

Packaging Python projects for distribution In Hindi

उदाहरण के लिए, किसी पाइथन डेवलपर यूज़र को मल्टीप्ल .py एक्सटेंशन पाइथन फ़ाइलों वाला फ़ोल्डर सेंड करने और उन्हें यह इंडीकेट करने के बदले सब कुछ मैन्युअल रूप से कैसे कस्टमाइज या कॉन्फ़िगर करना है. पाइथन यूजर एक ऐसा पैकेज डिज़ाइन या डेवलप कर सकते हैं. जिसे बाद में निचे दिए गए पाइथन कमांड स्टेटमेंट के साथ आसानी से इंस्टॉल किया जा सके.

pip install your-package

पाइथन प्रोग्रामिंग लैंग्वेज में पाइथन पैकेजिंग मेथड का यूज़ सामान्य रूप से लाइब्रेरी और एप्लिकेशन दोनों के लिए यूज़ किया जाता है।

Why package a project in Python?

पाइथन प्रोग्रामिंग में किसी सोर्स कोड पैकेजिंग के कई बेस्ट फीचर्स या एडवांटेज है.

  • डिज़ाइन डेवलप पाइथन प्रोग्राम सोर्स कोड सॉफ़्टवेयर को आसानी से डिस्ट्रीब्यूट या स्प्रेड करना इजी हो जाता है।
  • यह पाइथन में अवेलेबल मल्टीप्ल प्रोग्राम सोर्स कोड प्रोजेक्ट फ़ाइलों को ऑर्गनाइज़ करता है।
  • यूजर डिज़ाइन सॉफ्टवेयर प्रोजेक्ट डिपेंडेंसी को रिकॉर्ड या मैनेज करता है।
  • यह पाइथन यूज़र्स को pip कमांड स्टेटमेंट का यूज़ करके मौजूदा सॉफ़्टवेयर इंस्टॉल करने में हेल्प करता है।
  • यह लेटेस्ट पाइथन प्रोजेक्ट वर्शन मैनेजमेंट को इजी करता है।
  • पाइथन लाइब्रेरी को PyPI जैसी पैकेज रिपॉजिटरी में पब्लिश करने में हेल्प करता है।
  • यह पाइथन बेस्ड डिज़ाइन सोर्स कोड प्रोजेक्ट को रिप्रोड्यूस और मेंटेन करना इजी करता है।

This is the basic project packaging concept in Python programming.

Basic Python Project

पाइथन प्रोजेक्ट सोर्स कोड में पैकेज कॉन्फ़िगरेशन को ऐड करे

पाइथन प्रोजेक्ट सोर्स कोड की एक डिस्ट्रीब्यूशन फ़ाइलें क्रिएट करे

फाइनल पाइथन प्रोजेक्ट सोर्स कोड फाइल को डिस्ट्रीब्यूट करें

पाइथन pip कमांड स्टेटमेंट के साथ यूज़र इसे इंस्टॉल करें

Types of Projects in Python

पाइथन प्रोग्रामिंग में किसी सोर्स कोड प्रोजेक्ट्स को सामान्य रूप से इस तरह से पैकेज किया जा सकता है.

Python Library Concept.

पाइथन प्रोग्रामिंग में दोबारा या कई बार यूज़ होने वाले प्रोग्राम सोर्स कोड का कलेक्शन जिसे अन्य प्रोग्रामर आसानी से इंपोर्ट कर सकते हैं।

Example of a Python Library.

from testsoftware import plus

Python Based Application.

यह पाइथन में एक कम्पलीट सोर्स कोड प्रोग्राम है, जिसे पाइथन यूजर अपनी जरूरत के अनुसार रन करते हैं।

Example of a Python Based Application.

  • डेस्कटॉप कंप्यूटर बेस्ड एप्लीकेशन
  • कमांड-लाइन पाइथन एप्लीकेशन
  • वेब बेस्ड पाइथन एप्लीकेशन

पाइथन सॉफ्टवेयर प्रोजेक्ट के पर्पस के आधार पर इन सोर्स फाइल को पैकेजिंग का मेथड अलग अलग हो सकता है।

The structure of a typical project in Python source code.

पाइथन प्रोग्रामिंग में एक मॉडर्न प्रोजेक्ट सोर्स कोड फाइल प्रोजेक्ट कुछ ऐसा डिस्प्ले हो सकता है.

testproject/

├── pyproject.toml

├── README.md

├── LICENSE

├── src/

│ └── testpackage/

│ ├── __init__.py

│ └── total.py

└── tests/

└── test_total.py

ये सभी एक पाइथन प्रोजेक्ट में एसेंशियल फ़ाइलों और डायरेक्टरी के रूप में इन्क्लुड हैं.

File/DirectoryWhat is use or main Purpose
pyproject.tomlThis file contains project configuration and builds information of your python project
README.mdThis file contains a detail python software package documentation with other detail
LICENSEThis file contains legal software license term and condition
src/This file contains actual real python source code logic and description
tests/This file contains automated tests python source code logic and instruction
__init__.pyThis file contains indicate a traditional python package and can define package-level behavior

pyproject.toml Concepts with Python.

पाइथन प्रोग्रामिंग में pyproject.toml फ़ाइल मॉडर्न पाइथन प्रोग्राम सोर्स कोड फाइल  पैकेजिंग का एक एसेंशियल फीचर्स है। यहाँ एक पाइथन pyproject.toml फाइल में ये सब कुछ हो सकता है.

  • आपके द्वारा पाइथन प्रोजेक्ट का कम्पलीट नाम
  • डेवलप डिज़ाइन पाइथन सोर्स कोड का वर्शन
  • डेवलप पाइथन प्रोजेक्ट की डिटेल इनफार्मेशन
  • डिज़ाइन प्रोजेक्ट ऑथर की डिटेल इनफार्मेशन
  • मौजूदा प्रोजेक्ट फाइल की एसेंशियल डिपेंडेंसी
  • मौजूदा पाइथन वर्शन की ज़रूरतें
  • मौजूदा पैकेज बिल्ड-सिस्टम की हार्डवेयर कॉन्फ़िगरेशन

A simple example in Python.

[build-system]

requires = [“setuptools>=61”]

build-backend = “setuptools.build_meta”

[project]

name = “total”

version = “5.0.0”

description = “this is a simple total value project, which plus two number”

requires-python = “>=3.14”

यहाँ आपके सही कॉन्फ़िगरेशन बिल्ड बैकएंड और प्रोजेक्ट की ज़रूरतों पर निर्भर करता है।

Creating a package in Python programming.

यहाँ माना की हमारे पास पाइथन में एक टोटल नंबर वैल्यू का प्रोजेक्ट है.

testproject/

└── src/

└── total/

├── __init__.py

└── total.py

total.py

def plus(p, q):

return p + q

def minus(p, q):

return p – q

इसके बाद पाइथन प्रोग्रामिंग में एक पैकेज को कुछ इस तरह से इंपोर्ट किया जा सकता है.

from mytotal..total. import plus

print(plus(3, 4))

The output is.

7

Managing Required Dependencies in Python

पाइथन प्रोग्रामिंग में ज़्यादातर प्रोजेक्ट एक्सटर्नल लाइब्रेरी पर टोटली कुछ इस तरह से डिपेंड करते हैं।

For example.

import requests

import pandas

पाइथन प्रोग्राम के प्रॉपर वर्क करने के लिए यूज़र डेवलपर को उन पैकेज को इंस्टॉल करने की आवश्यकता होती है।

एक पाइथन प्रोजेक्ट डिपेंडेंसी को pyproject.toml में इंडीकेट किया जा सकता है।

For example.

[project]

name = “testproject”

version = “5 .0.0”

dependencies = [

“requests>=2.0”,

“pandas>=2.0”

]

पाइथन में जब कोई पैकेज इंस्टॉल हो जाता है, तो पाइथन में पैकेजिंग सिस्टम इस इनफार्मेशन का यूज़ ज़रूरी dependencies को इंस्टॉल करने में कर सकता है।

Build a package in Python.

पाइथन प्रोग्रामिंग में एक पाइथन पैकेज डिस्ट्रीब्यूशन क्रिएट करने के लिए एक बेसिक टूल build है।

build.

Install it in Python like this.

python -m pip install build

From the root directory of an existing Python project, run this.

python -m build

यह पाइथन में डिस्ट्रीब्यूशन फ़ाइलें क्रिएट करता है, जो सामान्य रूप से इसमें होती हैं.

dist/

├── total-1.0.0.tar.gz

└── total-1.0.0-py3-none-any.whl

Python program source code distribution.

पाइथन प्रोग्रामिंग में एक प्रोग्राम सॉफ्टवेयर सोर्स कोड डिस्ट्रीब्यूशन को सामान्य रूप से इस तरह से डिस्प्ले क्या जाता है.

.tar.gz

इसमें कंप्रेस्ड सभी पाइथन प्रोग्राम सोर्स कोड फ़ाइलें और पैकेजिंग की डिटेल इनफार्मेशन होती है।

Example of a compressed file in Python.

total-1.0.0.tar.gz

पाइथन प्रोग्रामिंग में एक पैकेज इंस्टॉलर को ज़रूरत पड़ने पर इस सोर्स डिस्ट्रीब्यूशन से प्रोजेक्ट बना कर लाइव इंस्टॉल किया जा सकता है।

Wheel Distribution Concept in Python.

पाइथन प्रोग्रामिंग में व्हील एक बिल्ट पाइथन डिस्ट्रीब्यूशन फाइल फ़ॉर्मेट है।

पाइथन पैकेज सोर्स में इसका सामान्य रूप से एक एक्सटेंशन होता है.

.whl

Example of Wheel Distribution.

total-1.0.0-py3-none-any.whl

पाइथन पैकेज में व्हील सामान्य रूप से डेवलपर यूज़र को एक सोर्स कोड से पैकेज फाइल क्रिएट करने की ज़रूरत के बिना इंस्टॉलेशन की परमिशन प्रोवाइड करते हैं।

Installing one of your packages locally in Python.

पाइथन प्रोग्रामिंग में एक प्रोजेक्ट क्रिएट करने के बाद, पाइथन यूजर व्हील इंस्टॉल कर सकते हैं.

pip install dist/total-1.0.0-py3-none-any.whl

इसके बाद पाइथन यूजर Python में इसे ऐसे इंपोर्ट कर सकता है.

from mytotal.total import plus

print(plus(4, 8))

The output is.

12

An editable installation in Python.

पाइथन में एक प्रोजेक्ट सोर्स कोड डेवलपमेंट के दौरान, एक एडिटेबल प्रोग्राम सोर्स इंस्टॉलेशन बहुत यूज़फुल होता है।

From the Python project directory.

pip install -e.

यह कांसेप्ट पाइथन यूजर को किसी भी प्रकार के स्माल मॉडिफेक्शन के बाद सोर्स कोड पैकेज को रीबिल्ड और रीइंस्टॉल किए बिना सोर्स कोड को मॉडिफाई करने के फीचर्स प्रोवाइड करता है।

पाइथन में एक एक्टिव सोर्स कोड डेवलपमेंट प्रोसेस के दौरान यह एक स्पेशल यूज़ केस होता है।

Versioning concept in Python packages.

हर नए पाइथन प्रोग्राम सोर्स कोड पैकेज डिस्ट्रिब्यूटेबल पैकेज का अपना एक नया वर्जन इनफार्मेशन होना चाहिए।

For example.

1.0.0

1.2.0

1.3.0

2.0.0

2.3.0

3.1.0

पाइथन में यह एक बेसिक मेथड है, पाइथन में यूज़ सिमेंटिक वर्शनिंग कांसेप्ट में.

MAJOR.MINOR.PATCH.

For example.

3.1.0

│ │ │

│ │ └── पैच

│ └──── माइनर

└───── मेजर

Versioning concept generally.

  • MAJOR – मेजर अपडेट में इनकम्पैटिबल या बड़े मॉडिफिकेशन इसमें मौजूद होते है
  • MINOR – माइनर में नए बैकवर्ड-कम्पैटिबल फ़ीचर इन्क्लुड होते है
  • PATCH – इसमें बैकवर्ड-कम्पैटिबल बग फ़िक्स के नए पैच होते है

Python project source code README file.

एक अच्छे पाइथन सोर्स कोड प्रोजेक्ट में एक README.md फाइल जरूर होनी चाहिए।

सामान्य रूप से पाइथन में एक README.md फल में ये इनफार्मेशन होनी चाहिए।

  • आपका पाइथन प्रोग्राम सोर्स कोड प्रोजेक्ट क्या करता है
  • सोर्स कोड सॉफ्टवेयर फाइल इंस्टॉलेशन के निर्देश
  • बेसिक सॉफ्टवेयर यूज़
  • कुछ बेसिक उदाहरण
  • प्रोजेक्ट सॉफ्टवेयर सोर्स कोड की ज़रूरतें
  • सिस्टम हार्डवेयर इंस्टलेशन की कॉन्फ़िगरेशन
  • ज़रूरत पड़ने पर सोर्स कोड प्रोजेक्ट इम्पोर्टेन्ट डॉक्यूमेंटेशन के लिंक

Example in Python.

# Mytotal

यह आपको एक इजी पाइथन टोटल पैकेज प्रोवाइड करता है।

## पाइथन में इसका इंस्टॉलेशन

pip install mytotal

## पाइथन में इस्तेमाल

from mytotal.total import plus

print(plus(3, 4))

पाइथन में यूज़ एक अच्छा डॉक्यूमेंटेशन लिंक अन्य पाइथन यूजर के लिए पैकेज यूज़  करना इजी करता है।

A license file in Python.

पाइथन सोर्स कोड में एक LICENSE फ़ाइल इंडीकेट करती है कि अन्य पाइथन यूजर सॉफ़्टवेयर का यूज़, मॉडिफिकेशन और डिस्ट्रीब्यूट कैसे कर सकते हैं।

इस पाइथन प्रोजेक्ट के बेसिक ओपन-सोर्स लाइसेंस में ये इन्क्लुड हैं.

  • MIT
  • Apache 2.0
  • GPL

आपके पाइथन प्रोजेक्ट सोर्स का लाइसेंस का चुनाव आपके प्रोजेक्ट के टार्गेट्स और लीगल आवश्यकताओं पर टोटली डिपेंड करता है।

Testing a Python project before distributing it.

पाइथन प्रोग्रामिंग लैंग्वेज में किसी प्रोग्राम सॉफ्टवेयर को पैकेज या डिस्ट्रीब्यूट करने से पहले, उसके टेस्ट को मैन्युअल रन करे।

Testing a Python project example with pytest.

pytest

पाइथन प्रोग्रामिंग लैंग्वेज में एक बेसिक प्रोजेक्ट कुछ इस तरह का हो सकता है.

testproject/

├── pyproject.toml

├── README.md

├── LICENSE

├── src/

│ └── testpackage/

│ └── total.py

└── tests/

└── test_total.py

The workflow in Python looks something like this.

अपना एक पाइथन प्रोग्राम सोर्स कोड लिखें

अपना एक कस्टम टेस्ट लिखें

एक नया पाइथन सोर्स कोड टेस्ट को चलाएं

एक पाइथन प्रोग्राम पैकेज बनाएं

नया पाइथन टेस्ट का इंस्टॉलेशन करे

अपने फाइनल पाइथन प्रोजेक्ट टेस्ट को डिस्ट्रीब्यूट करें

Publishing Python to PyPI.

Python Package Index (PyPI), जिसे सामान्य रूप से पाइथन में PyPI कहा जाता है, यह पाइथन लाइब्रेरी में एक पब्लिक रिपॉजिटरी सिस्टम है, या नेसेसरी पाइथन पैकेज लाइब्रेरी है।

पाइथन में कई जरूरी पैकेज को इस तरह से इंस्टॉल कर सकते हैं.

pip install package-name

जैसाकि पाइथन में PyPI के माध्यम से यूज़ अवेलेबल हैं।

For example.

pip install requests

Uploading packages in Python.

पाइथन प्रोग्रामिंग में किसी पैकेज को अपलोड करने के लिए सामान्य रूप से यूज़ होने वाला टूल Twine है।

In Python, you can install it this way.

python -m pip install twine

After building the Python project.

python -m build

यहाँ पाइथन यूजर के पास dist/ में फ़ाइलें मौजूद होंगी।

Python users can upload them like this.

python -m twine upload dist/*

पाइथन रियल वर्ल्ड में सॉफ्टवेयर पैकेज पब्लिशिंग के लिए, पाइथन यूजर को पहले इस पैकेज को टेस्ट करना चाहिए और सही PyPI/TestPyPI पाइथन वर्कफ़्लो और ऑथेंटिकेशन मेथड का यूज़ करना चाहिए।

Python Package Security Concepts.

पाइथन प्रोग्रामिंग लैंग्वेज में पाइथन पैकेज को डिस्ट्रीब्यूट करते समय, इन प्रोजेक्ट की सिक्योरिटी बहुत ज़रूरी होती है।

Python security includes all security features.

  • हमेशा पैकेज सॉफ्टवेयर की डिपेंडेंसी को अपडेट और लेटेस्ट रखें।
  • अपने मौजूदा पाइथन प्रोजेक्ट में नॉन-एसेंशियल डिपेंडेंसी को अवॉइड करे।
  • अपने प्रोजेक्ट में कोई ऐड थर्ड-पार्टी पैकेज का डिटेल रिव्यू करें।
  • अपने मौजूदा सॉफ्टवेयर प्रोजेक्ट पब्लिशिंग क्रेडेंशियल को सिक्योर रखें।
  • सोर्स कोड पैकेज में रिलाएबल पैकेज सोर्स का यूज़ करें।
  • पब्लिश करने से पहले अपने पैकेज को डिटेल टेस्ट करें।
  • पब्लिश पैकेज में अपने सिक्योर पासवर्ड, एपीआई की या अन्य सीक्रेट को इन्क्लुड न करें।

For example.

अपने पाइथन सॉफ्टवेयर सोर्स कोड में पब्लिकली डिस्ट्रीब्यूटेड सोर्स कोड में कभी भी यह न डालें।

API_KEY = “my-secret-key”

Python packaging vs. creating an executable file.

पाइथन में ये दोनों कॉन्सेप्ट आपस में जुड़े हुए हैं, लेकिन दोनों आपस में अलग अलग हैं।

Essential Python packages.

पाइथन में ये सामान्य रूप से इंस्टॉल और इंपोर्ट करने में होता है.

pip install mypackage

Example.

from mypackage import something

Executable in Python.

पाइथन में सामान्य रूप से एक्सेक्यूटबल फाइल डायरेक्ट रन करने के लिए होता है.

testprogram.exe

पाइथन में PyInstaller जैसे यूज़फुल टूल किसी एप्लिकेशन फाइल को एक एग्जीक्यूटेबल में पैकेज कर सकते हैं।

Python Package

एप्लीकेशन सॉफ्टवेयर को pip से इंस्टॉल करें

पाइथन पैकेज यूज़/इम्पोर्ट करें

As in Python.

Python Application

पाइथन पैकेजिंग टूल

एक एग्जीक्यूटेबल फाइल बनाना

अपने फाइनल एप्लिकेशन को रन करे

Python Package Best Practices.

पाइथन में किसी प्रोजेक्ट्स की पैकेजिंग करते समय आप इन बातो का ध्यान रखे.

  • Use a clear project structure – हमेशा अपने पाइथन प्रोग्राम सोर्स कोड, टेस्ट और डॉक्यूमेंटेशन को ऑर्गनाइज़ रखें।
  • Use pyproject.toml – यह मॉडर्न पाइथन पैकेजिंग के लिए स्टैंडर्ड कॉन्फ़िगरेशन पॉइंट होता है।
  • Disclose dependencies – पक्का करें कि पाइथन यूज़र्स को पता हो कि कौन से एक्सटर्नल पैकेज आपके प्रोजेक्ट के लिए ज़रूरी हैं।
  • Use version numbers – समय समय पर अपने सॉफ्टवेयर प्रोजेक्ट मॉडिफिकेशन  जारी करते समय वर्जन को ठीक से अपडेट करें।
  • Include documentation – एक अच्छा README.md इंस्टॉलेशन और यूज़ को आसान बनाता है।
  • Include tests – हर पाइथन सोर्स कोड रिलीज़ से पहले अपने प्रोजेक्ट को टेस्ट करें।
  • Use virtual environments – यह प्रोजेक्ट डिपेंडेंसी को दूसरे पाइथन प्रोजेक्ट्स में इंटरफेयर को स्टॉप करता है।

For example.

python -m venv .venv

A complete packaging workflow in Python.

पाइथन में इस कम्पलीट प्रोसेस स्टेप्स को कुछ इस तरह से इंडीकेट किया जा सकता है.

पायथन प्रोजेक्ट

प्रोग्राम सोर्स कोड ऑर्गनाइज़ करें

pyproject.toml को ऐड करे

अपनी प्रोग्राम की डिपेंडेंसी बताएं

एक डिटेल प्रोजेक्ट डॉक्यूमेंटेशन लिखें

एप टेस्ट को ऐड करे

एक टेस्ट को चलाएं

एक पाइथन पैकेज बनाएं

┌────────┴────────┐

↓ ↓

सोर्स डिस्ट्रीब्यूशन व्हील कॉन्फ़िगरेशन करे

↓ ↓

└────────┬────────┘

अपने टेस्ट इंस्टॉलेशन को प्रॉपर चेक करे

अपने प्रोजेक्ट को डिस्ट्रीब्यूट/पब्लिश करे

Conclusion of Packaging Python projects for distribution.

पाइथन सोर्स कोड पैकेज डिस्ट्रीब्यूशन में आपको पाइथन प्रोजेक्ट्स की पैकेजिंग का मतलब है, एक पाइथन बेस्ड सॉफ्टवेयर प्रोजेक्ट को कम्पलीट तैयार करना जिससे कि अन्य यूजर लोग इसे आसानी से इंस्टॉल कर सकें।

The important features of a Python project source are.

  • Source code – यह पाइथन सोर्स कोड में एक रियल पाइथन इम्प्लीमेंटेशन मेथड सोर्स कोड है.
  • pyproject.toml – यह आपके पाइथन प्रोजेक्ट और उसकी बिल्ड कॉन्फ़िगरेशन डिटेल होती है.
  • Dependencies – इसमें आपके मौजूदा पाइथन प्रोजेक्ट के लिए ज़रूरी एक्सटर्नल लाइब्रेरी पैकेज डिटेल होती है.
  • README – इसमें आपके मौजूदा पाइथन एप्लीकेशन सॉफ्टवेयर यूज़ और उसके इंस्टॉलेशन के डिटेल डॉक्यूमेंटेशन या इंस्ट्रक्शन होते है.
  • Tests – यह आपके मौजूदा पाइथन प्रोजेक्ट के वेरिफ़िकेशन के रूप में काम करता है
  • Versions – यह आपके वर्त्तमान टेस्ट में हर रिलीज़ के पुराने से लेकर नए एप्लीकेशन सॉफ्टवेयर के वर्जन को इंडीकेट करता है
  • Wheel/Source Distribution – यह आपके मौजूदा पाइथन प्रोजेक्ट को डिस्ट्रीब्यूट करने के लिए यूज़ किए जाने वाले फ़ॉर्मैट होते है.

A common modern package application workflow in Python.

सबसे पहले अपने पाइथन प्रोजेक्ट को डेवलप करें

अपने पाइथन पैकेज सोर्स को टेस्ट करें

जरूरी पाइथन फाइल सेटिंग को कॉन्फ़िगर करें

जरूरी पाइथन एप्लीकेशन को बिल्ड करें

मौजूदा पाइथन सोर्स कोड एप्लीकेशन को इंस्टॉल/टेस्ट करें

अपने डिज़ाइन डेवलप फाइनल प्रोजेक्ट को डिस्ट्रीब्यूट करें

Python application packaging in a nutshell.

पाइथन प्रोग्रामिंग में पैकेजिंग एक पाइथन प्रोजेक्ट को सोर्स कोड फ़ाइलों के कलेक्शन से एक स्ट्रक्चर्ड, कंप्यूटर में इंस्टालेशन करने लायक और मल्टीप्ल यूजर के मध्य डिस्ट्रीब्यूट करने लायक सॉफ़्टवेयर पैकेज में मॉडिफाई या बिल्ड करने का प्रोसेस है।

Leave a Reply