# কবিতা দিয়ে পাইপিকে নির্মাণ ও মুক্তি দেওয়া
## একটি নোট:
পাইথন প্যাকেজিং একটি আলোচিত বিষয় এবং প্রত্যেকেরই এটি সম্পর্কে মতামত রয়েছে।
আমরা [Pull request #84](https://github.com/ParthJadhav/Tkinter-Designer/pull/84) এ আলোচনার ভিত্তিতে কবিতায় স্থানান্তরিত হয়েছি।
আমরা কি একটি বড় ভুল করেছি? যদি তাই হয়, একটি সমস্যা খুলুন এবং আমাদের জানান!
## টেস্টপিপিতে প্রকাশ করা হচ্ছে
1. [কবিতা ইনস্টল করুন](https://python-poetry.org/docs/#installation) - ! কবিতা ইনস্টল পিপ দিয়ে না
2. `poetry install` - নির্ভরতা ইনস্টল করে
3. `poetry config repositories.testpypi https://test.pypi.org/legacy/`
4. `poetry version $VERSION` - সংস্করণ নম্বরটিকে <$VERSION>-এর মানের সাথে বাম্প করুন
5. `poetry publish --build -r testpypi -u __token__ -p $TESTPYPI_TOKEN`
## প্যাকেজিং [1.0.100 অনুযায়ী টিকিন্টার-ডিজাইনার-এ অবচয়িত]
> এটি আগ্রহী কারো জন্য একটি রেফারেন্স হিসাবে সংরক্ষিত ছিল
একটি সংক্ষিপ্ত ব্যাখ্যা: পাইথন-এ প্যাকেজগুলি একটি \_\_init\_\_.py ফাইল প্রদান করে পরোক্ষভাবে ঘোষণা করা হয়।
সেই ফাইলের সাথে যেকোন ডিরেক্টরি বর্তমান একটি প্যাকেজ, একটি প্যাকেজের মধ্যে থাকা প্রতিটি ফাইল একটি মডিউল।
সুতরাং, আপনি setup.cfg ফাইলে আপনার প্যাকেজে যে dir(গুলি) অন্তর্ভুক্ত করতে চান সেখানে বিল্ড এনভায়রনমেন্ট নির্দেশ করুন।
pyproject.toml হল বিল্ড পরিবেশের একটি ঘোষণামূলক বর্ণনা।
আমাদের বিল্ডিং এনভায়রনমেন্টে আমাদের জন্য বিল্ডিং পরিচালনা করার জন্য চাকা এবং সেটআপ টুল প্যাকেজ প্রয়োজন।
[এখানে একটি টিউটোরিয়াল আছে](https://packaging.python.org/tutorials/packaging-projects/) আরো আগ্রহ আছে এমন কারো জন্য প্যাকেজ তৈরি/রিলিজ করার বিষয়ে।
### ম্যানুয়াল রিলিজ
স্টেজিং পরিবেশ:
- নিশ্চিত করুন যে নিয়মগুলি অনুসরণ করা হয়েছে এবং পরীক্ষায় উত্তীর্ণ হয়েছে: `flake8 && pytest`৷
- [test.pypi.org](https://test.pypi.org/) এ একটি অ্যাকাউন্টের জন্য সাইন আপ করুন এবং একটি এপিআই কী পান৷
- "-<YOUR_USERNAME>" এ শেষ করতে setup.cfg-এ প্যাকেজের নাম পরিবর্তন করুন
- নিজের জন্য একটি এপিআই কী/টোকেন তৈরি করুন
- আপনার হোম ডিরেক্টরিতে একটি .pypirc ফাইল তৈরি করুন এরকম কিছু দিয়ে:
```
[testpypi]
username = __token__
password = pypi-<YOUR_TOKEN>
```
- `pip install --upgrade build twine`
- মূল প্রকল্প ডির থেকে `পাইথন -এম বিল্ড` চালান, এটি টারবল এবং জিপ ফাইলের সাথে একটি './dist' ডির তৈরি করবে।
- পরীক্ষা pypi রেজিস্ট্রিতে dist প্রকাশ করতে twine চালান: `python -m twine upload --repository testpypi dist/*`
- পরীক্ষা করতে:
- একটি নতুন প্রকল্প ডিরেক্টরি তৈরি করুন, ফাঁকা
- একটি venv তৈরি করুন বা আপনি যা কিছুতে আছেন: `python -m venv .venv`
- আপনার virtualenv সক্রিয় করুন
- `pip install -i https://test.pypi.org/simple/ tkdesigner-cli-jvendegna==1.0.11` উদাহরণস্বরূপ। যে এক কাজ করে, এটা পরীক্ষা নির্দ্বিধায়।
- `tkdesigner <URL_TO_FIGMA_FILE> $YOUR_FIGMA_TOKEN -f`
- `python build/gui.py`
* দ্রষ্টব্য: আপনি যেখানেই `python` দেখছেন সেখানে পাইথন ৩, পাইথন২ নয়