Qiskit-ட்டில் பங்களிப்பு¶
Qiskit என்பது குவாண்டம் கம்ப்யூட்டிங்-இல் எவ்வித முன் அனுபவம் இல்லா மக்களுக்கும் கொண்டு சேர்க்க உருவாக்கப்பட்ட ஒரு ஓபென்-சோர்ஸ் ப்ராஜெக்ட் ஆகும். இப்பகுதி நீங்கள் எவ்வாறு qiskit குழு -இன் மூலம் இவ்விலக்கில் சேர முடியும் என்பதை விவரிக்கும்.
பதிவுகள் எங்கே உள்ளன¶
Qiskit-ற்கான code Qiskit அமைப்பின் Qiskit GitHub organization, அங்கே நீங்கள் Qiskit உருவாவதர்க்கான தனித்தனி செயல்திட்டங்களை கண்டறியலாம், அதனுடன் சேர்த்து
தொடங்குதல்¶
கற்றுக்கொள்ளுங்கள் Qiskit community உறுப்பினர்கள் எவ்வாறு
பிழைகளைப் பற்றி புகாரளிப்பது மற்றும் விரிவாக்கத்திற்கான கோரிக்கைகளை விதிப்பது¶
உங்களுக்கு எப்பொழுதாவது சிக்கல்கள் எழுந்தால், தயவுசெய்து அதற்கேற்ற element's issue tracker-ல் ஒரு issue-வை உருவாக்குங்கள்:
உறுப்பு |
வெளியீட்டு கண்காணிப்பு |
---|---|
qiskit-terra |
|
qiskit-aer |
|
qiskit-ignis |
|
ஆவணம் அல்லது Qiskit மெட்டா தொகுப்பு |
தற்போது உங்களுக்கு ஒரு புதிய அம்சதிர்க்கான யோசனை தோன்றினால், தயவு செய்து element's issue tracker-வில் புதிதாக ஒரு Enhancement issue-வை பதிவு செய்யவும். அவ்வாறு ஒரு issue-வை திறக்கும் பட்சத்தில், நீங்கள் உங்கள் குழுவுடன் தங்களின் யோசனையைப் பற்றி கலந்துரையாடலாம், எவ்வாறு அது அந்த செயல்திட்டத்தில் பொருந்தும், அதை எவ்வாறு செயல்படுத்துவது மற்றும் பல.
Code பங்களிப்பு¶
நடைமுறை வழிகாட்டி¶
திட்டத்தில் நிலையான குறியீட்டு பாணியைச் செயல்படுத்த, குறியீட்டு பங்களிப்புகள் திட்டத்தின் நடை வழிகாட்டிக்கு இணங்குவதையும் மதிக்கின்றன என்பதையும் சரிபார்க்க Pylint மற்றும் pycodestyle ஐப் பயன்படுத்துகிறோம். உங்கள் மாற்றங்கள் நடை வழிகாட்டியுடன் ஒத்துப்போகின்றனவா என்பதைச் சரிபார்க்க, இயக்கவும்: tox -elint
பங்களிப்பாளர் உரிம ஒப்பந்தம்¶
நீங்கள் உங்கள் code-ஐ சமர்ப்பிக்கும் முன், அணைத்து பங்களிப்பாளர்களும் contributor license agreement (CLA)-வில் கையெழுத்திட வேண்டும். அவ்வாறு கையெழுத்திடுவதால், நீங்கள் உங்களின் பங்களிப்பின் எழுத்தாளராக சான்றளிக்கப் படுகிறீர்கள் மற்றும் அதை நீங்கள் Apache-2.0 உரிமத்தின் விதிமுறையின் கிழ் இலவசமாக பங்களிக்கிரீர்கள்.
நீங்கள் Qiskit செயல்திட்டத்திற்கு ஒரு புதிய புல் ரிக்வெஸ்ட் மூலம் பங்களிக்கிரீர்கள் என்றால், ஒரு bot உருவாகி, உங்குளின் CLA கையெழுத்திடப் பட்டதா என்பதை சரிபார்க்கும். தேவைப்பட்டால், அந்த bot உங்கள் புல் ரிக்வெஸ்ட்-ல் கருத்து தெரிவிப்பதோடு நீங்கள் ஒப்பந்தத்தில் கையெழுத்திட தொடர்புகளையும் பதிவு செய்யும். individual CLA ஆவணம் விமர்சனத்துக்காக PDF ஆக இருக்கும்.
Note
உங்களின் பங்களிப்பு உங்கள் வேலையின் ஒரு பகுதியாகவோ அல்லது உங்கள் முதலாளிக்கு சொந்தமானதில் ஒரு பகுதியாகவோ இருந்தால், நீங்கள் கட்டாயமாக corporate CLA விலும் சேர்த்து கையெழுத்திட வேண்டும் மற்றும் அதனை எங்களுக்கு இம்மின்னஞ்சல் <qiskit@us.ibm.com> மூலம் தெரிவிக்கவும்.
புல் ரிக்வெஸ்ட் -கள்¶
நாம் நம் பங்களிப்பை ஏற்றுக்கொள்ள GitHub pull requests பயன்படுத்துவோம்.
தேவையற்ற போது புதிதாக ஒரு புல் ரிக்வெஸ்ட் -ஐ உருவாக்குவதற்கு முன்பு, ஒரு புதிய இஸ்சு -வை உருவாக்குவது நீங்கள் சரிபார்க்கும் பிழை அல்லது வேலை பார்க்கும் அம்சத்தைப் பற்றி சமூகத்தில் கலந்துரையாடலைத் தேவைப்படும் ஒரு முக்கியப் படியாகும். நீங்கள் உருவாக்கும் இஸ்சு, நீங்கள் உங்களின் யோசனையைப் பற்றிப் பேசுவதற்கான இடத்தை கொடுக்கிறது மற்றும் அதை உங்கள் செயல்திட்டத்தின் கோடு -உடன் எவ்வாறு ஒன்றிணைத்து செயல்படுத்துவது என்பதையும் கலந்துரையாட வழிவகுக்கிறது. அது மட்டுமல்லாது, நீங்கள் என்ன வேலை செய்கிறீர்கள் என்பதையும் சமூகத்தினரால் அறிய முடியும் மற்றும் உங்களுக்கு ஏதாவது உதவி தேவைப்பட்டால், அந்த இஸ்சு -வை குறிப்பிட்டு உங்கள் குழுவிடமோ அல்லது சமூகத்திடமோ கேட்டுத் தெரிந்து கொள்ளலாம்.
நீங்கள் சில code எழுதி இருந்தாலோ அதை முடிக்க உதவி வேண்டுமானாலோ அல்லது அதை முழுமையாக முடிப்பதற்கு முன்பு முன்னூட்டம் பெற வேண்டுமானாலோ அல்லது முழுவதுமாக செயல்படுத்தும் முன்பு பிறருடன் பகிர்ந்து கலந்துரையாடல் நடத்த வேண்டுமானாலோ, நீங்கள் புதிதாக ஒரு Work in Progress புல் ரிக்வெஸ்ட்-ஐ உருவாக்கலாம். நீங்கள் புதிதாக ஒரு pull request உருவாக்கும் போது, தலைப்பில் [WIP] tag (for Work In Progress) போட வேண்டும். அவ்வாறு செய்வதனால், விமர்சகர்களுக்கு தங்களின் PR-ல் உள்ள code இறுதிக் கட்டத்தை எட்டவில்லை என்பதையும் பின்னால் மாற்றப்படும் எனபதையும் அறிய முடியும். அது மட்டுமல்லாது அந்த code முழுமையடையும் வரை செயல்திட்டத்தோடு ஒன்றிணைக்கப்படாது. Code முழுமையாக முடிக்கப்பட்ட பின்னர், நீங்களோ அல்லது விமர்சகரோ அந்த [WIP] tag-ஐ அகற்றி செயல்திட்டத்தோடு ஒன்றிணைத்துக் கொள்ளலாம்.
Code விமர்சனம்¶
Code விமர்சனம் அனைவர் முன்பும் அனைவரால் பார்க்கும் வகையிலும் இருக்கும். பராமரிப்பாளர்களுக்கு மட்டுமே கமிட்-களை ஒன்றிணைக்க அனுமதி உள்ள நிலையில், புல் ரிக்வெஸ்ட்-களுக்கு சமூகம் அளிக்கும் பின்னூட்டம் மிகவும் மதிப்பு மிக்கது. Code-ன் அடித்தளத்தை கற்றுக்கொள்வது மிகச் சிறந்த பொறிமுறை ஆகும். நீங்கள் பதிவு செய்த அணைத்து புல் ரிக்வெஸ்ட்களையும் இங்கு காணலாம்:
உறுப்பு |
புல் ரிக்வெஸ்ட் -கள் |
---|---|
qiskit-terra |
|
qiskit-aer |
|
qiskit-ignis |
|
ஆவணம் அல்லது Qiskit மெட்டா தொகுப்பு |
கமிட் தகவல்கள்¶
கமிட் தகவலில் உள்ள மாற்றங்களைக் குறிக்கும் உள்ளடக்கங்கள் அந்த மாற்றத்தைப் போலவே முக்கியமானதாகக் கருதப்படுகிறது. கமிட் தகவல் கோடு -ன் விமர்சனம் மட்டுமல்லாது கிட் பதிவில் உண்டான மாற்றத்தின் சரித்திரத்தின் சூழலையும் அளிக்கும். ஒரு விரிவான கமிட் தகவல் கோடு -ஐ எளிதாக விமர்சிக்க உதவும் மற்றும் பிற்காலத்தில் ஒருவர் அதனைப் பார்க்கும் போது, எந்தச் சூழலில் அம்மாற்றங்கள் செய்யப்பட்டன என்பதனையும் விவரிக்கும். ஒரு கமிட் தகவலை எழுதும் போது, இந்த முக்கியமான விவரங்களை மனதில் கொள்ள வேண்டும்:
- தங்களின் உண்மையான பிரச்சனை என்ன என்பதை விமர்சகர் சரியாக புரிந்து கொண்டார் எனக் கருதக்கூடாது.
ஒரு சிக்கலைப் படிக்கும்போது, முன்னும் பின்னுமாக பல கருத்துக்களுக்குப் பிறகு, பிரச்சனையின் மூல காரணம் என்ன என்பது பெரும்பாலும் தெளிவாகிறது. கமிட் செய்தியில் அசல் பிரச்சனை என்ன என்பது பற்றிய தெளிவான அறிக்கை இருக்க வேண்டும். இந்த பிழையானது, எப்படி பிரச்சனை கண்டறியப்பட்டது என்பது பற்றிய வரலாற்று பின்னணியில் சுவாரஸ்யமாக உள்ளது. பிழைச் சீட்டைப் படிக்கத் தேவையில்லாமல், உறுதிச் செய்தியிலிருந்து சரியானதா என முன்மொழியப்பட்ட இணைப்பை மதிப்பாய்வு செய்ய முடியும்.
- உங்களின் கோடு சுய-வெளிப்படையானது/சுய-ஆவணபடுத்தல் வகையில் உள்ளது எனக் கருதக்கூடாது.
ஒருவருக்கு சுய-வெளிப்படையானதாகத் தெரியும் ஒரு பொருள் மற்றவருக்கு புரியாமல் போகலாம். அதனால், எப்போதும் உண்மையான பிரச்சனை என்ன என்பதனையும் அது எவ்வாறு சரி செய்யப்பட்டது என்பதனையும் குறிப்பிட வேண்டும், அது ஒரு சாதாரண எழுத்துப் பிழை அல்லது எழுத்திர்கிடையில் உள்ள இடைவெளி பிழையாக அல்லாதவரை.
- ஏன் அந்த மாற்றங்கள் செய்யப்பட்டன என்பதை விவரிக்கவும்.
ஆவணப்படுத்தலின் போது செய்யும் பொதுவான தவறு, அந்த கோடு எவ்வாறு எழுதப்பட்டது என்பதை ஏன் அந்த டெவலப்பர் அவ்வழியைத் தேர்வு செய்தார் என்பதைக் குறிப்பிடாமல் எழுதுவது. நிச்சயமாக நீங்கள் உங்கள் ஒட்டுமொத்த கோட்டின் அமைப்பினை விவரிக்க வேண்டும், அதிலும் பெரிய மாற்றங்கள் ஏதாவது செய்திருந்தால் கட்டாயம் விவரிக்கவும். அதைவிட முக்கியம் அந்த மாற்றங்களைச் செய்வதற்கான நோக்கம் என்ன என்பதனையும் விவரிக்க வேண்டும்.
- மேம்படுத்தப்பட்ட குறியீடு அமைப்பு உள்ளதா என்பதைக் கமிட் தகவலைப் படித்துத் தெரிந்து கொள்ளுங்கள்.
எப்போதும், ஒரு பெரிய கமிட் தகவலை விவரிக்கையில், அது இரண்டு அல்லது மூன்று பாகங்களாகப் பிரிக்கப் படவேண்டும் என்பது தெளிவாகத் தெரிந்துவிடும். அதனால், பின்னோக்கிச் சென்று அதனை தனித்தனி புல் ரெக்யூஸ்ட்-களாக பிரித்துப் போட அச்சம் கொள்ளவேண்டாம்.
- விமர்சனத்துக்காக போதிய தகவல்கள் உள்ளதா என்பதை உறுதி செய்து கொள்ளுங்கள்.
புதிய புல் ரிக்வெஸ்ட் சமர்ப்பிப்புகளுக்கு GitHub மின்னஞ்சல் விழிப்பூட்டல்களை அனுப்பும்போது, குறைந்தபட்ச தகவல்களும் சேர்க்கப்பட்டுள்ளன - வழக்கமாக உறுதி செய்தி மற்றும் கோப்புகளின் பட்டியல் மாற்றங்கள். திட்டுகளின் அதிக அளவு இருப்பதால், ஒரு கமிட் தகவல்கள் விமர்சகர்கள் மீளாய்வு செய்ய வேண்டிய இணைப்பைக் கண்டுபிடிக்க போதுமான தகவல்களைக் கொண்டிருக்க வேண்டும்.
- முதல் கமிட் வரி மிக முக்கியமானது.
கிட் கமிட்ஸ் இல், கமிட் செய்தியின் முதல் வரி சிறப்பு முக்கியத்துவம் வாய்ந்தது. இது இயல்புநிலை புல் ரெக்யூஸ்ட் தலைப்பு, மின்னஞ்சல் அறிவிப்பு பொருள்ளின் வரி, கிட் அன்னோட்டட் செய்திகள், கிட்கெ பார்வையாளர் அன்னோடேஷன்ஸ், கமிட் செய்திகளின் இணைப்பு, மேலும் பல இடங்கள் ஒரு பிரீமியத்தில் இருப்பது. அதே போல் சுருக்கமாக தன்னை மாற்றும் தன்மை, code-ன் எந்த பகுதி பாதிக்கப்படுகிறது என்பதையும் விரிவாக கவனித்துக்கொள்ள வேண்டும்.
கூடுதலாக, சேஞ்ச்லாக்-கில் கமிட் தகவல் செய்தியின் முதல் வரி சேர்க்கப்பட்டுள்ளதாக PR டெக் குறிக்கப்பட்டால், உறுதிப்படுத்தப்பட்ட செய்தியி சேஞ்ச்லாக்யில் சேர்க்கப்படும். நீங்கள் தெளிவான மற்றும் சுருக்கமான வரிகளை எழுதுவது மிகவும் முக்கியமானதாகும்.
- தற்போதைய code ஏதேனும் வரம்புகளை விவரிக்கவும்.
மாற்றப்படும் code-களில் இன்னும் மேம்பாடுகளுக்கான எதிர்கால நோக்கம் அல்லது அறியப்பட்ட லிமிடேஷன்ஸ் இருந்தால், கமிட் மெசேஜ்யில் குறிப்பிடவும். இது விரிவான விளக்கத்தை பரிசீலிக்கப்பட்டுள்ளது என்பதையும், நீண்ட கால விருப்பங்களுக்கு எதிராக குறுகிய கால இலக்குகளின் அடிப்படையில் என்ன பரிமாற்றங்கள் செய்யப்பட்டுள்ளன என்பதையும் இது மதிப்பாய்வாளருக்கு நிரூபிக்கிறது.
- சிக்கல்களுக்கான குறிப்புகளைச் சேர்க்கவும்.
Commit fixes issue தொடர்பானதாக இருந்தால், கமிட் தகவலில் உள்ள தை குறிப்பிடுவதை உறுதி செய்யவும். தொடரியல் பயன்படுத்து:
Fixes #1234
அது சிக்கலை சரிசெய்தால் (PR ஒன்றிணைக்கும் போது கிட்ஹப் சிக்கலை மூடும்).
பின்பற்ற வேண்டிய முக்கிய விதி:
கமிட் செய்தியில், சரியாக இருக்கும் போது ஒட்டு முழுமையாக புரிந்து கொள்ள மற்றும் மதிப்பாய்வு செய்ய தேவையான அனைத்து தகவல்களும் இருக்க வேண்டும். குறைவாக இல்லை.
உங்கள் Code-டை ஆவணப்படுத்துதல்¶
நீங்கள் ஒரு உறுப்பு க்கு ஒரு மாற்றத்தை செய்தால், தொடர்புடைய docstrings மற்றும் ஆவணத்தின் பகுதிகளை தொடர்புடைய ரெப்போவில் docs/apidocs
இன் கீழ் புதுப்பிக்கிறீர்கள் என்பதை உறுதி செய்யவும். உறுப்பு-குறிப்பிட்ட ஆவணங்களை உள்நாட்டில் உருவாக்க, உள்நாட்டில் ஆவணமாக்கத்தை தொகுக்கமற்றும் உருவாக்க tox -edocs
ஐ இயக்கவும் மற்றும் வெளியீட்டை docs/_build/html
ஆக சேமிக்கவும். கூடுதலாக, அஸூர் பைப்லைன்களில் உள்ள டாக்ஸ் CI வேலை இதை இயக்கும் மற்றும் நீங்கள் உள்நாட்டில் பதிவிறக்கமற்றும் பார்க்க க்கூடிய வெளியீட்டின் ஜிப் கோப்பை ஹோஸ்ட் செய்யும்.
Qiskit/qiskit repo இல் பராமரிக்கப்படும் combined documentation இல் சிக்கல் இருந்தால், நீங்கள் ஒரு documentation issue திறக்கலாம், ஆவணப் பிழைகள் இருந்தால், ஆவணமாக்கப்பட வேண்டிய ஒரு புதிய அம்சத்தை கொண்டிருக்க வேண்டும், அல்லது ஏற்கனவே உள்ள ஆவணங்களில் உள்ளடக்கத்தை சேர்க்க முடியும் என்று நீங்கள் நினைத்தால்.
நல்ல முதல் பங்களிப்புகள்¶
நீங்கள் Qiskit-ல் பங்களிக்க விரும்பினால், ஆனால் எங்கு தொடங்குவது என்று உறுதியாக தெரியவில்லை என்றால், ஒரு திட்டத்திற்கான சிக்கல்கள் குறித்த good first issue
லேபிள் திட்டத்திற்கு புதிய நபர்களுக்கு பொருத்தமான உருப்படிகளை எடுத்துக்காட்டுகிறது. இவை அனைத்தும் ஒரு புதிய பங்களிப்பாளருக்கு வேலை செய்யக்கூடியதாக இருப்பதால் பங்களிப்பாளர்களால் மதிப்பாய்வு செய்யப்பட்டு குறிக்கப்பட்ட சிக்கல்கள். வேறு வார்த்தைகளில் கூறுவதானால், Qiskit உடனான நெருக்கமான பரிச்சயம் பிரச்சினைக்கு ஒரு தீர்வை உருவாக்குவதற்கான தேவை அல்ல.
நீக்குதல் கொள்கை¶
Qiskit பயனர்கள் ஒரு வசதி அல்லது ஒரு API இல்லையென்றால் நாளை மென்பொருட்களால் ஆதரிக்கப்படும். பின்புறம் (அல்லது ஒரு பின்னணி-பொருத்தமான முறையில் மாறுபடும்) ஒரு வசதி அல்லது API பயனருக்கு முக்கியமானதாகும். எதிர்பார்ப்பை நிர்ணயிக்கவும், பின்வரும் கொள்கை எப்படி API மற்றும் வசதி மறுபடியும் Qiskit மூலம் கையாளப்படுகிறது:
1. Features, APIs, or configuration options are marked deprecated in the code.
Appropriate DeprecationWarning
class warnings will be sent to the user. The
deprecated code will be frozen and receive only minimal maintenance (just so
that it continues to work as-is).
2. A migration path will be documented for current users of the feature. This will be outlined in the both the release notes adding the deprecation, and the release notes removing the feature at the completion of the deprecation cycle. If feasible, the warning message will also include the migration path. A migration path might be "stop using that feature", but in such cases it is necessary to first judge how widely used and/or important the feature is to users, in order to determine a reasonable obsolescence date.
2a. புதிய அம்சம் செயலிழக்கப்படுவதற்கு முன், இடம்பெயர்வு பாதை குறைந்தது ஒரு முன் வெளியீட்டில் இருந்திருக்க வேண்டும். எடுத்துக்காட்டாக, உங்களிடம் foo()
செயல்பாடு இருந்தால், அது bar()
உடன் மாற்றப்படும் என்றால், bar()
ஐ அறிமுகப்படுத்தும் அதே வெளியீட்டில் foo()
செயல்பாட்டை நீங்கள் நிறுத்த முடியாது. bar()
செயல்பாடு foo()
நீக்கப்படுவதற்கு முன் வெளியீட்டில் இருக்க வேண்டும். Qiskit-இன் டவுன்ஸ்ட்ரீம் நுகர்வோர் தங்கள் சொந்த நூலகங்களைப் பராமரிக்கும் வகையில், ஒரு நேரத்தில் > 1 வெளியீட்டுடன் செயல்படும் code-ஐ எழுதுவதற்கு இது அவசியம், இது முழு சுற்றுச்சூழல் அமைப்புக்கும் முக்கியமானது. எதிர்கால வெளியீட்டில் செயலிழப்பு வரப்போகிறது என்பதைக் குறிப்பிட விரும்பினால், இதை சமிக்ஞை செய்ய PendingDeprecationWarning
எச்சரிக்கையைப் பயன்படுத்தலாம். ஆனால், DeprecationWarning
வெளியிடப்பட்ட பிறகுதான் செயலிழப்பு காலம் தொடங்குகிறது.
3. An obsolescence date for the feature will be set. The feature must remain intact and working (although with the proper warning being emitted) in all releases pushed until after that obsolescence date. At the very minimum, the feature (or API, or configuration option) should be marked as deprecated (and continue to be supported) for at least three months of linear time from the release date of the first release to include the deprecation warning. For example, if a feature were deprecated in the 0.9.0 release of Terra, which was released on August 22, 2019, then that feature should still appear in all releases until at least November 22, 2019.
இந்த தாமதம் குறைந்தபட்சம் என்பதை நினைவில் கொள்க. குறிப்பிடத்தக்க அம்சங்களுக்கு, நீக்கப்பட்ட அம்சம் அந்த நேரத்தில் குறைந்தது இருமடங்கு தோன்றும் என்று பரிந்துரைக்கப்படுகிறது. மேலும், நிலையான கிளைக் கொள்கையின்படி, நீக்குதல் நீக்குதல்கள் சிறிய பதிப்பு வெளியீடுகளின் போது மட்டுமே நிகழும்; அவை பின்செலுத்தலுக்கு பொருத்தமானவை அல்ல.
3a. குறைந்தபட்ச செயலிழப்பு காலம் கடந்துவிட்டாலும், ஒன்றுக்கு மேற்பட்ட வெளியீடுகளில் நீக்கப்பட்டால் தவிர, நீக்கப்பட்ட அம்சத்தை அகற்ற முடியாது. எடுத்துக்காட்டாக, ஜனவரி 20, 2022 அன்று வெளியிடப்படும் 0.20.0 இல் ஒரு அம்சம் நிறுத்தப்பட்டு, அடுத்த சிறிய பதிப்பு வெளியீடு 0.21.0 ஜூன் 16, 2022 அன்று வெளியிடப்பட்டால், 0.22.0 வெளியீடு வரை நீக்கப்பட்ட அம்சத்தை அகற்ற முடியாது. 0.20.0 வெளியீட்டிற்குப் பிறகு 0.21.0 மூன்று மாதங்களுக்கும் மேலாக இருந்தாலும். இது முக்கியமானது, ஏனெனில், செயலிழக்கச் செய்யக்கூடிய API மாற்றம் வரப்போகிறது என்பதை பயனர்களுக்குத் தெரிவிப்பதும், அவர்களின் code-ஐ மாற்றியமைக்க அவர்களுக்கு வாய்ப்பளிப்பதும் ஆகும். இருப்பினும், பல பயனர்கள் பதிப்புகளைத் தவிர்க்கிறார்கள் (குறிப்பாக ஒவ்வொரு வெளியீட்டிலும் அதிக எண்ணிக்கையிலான மாற்றங்கள் இருந்தால்) மற்றும் ஒவ்வொரு வெளியீட்டிற்கும் மேம்படுத்த வேண்டாம், எனவே இது ஒரு சிறிய பதிப்பு வெளியீட்டிற்கு மட்டுமே இருந்தால் எச்சரிக்கையை இழக்க நேரிடும்.
நீக்குதல் எச்சரிக்கைகள்¶
நீக்குதல் எச்சரிக்கையை எழுப்புவதற்கான சரியான வழி, பைத்தான் நிலையான நூலகத்தில் warnings module இலிருந்து warn
செயல்பாட்டைப் பயன்படுத்துவது. எச்சரிக்கை வகை வகுப்பு DeprecationWarning
ஆக இருக்க வேண்டும். ஒரு உதாரணம்:
import warnings
def foo(input):
warnings.warn('The qiskit.foo() function is deprecated as of 0.9.0, and '
'will be removed no earlier than 3 months after that '
'release date. You should use the qiskit.bar() function '
'instead.', DeprecationWarning, stacklevel=2)
ஒரு விஷயம் இங்கே குறிப்பிடும் stack_level
''kwarg on the warn()'' அழைப்பு. அழைப்பு அடுக்கில் எந்த நிலை எச்சரிக்கையைத் தொடங்கும் வரியாகப் பயன்படுத்தப்படும் என்பதைக் குறிப்பிட இந்த வாதம் பயன்படுத்தப்படுகிறது. பொதுவாக, stack_level
ஐ 2 ஆக அமைக்க வேண்டும், ஏனெனில் இது எச்சரிக்கை எழுப்பப்பட்ட சூழலை அழைக்கும் வரியைக் காண்பிக்கும். மேலே உதாரணமாக, foo()
. நீங்கள் இதை அமைக்கவில்லை எனில், இது foo() செயல்பாட்டில் உள்ள வரியால் ஏற்பட்டது என்பதை எச்சரிக்கை காண்பிக்கும், இது நீக்கப்பட்ட அழைப்பின் தோற்றத்தை தீர்மானிக்க முயற்சிக்கும் பயனர்களுக்கு உதவாது. இருப்பினும், இந்த மதிப்பு சரிசெய்யப்படலாம், இது அழைப்பு அடுக்கைப் பொறுத்து, warn()
எங்கிருந்து அழைக்கப்படுகிறது என்பதைப் பொறுத்து. எடுத்துக்காட்டாக, ஒரு அழைப்பாளரை மட்டுமே கொண்ட ஒரு தனிப்பட்ட முறையால் எச்சரிக்கை எப்போதும் எழுப்பப்பட்டால், stack_level = 3
பொருத்தமானதாக இருக்கலாம்.
நிலையான கிளை கொள்கை¶
நிலையான கிளை வெளியீட்டிலிருந்து மாஸ்டரில் சரி செய்யப்பட்ட உயர்-தாக்க பிழைகள் மற்றும் பாதுகாப்பு சிக்கல்களுக்கான தீர்வுகளின் பாதுகாப்பான ஆதாரமாக கருதப்படுகிறது. ஒரு நிலையான கிளை PR ஐ மறுபரிசீலனை செய்யும் போது, எந்தவொரு பேட்சின் ஆபத்தையும் நிலையான கிளையின் பயனர்களுக்கு வழங்கும் மதிப்புடன் சமப்படுத்த வேண்டும். நிலையான கிளையில் சேர்க்க ஒரு குறிப்பிட்ட வகை மாற்றங்கள் மட்டுமே பொருத்தமானவை. ஒரு பெரிய சிக்கலுக்கான ஒரு பெரிய, ஆபத்தான இணைப்பு அர்த்தமுள்ளதாக இருக்கலாம், இது மிகவும் தெளிவற்ற பிழை-கையாளுதல் வழக்கிற்கான ஒரு சிறிய தீர்வாக இருக்கலாம். மாற்றத்தைக் கருத்தில் கொள்ளும்போது பல காரணிகளை எடைபோட வேண்டும்:
பின்னடைவின் ஆபத்து: மிகச்சிறிய மாற்றங்கள் கூட எதையாவது உடைக்கும் அபாயத்தைக் கொண்டுள்ளன, மேலும் நிலையான கிளையில் பின்னடைவைத் தவிர்க்க விரும்புகிறோம்.
பயனர் தெரிவுநிலை நன்மை: பயனர்கள் உண்மையில் கவனிக்கக்கூடிய ஒன்றை நாம் சரிசெய்கிறோமா, அப்படியானால், அது எவ்வளவு முக்கியம்?
பிழைத்திருத்தம் எவ்வாறு தன்னியக்கமானது: இது ஒரு குறிப்பிடத்தக்க சிக்கலை சரிசெய்தாலும், நிறைய குறியீட்டை மாற்றியமைத்தால், குறைவான ஆபத்தான பிழைத்திருத்தம் எப்படி இருக்கும் என்பதைப் பற்றி சிந்திக்க வேண்டியது அவசியம்.
பிழைத்திருத்தம் ஏற்கனவே மாஸ்டரில் உள்ளதா என்பது: மாற்றம் மாஸ்டருக்கு வெறுமனே புரியவில்லை என்றால், ஒரு மாற்றம் ஏற்கனவே மாஸ்டரில் இணைக்கப்பட்ட மாற்றத்தின் பின்னிணைப்பாக இருக்க வேண்டும்.
பின்னணி செயல்முறை:¶
ஒரு பேட்சை மாஸ்டரிலிருந்து நிலையானதாக மாற்றும்போது, மாஸ்டரின் மாற்றத்தைப் பற்றிய குறிப்பை வைத்திருக்க விரும்புகிறோம். நிலையான PR க்காக நீங்கள் கிளையை உருவாக்கும்போது,:: ஐப் பயன்படுத்தவும்
$ git cherry-pick -x $master_commit_id
இருப்பினும், இது மாஸ்டரிடமிருந்து சிறிய தன்னிறைவான பேட்ச்களுக்கு மட்டுமே வேலை செய்கிறது. மாஸ்டரிடமிருந்து ஒரு பெரிய கமிட்டின் துணைக்குழுவை (எடுத்துக்காட்டாக, ஸ்குவாஷ் செய்யப்பட்ட ஒரு PR ) மாஸ்டரிடமிருந்து இதை கைமுறையாக செய்யுங்கள். இந்த சந்தர்ப்பங்களில், :: ஐ சேர்க்கவும்.
Backported from: #master pr number
எனவே, கண்டிப்பான செர்ரி-தேர்வுக்கு ' அர்த்தமில்லை என்றாலும், மாற்றத்தின் துணைக்குழுவின் மூலத்தைக் கண்காணிக்க முடியும்.
நீங்கள் முன்மொழிகின்ற இணைப்பு செர்ரி-பிக் சுத்தமாக இருக்காது என்றால், மோதல்களை நீங்களே தீர்த்துக் கொண்டு, அதன் விளைவாக வரும் பேட்சை முன்மொழியலாம். நிலையான இணைப்பை மதிப்பாய்வு செய்ய உதவுவதற்கு தயவுசெய்து மோதல் வரிகளை உறுதி செய்தியில் வைக்கவும்.
பின்னணிஅடையாளக் குறியீடு¶
stable backport potential
உடன் குறிக்கப்பட்ட பிழைகள் அல்லது PR கள் நிலையான வெளியீட்டிற்கும் பொருந்தும் பிழைகள் மற்றும் மாஸ்டரில் ஒரு பிழைத்திருத்தம் வந்தவுடன் பின்செலுத்தலுக்கு ஏற்றதாக இருக்கலாம். பேக்போர்ட் முன்மொழியப்பட்டவுடன், குறிச்சொல் அகற்றப்பட வேண்டும்.
இலக்கு கிளையை நிலையானதாக அமைப்பது தவறு அல்ல என்பதற்கான அடையாளமாக, நிலையான கிளைக்கு எதிராக PR இன் தலைப்பில் [Stable]
சேர்க்கவும். மேலும், நீங்கள் போர்ட்டிங் செய்யும் மாஸ்டரில் உள்ள PR எண்ணைக் குறிப்பிடவும்.
ஆவணத்தில் பங்களிப்பு¶
Qiskit ஆவணம் வடிவமைக்கப்பட்ட docs as code தத்துவம், முனைவர் Qiskit குறியீட்டு கருத்துக்களில் இருந்து வரையப்பட்டுள்ளது API ஆவணம்.
ஆவணங்கள் Qiskit/qiskit/docs முதன்மை கிளையிலிருந்து Sphinx ஐப் பயன்படுத்தி கட்டப்பட்டுள்ளன. பெரும்பாலான ஆவணங்கள், API Reference, கீழ் பதிவுகள் எங்கே உள்ளன இல் பட்டியலிடப்பட்டுள்ளது.
ஆவண அமைப்பு¶
Qiskit யில் ஆவணங்கள் கட்டமைக்கப்பட்ட வழி, உண்மையான ஆவணங்களை முடிந்தவரை டாக்ஸ்ட்ரிங்ஸில் தள்ளுவதாகும். இது வளர்ச்சியின் போது சேர்த்தல் மற்றும் திருத்தங்களைச் செய்வதை எளிதாக்குகிறது, ஏனென்றால் பெரும்பாலான ஆவணங்கள் code மாற்றப்படுவதற்கு அருகில் வாழ்கின்றன. டெர்ராவில் இயல்பான ஆவணமாக்கல் கட்டமைப்பில் மூன்று நிலைகள் உள்ளன:
docs / apidocs
இல் உள்ள.rst
கோப்புகள்காண்பிக்கப்பட்ட ஆவணத்தில் எந்த தொகுதிகள் சேர்க்கப்பட வேண்டும் என்பதை ஸ்பின்க்ஸிடம் சொல்ல இந்த கோப்புகள் பயன்படுத்தப்படுகின்றன. இதில் இரண்டு தகவல்கள் உள்ளன: ஒரு internal reference அல்லது cross reference தொகுதிக்கு, இது ஆவணத்தின் உள் இணைப்புகளுக்குப் பயன்படுத்தப்படலாம், மற்றும் ஒரு automodule directive ஒரு குறிப்பிட்ட இறக்குமதி பாதையிலிருந்து தொகுதி டாக்ஸ்ட்ரிங்ஸை அலச பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, எடுத்துக்காட்டாக, dagcircuit.rst கோப்பில் உள்ளது:
.. _qiskit-dagcircuit: .. automodule:: qiskit.dagcircuit :no-members: :no-inherited-members: :no-special-members:
இதற்கு வெளியே உள்ள ஒரே
.rst
கோப்புqiskit.rst
, இதில் உள்ளடக்க அட்டவணை உள்ளது. புதிய தொகுதியின் ஆவணங்களுக்காக நீங்கள் ஒரு புதிய.rst
கோப்பைச் சேர்த்தால், சேர்ப்பதை உறுதிசெய்ய, toctree அந்த கோப்பில்.- தொகுதி-நிலை டாக்ஸ்ட்ரிங்
இந்த நுழைவு
automodule
திசை கோப்பு ' இல் குறிப்பிடப்பட்ட கூற்றுக்கான கூறு மட்டத்தில் உள்ளது. If the module specified is a directory/namespace, the docstring should be specified in the__init__.py
அந்த கோப்பகத்திற்கான கோப்பு. இந்த தொகுதி-நிலை டாக்ஸ்ட்ரிங் ஆவணப்படுத்தப்பட்ட தொகுதி பற்றிய கூடுதல் விவரங்களைக் கொண்டுள்ளது. இந்த நுழைவுக்கு சாதாரண கட்டமைப்பு அனைத்து வகுப்புகளையும், பொது API, அந்த கூற்றில் உள்ள அனைத்து வகுப்புகளையும் மற்றும் செயல்பாடுகளையும் வெளிப்பட உள்ளது. இந்த டாக்ஸ்ட்ரிங்கின் இயல்பான கட்டமைப்பு, அந்த தொகுதியில் உள்ள பொது API இன் அனைத்து வகுப்புகள் மற்றும் செயல்பாடுகளை கோடிட்டுக் காட்டுவதாகும். இது பொதுவாக தன்னியக்க உத்தரவு <https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html> __ (அல்லது தானியங்கு வழிமுறைகள் <http: //www.sphinx- doc.org/en/master/usage/extensions/autodoc.html> `__ நேரடியாக தொகுதி எளிமையானதாக இருந்தால், ``qiskit.execute` போன்றவை). ஒவ்வொன்றிற்கும் ஆட்டோடாக் கட்டளைகளை கைமுறையாக அழைக்காமல் நேரடியாக வெவ்வேறு பைதான் கூறுகளின் (வகுப்புகள், செயல்பாடுகள் போன்றவை) பட்டியலை ஆட்டோடாக் செய்ய ஆட்டோசம்மரி உத்தரவு பயன்படுத்தப்படுகிறது. தொகுதி-நிலை டாக்ஸ்ட்ரிங் என்பது தொகுதி என்ன செயல்பாட்டை வழங்குகிறது என்பதற்கான உயர் மட்ட கண்ணோட்டத்தை வழங்குவதாகும். இது பொதுவாக பொது API இன் வெவ்வேறு கூறுகளை ஒன்றாக பல துணைப்பிரிவுகளாக தொகுப்பதன் மூலம் செய்யப்படுகிறது.எடுத்துக்காட்டாக, முந்தைய டாக்சர்க்யூட் தொகுதி உதாரணத்தைப் போலவே, டாக்ஸ்ட்ரிங் தொகுதியின் உள்ளடக்கங்களும்
qiskit/dagcircuit/__init__.py
இருக்கலாம்:""" ======================================= DAG Circuits (:mod:`qiskit.dagcircuit`) ======================================= .. currentmodule:: qiskit.dagcircuit DAG Circuits ============ .. autosummary:: :toctree: ../stubs/ DAGCircuit DAGNode Exceptions ========== .. autosummary:: :toctree: ../stubs/ DAGCircuitError """
Note
இது ஒரு எடுத்துக்காட்டு மற்றும் டாக்சர்க்யூட் தொகுதிக்கான உண்மையான தொகுதி டாக்ஸ்ட்ரிங் இதிலிருந்து வேறுபடக்கூடும்.
- தொகுதி டாக்ஸ்ட்ரிங்கில் பட்டியலிடப்பட்டுள்ள உறுப்புகளுக்கான உண்மையான டாக்ஸ்ட்ரிங்
தேவைப்படும்போது எடுத்துக்காட்டுகளைப் பயன்படுத்தி வெளிப்படும் அனைத்து பொது இடைமுகங்களையும் முழுமையாக ஆவணப்படுத்த நீங்கள் முயற்சிக்க வேண்டும். டாக்ஸ்ட்ரிங்குகளுக்கு, Google Python Style Docstrings பயன்படுத்தப்படுகின்றன. இது napoleon sphinx extension ஐப் பயன்படுத்தி பாகுபடுத்தப்படுகிறது. napoleon documentation டாக்ஸ்ட்ரிங்ஸ் எவ்வாறு வடிவமைக்கப்பட வேண்டும் என்பதற்கு ஒரு சிறந்த எடுத்துக்காட்டு உள்ளது.
Note
நீங்கள் எந்த Sphinx directive அல்லது rst வடிவமைப்பில் வடிவமைக்கலாம். உதாரணமாக, ஒரு பொதுவான விரிவாக்கம் பயன்படுத்தப்படும்
jupyter-execute
திசை, இது ஜூபெட்டில் ஒரு குறியீட்டு தொகுதியை இயக்க பயன்படுகிறது மற்றும் குறியீடு மற்றும் வெளியீட்டை இரண்டையும் காட்டுகிறது. இது குறிப்பாக விசாரிகளுக்காக பயன்படுகிறது.
ஆவண ஒருங்கிணைப்பு¶
Https://qiskit.org/documentation/ இதில் உள்ள தொகுத்து வழங்கப்பட்ட ஆவணம், முழு Qiskit project ஆகும்; Terra அதன் ஒரு கூறு மட்டுமே. அப்படியே, நடைபெற்ற பதிப்புக்களுக்கான ஆவணத் தளங்கள் Qiskit meta-package repository https://github.com/Qiskit/qiskit. ஒழுங்குபடுத்தப்பட்ட பொழுது அந்த மறுபடியும், Sphinx builds (Sphinx builds) வெளியீடு qiskit.org இணையத்தளத்தில் ஏற்றுக்கொள்ளப்படுகின்றன. அந்த Sphinx கட்டளைகள் அந்த புள்ளியில் மெட்டா-தொகுப்பு நிறுவப்பட்ட Qiskit தனிமங்களின் பதிப்பிலிருந்து ஆவணத்தில் இழுக்க வடிவமைக்கப்பட்டுள்ளன. உதாரணமாக, மெட்டா-தொகுப்பு பதிப்பு தற்போது 0.13.0 என்றால், பின்னர் டெர்ரா 0.10.0 விடுதலிலிருந்து ஆவணத்தை நகலெடுக்கும். மெட்டா-தொகுப்பின் தேவைகள் bumped போதும், பின்னர் அது புதிய பதிப்பிலிருந்து ஆவணத்தை ஆரம்பிக்கும். அதாவது, API ஆவணத்தில் உள்ள பிழைகள், வரப்போகிற ஆவணத்தில் சரி செய்யப்படும். ஒரு நிலையான கிளை கொள்கைக்கு ஒரு நிலையான பக்க விடுதலை (கீழே அந்த பகுதியை பார்க்கவும்).
உருவாக்க செயல்பாட்டின் போது, ஒவ்வொரு உறுப்புகளின் docs/apidocs/
உள்ளடக்கங்கள் மெட்டா-தொகுப்பு களஞ்சியத்தில் உள்ள மற்ற அனைத்து உறுப்புகளுடன் doc/apidocs/
இன் பகிரப்பட்ட நகலில் மீண்டும் மீண்டும் நகலெடுக்கப்படுகின்றன. இதன் பொருள், ஒரு வெளியீட்டில் ஒவ்வொரு உறுப்புக்கும் docs /apidocs மூலத்தில் உள்ளவை https://qiskit.org/documentation/apidoc/ இன் மூலத்தில் முடிவடையும்.
ஆவணங்களை மொழிபெயர்த்தல்¶
மொழிபெயர்ப்பு திட்டங்களை ஒருங்கிணைக்கவும், பொருட்களை மொழிபெயர்க்க சமூகங்களுடன் ஒத்துழைக்கவும் நிறுவனங்களை அனுமதிக்கும் ஒரு மென்பொருள் மற்றும் வலை உள்ளூர்மயமாக்கல் தளமான Crowdin னைப் பயன்படுத்தி Qiskit ஆவணங்கள் மொழிபெயர்க்கப்பட்டுள்ளன (localized). Crowdin எங்கள் மொழிபெயர்ப்பாளர்களின் சமூகம் ஒரு வாக்கியத்தை மொழிபெயர்க்க முதலீடு செய்த வேலையை தானாக மீண்டும் பயன்படுத்துவதன் மூலம் அவற்றின் தாக்கத்தை அதிகரிக்க அனுமதிக்கிறது. கோப்புகளின் குறுக்கே கூட வாக்கியங்களை நகர்த்துவது போன்ற அசல் பொருளின் பல வகையான மாற்றங்களுக்கு Crowdin மொழிபெயர்ப்புகளை நெகிழ வைக்கிறது.
Qiskit localization கோரிக்கைகள் Qiskit Translations repository. Qiskit localization பங்களிப்பதற்கு, தயவு செய்து இந்த படிப்பை பின்பற்றவும்:
உங்கள் பெயர் (அல்லது அடையாளம்) LOCALIZATION_CONTRIBUTORS கோப்புக்கு சேர்.
உங்கள் மாறுபாட்டை ஒன்றுசேர் கொண்டு ஒரு புல் ரிக்வெஸ்ட்(PR) உருவாக்குக. புல் ரிக்வெஸ்ட் திறக்க வார்ப்புருவை பின்பற்றவும்.
Note
ஒவ்வொரு பங்களிப்பும் தங்களது PR உருவாக்க மற்றும் CLA கையெழுத்தைக் குறி.
தயவு செய்து PR சுருக்கத்தில் பங்களிப்பதற்கு விரும்பும் மொழியை குறிப்பிடுக.
ஒரு மொழி கோரிக்கைக்கு ஒரு திறந்த பிரச்சினை உண்டு என்றால், PR க்கு இணைப்பு இணைப்பை சேர்க்கவும்.
Qiskit Contributors License Agreement (CLA); கையெழுத்திடுமாறு கேட்கப்படுவீர்கள்; தயவுசெய்து அவ்வாறு செய்யுங்கள்.
ஒரு குறைந்தபட்சம் மூன்று பங்களிப்புக்கள் ஒன்று ஒரு மொழி தேவைப்படும் எந்த புதிய மொழிகளுக்கு சேர்க்கப்படுவதற்கு தேவையிட, உளவியல் திட்டத்தின் நிர்வாகிகள் இருந்து அதிகாரப்பூர்வு ஆதரவு பெறவும்.
பங்களிப்பாளர்களின் குழுவில், உள்ளூர்மயமாக்கல் திட்டத்தின் நிர்வாகிகளுடன் தொடர்பு கொள்ள ஒரு மொழிபெயர்ப்பு முன்னணி அடையாளம் காணப்பட வேண்டும். முன்னணி தொடர்பு கொள்ள வேண்டும்: Yuri Kobayashi (yurik@jp.ibm.com) மின்னஞ்சல் மூலம்.
Qiskit-Docs Crowdin திட்டத்தில், நீங்கள் பங்களிப்பதற்கு விரும்பும் மொழியை தேர்ந்தெடுக்கவும்.
Note
வலைப்பதிவு இடுகையில் குறிப்பிட்டுள்ளபடி, எனது மொழியில் Qiskit என்பது Qiskit, மொழிபெயர்க்கப்பட்ட மொழிகள் என்பதை உறுதிப்படுத்த விரும்புகிறோம் மொழிபெயர்ப்பாளர்கள், ப்ரூஃப் ரீடர்கள் மற்றும் மொழிபெயர்ப்பு வழிவகைகளுடன் மொழிபெயர்ப்புக் குழுவை உருவாக்க போதுமான சமூக ஆதரவு உள்ளது. நீங்கள் ஒரு மொழிபெயர்ப்புத் தலைவராக இருக்க விரும்பினால் அல்லது புதிய மொழிபெயர்ப்பு திட்டக் குழுவில் சேர விரும்பினால், நீங்கள் ஒரு GitHub சிக்கலைத் திறக்கலாம் Qiskit குழுவுடன் கலந்துரையாடலைத் தொடங்கவும், மொழிபெயர்ப்பு திட்ட உறுப்பினர்களை நியமிக்கவும்.
Crowdin திட்டத்தில் நீங்கள் ஏன் சேர விரும்புகிறீர்கள் என்று கேட்கப்படும் உரையாடல் பெட்டியில் Join button னைக் கிளிக் செய்து paste the URL of your PR.
Crowdin திட்டத்தின் நிர்வாகிகள் உங்கள் கோரிக்கையை சரிபார்த்து விரைவில் விரைவாக அணுக முடியும்.
ஆதாரத்திலிருந்து உருவாக்குவது¶
Qiskit/qiskit களஞ்சியத்தின் உங்கள் உள்ளூர் குளோனிலிருந்து ஆவணங்களின் உள்ளூர் நகலை பின்வருமாறு உருவாக்கலாம்:
Qiskit களஞ்சியத்தை குளோன் செய்யவும்.
git clone https://github.com/Qiskit/qiskit.git
qiskit
களஞ்சியத்தை குளோன் செய்வது உள்ளூர் கோப்புறையை உருவாக்குகிறது.cd qiskit
Qiskit/qiskit யின் உள்ளார்ந்த குழுவுக்கு வழிபாடு மற்றும் முனைய சாளரத்தில் கீழ்காணும் கட்டளையை இயக்குகிறது.
tox -edocs
நீங்கள் ஏற்கெனவே tox கட்டளை நிறுவப்பட்டிருந்தால், இயங்கும் மூலம் நிறுவவும்:
pip install tox
நீங்கள் உங்கள் உள்ளார்ந்த RST கோப்புகளுக்கு மாற்றங்களை செய்ய, /doc/ க்குச் சென்று, பின்வருவனவற்றை முனைய சாளரத்தில் இயக்குவதன் மூலம் உங்கள் HTML கோப்புகளைப் புதுப்பிக்கலாம்:
tox -edocs
இது உங்கள் உள்ளூர் ஆவணக் களஞ்சியத்தின் பாணியிலான, HTML பதிப்பை /docs/_build/html/ என்ற துணை அடைவில் உருவாக்கும்.
மூலத்திலிருந்து நிறுவப்படுகிறது¶
மூலத்திலிருந்து கூறுகளை நிறுவுவது பைதான் தொகுப்பு அட்டவணை (PyPI) களஞ்சியத்தில் பதிப்பைப் பயன்படுத்துவதற்குப் பதிலாக Qiskit ன் மிக சமீபத்தில் புதுப்பிக்கப்பட்ட பதிப்பை அணுக உங்களை அனுமதிக்கிறது. இது Qiskit குறியீட்டின் சமீபத்திய பதிப்பை மிகவும் திறமையாக ஆய்வு செய்து நீட்டிக்கும் திறனை உங்களுக்கு வழங்கும்.
மூலத்திலிருந்து கூறுகள் மற்றும் கூறுகளை நிறுவும் போது, இயல்பாகவே அவற்றின் development
பதிப்பு (இது மாஸ்டர்
கிட் கிளைக்கு ஒத்திருக்கிறது), stable
பதிப்பிற்கு (இது வெளியிடப்பட்ட pip
'தொகுப்புகளின் அதே கோட்பேஸைக் கொண்டுள்ளது). ஒரு உறுப்பு அல்லது கூறுகளின் development
பதிப்புகள் வழக்கமாக புதிய அம்சங்கள் மற்றும் மாற்றங்களைக் கொண்டிருப்பதால், அவை பொதுவாக மீதமுள்ள பொருட்களின் development
பதிப்பையும் பயன்படுத்த வேண்டும்.
Note
டெரா மற்றும் ஆர் தொகுப்புகள் இரண்டுமே நீங்கள் நிறுவுவதற்கு முன் மூலத்தில் இருந்து உருவாக்க ஒரு தொகுப்பி தேவை. Ignis, Aqua, மற்றும் IBM Quantum வழங்குபவர் பின்னணி ஒரு கணினி தேவை இல்லை.
மூலத்திலிருந்து உறுப்புகளை நிறுவுவதற்கு, pip
பதிப்பு மூல பதிப்புகளுக்குப் பின்னால் இருந்தால், விரும்பியதை விடக் குறைவாக இருக்கும் உறுப்புகளின் பதிப்புகளை நிறுவுவதைத் தடுக்க பின்வரும் நிறுவலின் வரிசை தேவைப்படுகிறது:
qiskit-ibmq-வழங்குபவர் (நீங்கள் IBM Quantum சாதனங்கள் அல்லது ஆன்லைன் சிமுலேட்டருடன் இணைக்க விரும்பினால்)
பல கூறுகள் மற்றும் தனிமங்களுடன் ஒரே நேரத்தில் வேலை செய்யவும், ஒவ்வொரு உறுப்புகளுக்கான பின்வரும் படிவங்களைப் பயன்படுத்தவும்.
Note
பைதான் (Python) இல் நன்ஸ்பேஸ் தொகுப்பின் பயன்பாடு காரணமாக, நீங்கள் தொகுப்புகளை நிறுவுவது எப்படி கவனிக்கவும். நீங்கள் மூலத்திலிருந்து எந்த உறுப்பை நிறுவுவதற்கு திட்டமிடப்பட்டிருந்தால் qiskit
meta-package ஐ பயன்படுத்தாது. மேலும், இந்த வழிகாட்டியை பின்பற்றவும், வளர்ச்சிக்கு ஒரு தனிப்பட்ட மெய்நிகர் சூழல் பயன்படுத்தவும். உங்கள் வளர்ச்சியுடன் ஏற்கனவே உள்ள நிறுவனத்தை தேர்ந்தெடுக்க தேர்வு செய்தால், நிறுவன முறைகளின் கூட்டமைப்பின் அமைப்புகளாக https://github.com/pypa/sample-namespace-packages/blob/master/table.md என்று குறிக்கவும்.
மெய்நிகர் மேம்பாட்டு சூழலை அமைக்கவும்¶
கணினி அளவிலான தொகுப்புகளிலிருந்து வளர்ச்சி சூழலைத் தனிமைப்படுத்த Qiskit மேம்பாட்டிற்கு மெய்நிகர் சூழல்கள் பயன்படுத்தப்படுகின்றன. இந்த வழியில், நாம் கவனக்குறைவாக ஒரு குறிப்பிட்ட கணினி உள்ளமைவைச் சார்ந்திருப்பதைத் தவிர்க்கிறோம். டெவலப்பர்களுக்கு, இது பல சூழல்களை பராமரிப்பதை எளிதாக்குகிறது (எ.கா. ஆதரிக்கப்படும் Python பதிப்பிற்கு ஒன்று, Qiskit இன் பழைய பதிப்புகள் போன்றவை).
Qiskit ஆதரிக்கும் அனைத்து பைதான் பதிப்புகளிலும் உள்ளமைக்கப்பட்ட மெய்நிகர் சூழல் தொகுதி venv ஆகியவை அடங்கும்.
venv
உடன் புதிய மெய்நிகர் சூழலை உருவாக்குவதன் மூலம் தொடங்கவும். இதன் விளைவாக வரும் சூழல் அதை உருவாக்கிய Python -ன் அதே பதிப்பைப் பயன்படுத்தும் மற்றும் முன்னிருப்பாக நிறுவப்பட்ட கணினி அளவிலான தொகுப்புகளைப் பெறாது. குறிப்பிட்ட கோப்புறை உருவாக்கப்படும் மற்றும் சூழலின் நிறுவலை வைத்திருக்கப் பயன்படுகிறது. அதை எங்கு வேண்டுமானாலும் வைக்கலாம். மேலும் விவரங்களுக்கு, அதிகாரப்பூர்வ Python ஆவணங்களைப் பார்க்கவும், Creation of virtual environments.
python3 -m venv ~/.venvs/qiskit-dev
சுற்றுச்சூழல் கோப்புறையில் உள்ள உங்கள் கணினிக்கான பொருத்தமான ஆக்டிவேஷன் ஸ்கிரிப்டை செயல்படுத்துவதன் மூலம் சுற்றுச்சூழலைச் செயல்படுத்தவும். எடுத்துக்காட்டாக, bash/zsh -க்கு:
source ~/.venvs/qiskit-dev/bin/activate
உங்கள் கணினியில் அடுத்தடுத்த பிரிவுகளில் நிறுவப்பட்ட Qiskit சார்புகளை உறுதிசெய்யச் சுற்றுச்சூழலுக்குள் pip -ஐ மேம்படுத்தவும்.
pip install -U pip
Conda பயனர்களுக்கு, ஒரு புதிய சூழலைப் பின்வருமாறு உருவாக்கலாம்.
conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv
மூலத்திலிருந்து Terra நிறுவப்படுகிறது¶
மூலத்திலிருந்து நிறுவப்படுகிறது நீங்கள் உங்கள் கணினியில் Rust compiler வேண்டும் என்று தேவை. Rust compiler யை நிறுவுவதற்கு பரிந்துரைக்கப்பட்ட பாதையை உபயோகிக்கிறது, இது ஒரு குறுக்குநடைமேடை ரஸ்ட் நிறுவனமாக உள்ளது. நீங்கள் அழிக்கப்பட பயன்படுத்த முடியும்:
உங்கள் மேடையில் துருவை எவ்வாறு நிறுவுவது என்பதற்கான வழிமுறைகளை இது வழங்கும். rustup தவிர பிற நிறுவல் முறைகள் உள்ளன.
ஒருமுறை தொகு நிறுவப்பட்டால், நீங்கள் Qiskit டெரா நிறுவுவதற்கு தயார்.
டெர்ரா களஞ்சியத்தை குளோன் செய்யுங்கள்.
git clone https://github.com/Qiskit/qiskit-terra.git
களஞ்சியத்தை குளோன் செய்வது
qiskit-terra
என்ற உள்ளூர் கோப்புறையை உருவாக்குகிறது.cd qiskit-terra
நீங்கள் சோதனைகளை இயக்க விரும்பினால் அல்லது சோதனைகள் நீக்கனால், உருவாக்குபவர் தேவைகளை நிறுவவும்.
pip install -r requirements-dev.txt
நிறுவப்பட்ட
qiskit-terra
.pip install .
தேவையான முறையில் அதை நிறுத்த விரும்பினால், அந்த நிரலுக்கு code மாற்றங்கள் மீண்டும் நிறுத்தப்பட தேவையில்லையென்றால், நீங்கள் இதனை செய்ய முடியும்:
pip install -e .
திருத்தக்கூடிய பயன்முறையில் நிறுவுவது, மேம்படுத்தல்கள் இல்லாமல் பிழைத்திருத்த பயன்முறையில் தொகுக்கப்பட்ட நீட்டிப்புகளை உருவாக்கும். இது தொகுக்கப்பட்ட குறியீட்டின் இயக்க நேர செயல்திறனைப் பாதிக்கும். நீங்கள் எடிட் செய்யக்கூடிய பயன்முறையைப் பயன்படுத்தவும், மேம்படுத்தப்பட்ட குறியீட்டை வெளியீட்டில் உருவாக்கவும் விரும்பினால், நீங்கள் இயக்கலாம்:
python setup.py build_rust --release --inplace
நீங்கள் பிப்பை இயக்கிய பிறகு, அது பைனரியை வெளியீட்டு பயன்முறையில் மீண்டும் உருவாக்கும்.
நீங்கள் Qiskit இல் ரஸ்ட் குறியீட்டில் பணிபுரிந்தால், ஒவ்வொரு முறையும் நீங்கள் உள்ளூர் மாற்றத்தை செய்யும் போது நீட்டிப்புக் குறியீட்டை மீண்டும் உருவாக்க வேண்டும். pip install -e .
Rust நீட்டிப்பு என்று அழைக்கப்படும் போது மட்டுமே அதை உருவாக்கும், எனவே pip ஐ இயக்கிய பிறகு Rust குறியீட்டில் நீங்கள் செய்யும் எந்த உள்ளூர் மாற்றங்களும் நீங்கள் நீட்டிப்பை மீண்டும் உருவாக்காத வரை நிறுவப்பட்ட தொகுப்பில் பிரதிபலிக்காது. இதைச் செய்ய, மேலே உள்ள build_rust
கட்டளையை நீங்கள் பயன்படுத்தலாம் (நீங்கள் பிழைத்திருத்த பயன்முறையில் அல்லது வெளியீட்டு பயன்முறையில் உருவாக்க விரும்புகிறீர்களா என்பதைப் பொறுத்து --release
உடன் அல்லது இல்லாமல்).
டெர்ராவை நிறுவிய பின் குறியீடு உதாரணங்களை இயக்கலாம். பின்வரும் கட்டளையுடன் நீங்கள் ஒரு எடுத்துக்காட்டு ஸ்கிரிப்டை இயக்கலாம்.
python examples/python/using_qiskit_terra_level_0.py
மூலத்திலிருந்து Aer நிறுவப்படுகிறது¶
Aer களஞ்சியத்தை குளோன் செய்யுங்கள்.
git clone https://github.com/Qiskit/qiskit-aer
உருவாக்க தேவைகள் நிறுவவும்.
pip install cmake scikit-build
இதற்குப் பிறகு, Aer நிறுவும் படிகள் நீங்கள் எந்த இயக்க முறைமையைப் பயன்படுத்துகிறீர்கள் என்பதைப் பொறுத்தது. Aer என்பது பைதான் இடைமுகத்துடன் தொகுக்கப்பட்ட C++ நிரல் என்பதால், Aer பைனரியை உருவாக்குவதற்கு பைதான் அல்லாத சார்புகள் உள்ளன, அவை இயக்க முறைமையைப் பொறுத்து உலகளவில் நிறுவ முடியாது.
தொகு தேவைகளை நிறுவவும்.
Aer உருவாக்க ஒரு C++ தொகு மற்றும் டெவலப்மெண்ட் ஹெட்டர்கள் தேவைப்படுகிறது.
நீங்கள் Fedora அல்லது அதற்கு சமமான Linux விநியோகத்தை பயன்படுத்தினால், பின்வரும் பயன்படுத்தி நிறுவவும்:
dnf install @development-tools
உபுண்டு / டெபியன் அதை நிறுவ:
apt-get install build-essential
OpenBLAS மேம்பாட்டு தலைப்புகளை நிறுவு.
நீங்கள் Fedora அல்லது அதற்கு சமமான Linux விநியோகத்தை பயன்படுத்தினால், பின்வரும் பயன்படுத்தி நிறுவவும்:
dnf install openblas-devel
உபுண்டு / டெபியன் அதை நிறுவ:
apt-get install libopenblas-dev
சார்புகளை நிறுவவும்.
MacOS இல் Clang தொகு பயன்படுத்த, OpenMP ஐ ஆதரிக்க நீங்கள் ஒரு கூடுதல் நூலகத்தை நிறுவ வேண்டும். இதையும் மற்ற சார்புகளையும் நிறுவ நீங்கள் brew ஐ பயன்படுத்தலாம்.
brew install libomp
பின்னர் ஒரு BLAS செயல்படுத்தலை நிறுவவும்; OpenBLAS இயல்புநிலை தேர்வு.
brew install openblas
அடுத்து,
Xcode Command Line Tools
ஐ நிறுவவும்.xcode-select --install
Windows இல் நீங்கள் பயன்படுத்த வேண்டும் Anaconda3 அல்லது Miniconda3 அனைத்து சார்புகளையும் நிறுவ.
தொகு தேவைகளை நிறுவவும்.
conda install --update-deps vs2017_win-64 vs2017_win-32 msvc_runtime
பைனரி நிறுவவும் மற்றும் சார்புகளை உருவாக்கு.
conda install --update-deps -c conda-forge -y openblas cmake
நேரடியாக Qiskit-aer ஐ உருவாக்கி நிறுவவும்
உங்களிடம் pip <19.0.0 நிறுவப்பட்டிருந்தால், உங்கள் சூழலுக்கு தனிப்பயன் உருவாக்க தேவையில்லை, இயக்கவும்:
cd qiskit-aer pip install .
இது இரண்டும் பைனரிகளை உருவாக்கி Aer நிறுவும்.
மாற்றாக, நீங்கள் ஒரு புதிய பிப் நிறுவப்பட்டால், அல்லது சில தனிப்பயன் தேவை கொண்டால், நீங்கள் ஒரு பைதான் வீலை கைமுறையாக உருவாக்க முடியும்.
cd qiskit-aer python ./setup.py bdist_wheel
சக்கர கட்டத்தின் போது ஒரு தனிப்பயன் விருப்பத்தை அமைக்க வேண்டும் என்றால், வீல் உருவாக்கங்களின் போது தனிப்பட்ட விருப்பங்கள்.
நீங்கள் பைதான் சுவையை உருவாக்கும் பிறகு, அது Aer களஞ்சியத்தில்
dist/
dir இல் சேமிக்கப்படும். சரியான பதிப்பு சார்ந்திருக்கும்cd dist pip install qiskit_aer-*.whl
வெளியீட்டு சக்கர கோப்பின் சரியான கோப்பு பெயர் வளர்ச்சியின் கீழ் உள்ள Aer இன் தற்போதைய பதிப்பைப் பொறுத்தது.
வீல் உருவாக்கங்களின் போது தனிப்பட்ட விருப்பங்கள்¶
பைதான் இடைமுகத்துடன் தொகுப்பை உருவாக்கும்போது அதை இயக்க Aer பில்ட் சிஸ்டம் scikit-build ஐப் பயன்படுத்துகிறது. setuptools CMake ஐ அழைப்பதற்கும் உங்கள் உள்ளூர் கணினிக்கான பைனரிகளை தொகுப்பதற்கும் இது ஒரு இடைமுகமாக செயல்படுகிறது.
பைனரிகளை தொகுப்பதில் உள்ள சிக்கலான தன்மை காரணமாக, நீங்கள் உருவாக்க செயல்முறையின் ஒரு குறிப்பிட்ட பகுதிக்கு விருப்பங்களை அனுப்ப வேண்டியிருக்கும். தேர்ச்சி மாறிகள் அனுப்ப வழி:
python setup.py bdist_wheel [skbuild_opts] [-- [cmake_opts] [-- build_tool_opts]]
சதுர அடைப்புக்குறிக்குள் உள்ள கூறுகள் விருப்பமானவை, மற்றும் skbuild_opts
, cmake_opts
, build_tool_opts
ஆகியவை உங்களுக்கு விருப்பமான கொடிகளால் மாற்றப்பட வேண்டும். CMake விருப்பங்களின் பட்டியல் இங்கே கிடைக்கிறது: https://cmake.org/cmake/help/v3.6/manual/cmake.1.html#options. எடுத்துக்காட்டாக, நீங்கள் இதைப் போன்றவற்றை இயக்கலாம்:
python setup.py bdist_wheel -- -- -j8
இது கொடி - j8 செல்லும் கட்டிடக் கட்டமைப்பை கடந்து (இது இந்த வழக்கில் Automake), 8 பணிகளை பயன்படுத்தி இணையாக உருவாக்க விரும்பும் என்று சொல்லப்படுகிறது.
எடுத்துக்காட்டாக, Linux இல் இந்த கொடிகளுக்கு ஒரு பொதுவான பயன்பாடு வழக்கமாக C++ தொகுப்பின் ஒரு குறிப்பிட்ட பதிப்பு குறிப்பிடவும் (சாதாரணமாக முன்னிருப்பு மிகவும் பழமையானால்):
python setup.py bdist_wheel -- -DCMAKE_CXX_COMPILER=g++-7
இது Aer ஐ தொகுக்கும்போது இயல்புநிலை g ++ க்கு பதிலாக g ++ - 7 கட்டளையைப் பயன்படுத்த CMake க்குச் சொல்லும்.
இதற்கான மற்றொரு பொதுவான பயன்பாட்டு வழக்கு, உங்கள் சூழலைப் பொறுத்து, உங்கள் தளத்தின் பெயரைக் குறிப்பிட வேண்டும் மற்றும் நிலையான இணைப்பை அணைக்க வேண்டும்.
python setup.py bdist_wheel --plat-name macosx-10.9-x86_64 \
-- -DSTATIC_LINKING=False -- -j8
இங்கே --plat-name
என்பது செட்அப்டூல்களுக்கு ஒரு கொடி, தொகுப்பு மெட்டாடேட்டாவில் பயன்படுத்த வேண்டிய தளத்தின் பெயரைக் குறிப்பிட, -DSTATIC_LINKING
என்பது நிலையான இணைப்பை முடக்க CMake ஐப் பயன்படுத்துவதற்கான ஒரு கொடி, மற்றும் -j8
தொகுப்பிற்கு 8 செயல்முறைகளைப் பயன்படுத்த ஆட்டோமேக்கைப் பயன்படுத்துவதற்கான ஒரு கொடி.
தளத்தைப் பொறுத்து பொதுவான விருப்பங்களின் பட்டியல்:
பணித்தளம் |
கருவி |
விருப்பம் |
பயன்பாடு வழக்குகள் |
---|---|---|---|
அனைத்தும் |
தானாகவே |
|
ஒரு எண்ணைத் தொடர்ந்து, தொகுப்பிற்குப் பயன்படுத்த வேண்டிய செயல்முறைகளின் எண்ணிக்கையை அமைக்கிறது. |
Linux |
CMake |
|
குறிப்பிட்ட C++ தொகுப்பை குறிப்பிடும்; உங்கள் முன்னிருப்பு g++ மிகவும் பழமையானால் இது அடிக்கடி தேவைப்படுகிறது. |
OSX |
அமைப்புகருவிகள் |
|
வெளியீட்டு Python தொகுப்பில் வலைப்பதிவொன்றை குறிப்பிட பயன்படுத்தப்பட்டது. |
OSX |
CMake |
|
நிலையான இணைப்பு பயன்படுத்தப்பட வேண்டுமா இல்லையா என்பதைக் குறிப்பிட பயன்படுகிறது. |
Note
இந்த விருப்பங்களில் சில மேடையில் குறிப்பிட்டவை அல்ல. இந்த குறிப்பிட்ட தளங்கள் பட்டியலிடப்பட்டுள்ளன, ஏனெனில் அவை பொதுவாக சூழலில் பயன்படுத்தப்படுகின்றன. மேலும் தகவலுக்கு கருவி ஆவணங்களைப் பார்க்கவும்.
மூலத்திலிருந்து Ignis நிறுவப்படுகிறது¶
Ignis களஞ்சியத்தை க்ளோன் செய்யுங்கள்.
git clone https://github.com/Qiskit/qiskit-ignis.git
களஞ்சியத்தை குளோன் செய்வது
qiskit-ignis
என்ற உள்ளூர் கோப்பகத்தை உருவாக்குகிறது.cd qiskit-ignis
நீங்கள் சோதனைகளை இயக்க விரும்பினால், அல்லது நீக்க சோதனைகள், உருவாக்குபவர் தேவைகளை நிறுவவும். மூலத்திலிருந்து நிறுவும்போது qiskit-ignis தொகுப்பை நிறுவவும் அல்லது பயன்படுத்துவதற்கு இது தேவைப்படுகிறது.
pip install -r requirements-dev.txt
Ignis ஸை நிறுவவும்.
pip install .
நீங்கள் திருத்தி முறையில் நிறுத்தவேண்டுமென்றால், அந்த code மாற்றங்கள் திட்டப்பணியினை மாற்றியமைக்க தேவையிட வேண்டாம்:
pip install -e .
மூலத்திலிருந்து IBM குவாண்டம் வழங்கியை நிறுவுகிறது¶
Qiskit-ibmq-வழங்குபவர் களஞ்சியத்தை க்ளோன் செயப்படுகிறது.
git clone https://github.com/Qiskit/qiskit-ibmq-provider.git
களஞ்சியத்தை க்ளோனிங்,
qiskit-ibmq-provider
என்று அழைக்கப்படும் ஒரு உள்ளூர் அடைவை உருவாக்குகிறது.cd qiskit-ibmq-provider
நீங்கள் சோதனைகளை இயக்க விரும்பினால், அல்லது சோதனைகளை நீக்க, உருவாக்குபவர் தேவைகளை நிறுவவும். இது மூலத்திலிருந்து நிறுவும்போது qiskit-ibmq-வழங்குபவர் தொகுப்பை நிறுத்தவும் அல்லது பயன்படுத்த தேவையில்லையென்றால் தேவைப்படுகிறது.
pip install -r requirements-dev.txt
Qiskit-ibmq-provider நிறுவப்பட்டது.
pip install .
நீங்கள் திருத்தி முறையில் நிறுத்தவேண்டுமென்றால், அந்த code மாற்றங்கள் திட்டப்பணியினை மாற்றியமைக்க தேவையிட வேண்டாம்:
pip install -e .
Qiskit பதிப்பு¶
Qiskit திட்டமானது பல கூறுகளால் ஆனது, ஒவ்வொன்றும் வெவ்வேறு செயல்பாடுகளைச் செய்கிறது. ஒவ்வொன்றும் தனித்தனியாகப் பயனுள்ளவை மற்றும் அவற்றின் சொந்தமாகப் பயன்படுத்தப்படலாம், ஆனால் வசதிக்காக இந்தக் களஞ்சியத்தையும் மெட்டா-தொகுப்பையும் ஒரே நேரத்தில் அனைத்து உறுப்புகளையும் நிறுவ ஒரே நுழைவுப் புள்ளியை வழங்குகிறோம். இது நிறுவல் செயல்முறையை எளிதாக்குவது மற்றும் இறுதிப் பயனர்களுக்கு ஒரு ஒருங்கிணைந்த இடைமுகத்தை வழங்குவதாகும். இருப்பினும், ஒவ்வொரு Qiskit உறுப்புக்கும் அதன் சொந்த வெளியீடுகள் மற்றும் பதிப்புகள் இருப்பதால், வெவ்வேறு களஞ்சியங்களுக்கு இடையில் பதிப்புகளைக் கையாளும் போது சில கவனம் தேவை. இந்த ஆவணம் Qiskit உறுப்புகள் மற்றும் மெட்டா-பேக்கேஜ் ஆகிய இரண்டின் பதிப்புகள் மற்றும் வெளியீடுகளைக் கையாள்வதற்கான வழிகாட்டுதல்களை கோடிட்டுக் காட்டுகிறது.
இந்த வழிகாட்டியின் மீதமுள்ள தரநிலை சொற்பொருள் பதிப்பு பெயரிடல் பயன்படுத்தப்படும்: Major.Minor.Patch
பதிப்பு எண்ணின் வெவ்வேறு கூறுகளைக் குறிக்க உதவுகிறது. உதாரணமாக, பதிப்பு எண் 0.7.1
என்றால், முக்கிய பதிப்பு 0
, சிறிய பதிப்பு 7
, மற்றும் இணைப்புப் பதிப்பு 1
.
மெட்டா-தொகுப்பு பதிப்பு¶
Qiskit மெட்டா-தொகுப்பு பதிப்பு என்பது ஒரு சுயாதீன மதிப்பு, இது கண்காணிக்கப்படும் ஒவ்வொரு உறுப்புகளின் வெளியீடுகளால் தீர்மானிக்கப்படுகிறது. ஒவ்வொரு முறையும் மெட்டா-தொகுப்பு தேவைகளுக்கு ஒரு வெளியீட்டை கண்காணிக்கும் கூறுக்கு (அல்லது ஒரு உறுப்பைச் சேர்க்க) தள்ளுகிறோம், மேலும் பதிப்பு புதுப்பிக்கப்பட்டு புதிய வெளியீடு வெளியிடப்பட வேண்டும். உறுப்பு வெளியீடுகளுடன் மெட்டா-தொகுப்பு வெளியீடுகள் கண்காணிக்கப்படுவதை உறுதி செய்ய உறுப்புகளின் வெளியீட்டுடன் நேரத்தை ஒருங்கிணைக்க வேண்டும்.
புதிய கண்காணிக்கப்பட்ட கூறுகளைச் சேர்த்தல்¶
மெட்டா-தொகுப்பு தேவைகளில் ஒரு புதிய Qiskit உறுப்பு சேர்க்கப்படும்போது, மெட்டா-தொகுப்பு Minor பதிப்பை அதிகரிக்க வேண்டும்.
எடுத்துக்காட்டாக, மெட்டா-பேக்கேஜ் qiskit-aer
மற்றும் qiskit-terra
ஆகிய 2 உறுப்புகளைக் கண்காணித்து, அதன் பதிப்பு 0.7.4
ஆக இருந்தால். மெட்டா பேக்கேஜில் சேர்க்க உத்தேசித்துள்ள qiskit-ignis
என்ற புதிய உறுப்பை வெளியிடுகிறோம். மெட்டா பேக்கேஜில் புதிய உறுப்பைச் சேர்க்கும்போது, பதிப்பை 0.8.0
ஆக அதிகரிக்கிறோம்.
இணைப்பு பதிப்பு அதிகரிக்கிறது¶
மெட்டா-தொகுப்பால் ஏற்கனவே கண்காணிக்கப்படும் எந்த Qiskit உறுப்பு ஒரு வெளியீட்டில் பிழைகளை சரிசெய்ய ஒரு பேட்ச் பதிப்பை வெளியிடும் போது, நமக்குத் தேவைப்படும் setup.py இல் உள்ள தேவையை பம்ப் செய்து பின்னர் மெட்டா-தொகுப்பின் பேட்ச் பதிப்பை அதிகரிக்கும்.
எடுத்துக்காட்டாக, மெட்டா-தொகுப்பு 3 கூறுகளை கண்காணிக்கிறதென்றால் qiskit-terra == 0.8.1
, qiskit-aer==0.2.1
, மற்றும் qiskit-ignis==0.1.4` `தற்போதைய பதிப்பில் ``0.9.6
. ஒரு பிழையை சரிசெய்ய qiskit-terra ஒரு புதிய இணைப்பு பதிப்பை வெளியிடும் போது 0.8.2
மெட்டா-தொகுப்பு அதன் இணைப்பு பதிப்பையும் வெளியீட்டையும் அதிகரிக்க வேண்டும், இது 0.9.7
ஆகிறது.
கூடுதலாக, மெட்டா-தொகுப்பில் எப்போதாவது பேக்கேஜிங் அல்லது பிற பிழைகள் உள்ளன, அவை புதிய வெளியீடுகளைத் தள்ளுவதன் மூலம் சரி செய்யப்பட வேண்டும். அவை எதிர்கொள்ளும்போது, உடைந்த வெளியீட்டிலிருந்து வேறுபடுவதற்கு இணைப்பு பதிப்பை அதிகரிக்க வேண்டும். எந்த சூழ்நிலையிலும் pypi இல் இருந்து உடைந்த அல்லது பழைய வெளியீடுகளை செய்ய வேண்டாம், அதற்கு பதிலாக இணைப்பு பதிப்பை அதிகரித்து புதிய வெளியீட்டைப் பதிவேற்றவும்.
சிறிய பதிப்பு அதிகரிக்கிறது¶
மெட்டா-தொகுப்பில் ஒரு புதிய உறுப்பைச் சேர்ப்பதைத் தவிர, மெட்டா-தொகுப்பின் சிறிய பதிப்பு ஒரு சிறிய பதிப்பு கண்காணிக்கப்பட்ட உறுப்பில் அதிகரிக்கும் போதெல்லாம் அதிகரிக்கப்பட வேண்டும்.
எடுத்துக்காட்டாக, மெட்டா-தொகுப்பு 2 கூறுகளை கண்காணிக்கிறதென்றால் qiskit-terra==0.7.0
மற்றும் qiskit-aer==0.1.1
மற்றும் தற்போதைய பதிப்பு 0.7.5
. qiskit-aer
உறுப்பு 0.2.0
ஐ வெளியிடும் போது, புதிய வெளியீட்டிற்கு ஒத்ததாக மெட்டா-தொகுப்பு பதிப்பை `` 0.8.0`` ஆக அதிகரிக்க வேண்டும்.
முக்கிய பதிப்பு அதிகரிக்கிறது¶
முக்கிய பதிப்பு மற்ற பதிப்பு எண் கூறுகளிலிருந்து வேறுபட்டது. கண்காணிக்கப்பட்ட ஒவ்வொரு உறுப்புடனும் பூட்டு படிநிலையில் புதுப்பிக்கப்படும் பிற பதிப்பு எண் கூறுகளைப் போலன்றி, கண்காணிக்கப்பட்ட அனைத்து பதிப்புகளும் மோதும்போது மட்டுமே முக்கிய பதிப்பு அதிகரிக்கும் (குறைந்தது 1.0.0
க்கு முன்). இப்போதே எல்லா உறுப்புகளும் 0
இன் முக்கிய பதிப்பு எண் கூறுகளைக் கொண்டுள்ளன, மேலும் மெட்டா-களஞ்சியத்தில் கண்காணிக்கப்படும் ஒவ்வொரு உறுப்புகளும் முக்கிய பதிப்பை >=1
என்று மெருகுவதன் மூலம் நிலையானதாகக் குறிக்கப்படும் வரை மெட்டா- தொகுப்பு பதிப்பு முக்கிய பதிப்பை அதிகரிக்கக்கூடாது.
அனைத்து உறுப்புகளும் >=1.0.0 இல் இருக்கும் போது முக்கிய பதிப்பு எண் கூறு கண்காணிப்பின் நடத்தை இன்னும் முடிவு செய்யப்படவில்லை.
விருப்பமான கூடுதல்¶
கண்காணிக்கப்பட்ட உறுப்புகளுக்கு மேலதிகமாக, Qiskit இன் மேல் கூடுதல் தொகுப்புகள் கட்டப்பட்டுள்ளன, அவை Qiskit உடன் இணைந்து உருவாக்கப்பட்டன, எடுத்துக்காட்டாக Qiskit-ஆப்டிமைசேஷன் போன்ற பயன்பாட்டு களஞ்சியங்கள். வசதிக்காக, இந்த தொகுப்புகள் Qiskit மெட்டாதொகுப்பு மூலம் Qiskit மூலம் நிறுவக்கூடிய கூடுதல் என கண்காணிக்கப்படுகிறது. இந்த விருப்பத்தேர்வு கீழ்நிலை திட்டங்களின் வெளியீடுகள் மெட்டாதொகுப்பு வெளியீட்டைத் தூண்டுவதில்லை, ஏனெனில் அவை பின் செய்யப்படாதவை மற்றும் மெட்டாதொகுப்பு பதிப்பை பாதிக்காது. Qiskit மற்றும் இந்த கீழ்நிலை விருப்ப சார்புநிலைகளுக்கு இடையே பொருந்தக்கூடிய சிக்கல் இருந்தால் மற்றும் குறைந்தபட்ச பதிப்பை ஒரு தனி வெளியீட்டில் சரிசெய்ய வேண்டும் என்றால் இது பேக்கேஜிங் பிழைத்திருத்தம் என்பதால் இது இணைப்பு பதிப்பு வெளியீடாக மட்டுமே செய்யப்படும்.
Qiskit உறுப்பு தேவை கண்காணிப்பு¶
மெட்டா-தொகுப்பு மற்றும் கிஸ்கிட் பதிப்போடு கண்டிப்பாக தொடர்புடையதல்ல என்றாலும், மெட்டா-தொகுப்பின் தேவைகள் பட்டியலில் உள்ள உறுப்பு பதிப்புகளை நாங்கள் எவ்வாறு கண்காணிக்கிறோம் என்பது முக்கியம். Setup.py இல் பட்டியலிடப்பட்டுள்ள ஒவ்வொரு உறுப்புகளும் ஒற்றை பதிப்பில் பொருத்தப்பட வேண்டும். இதன் பொருள் Qiskitடின் ஒவ்வொரு பதிப்பும் கண்காணிக்கப்பட்ட ஒவ்வொரு உறுப்புக்கும் ஒரு பதிப்பை மட்டுமே நிறுவ வேண்டும். எடுத்துக்காட்டாக, எந்த நேரத்திலும் தேவைகள் பட்டியல்:
requirements = [
"qiskit_terra==0.7.0",
"qiskit-aer==0.1.1",
]
இது பிழைத்திருத்தத்திற்கு உதவுவதாகும், ஆனால் பல உறுப்புகள் முழுவதும் பதிப்புகளைக் கண்காணிக்க மிகவும் வெளிப்படையானது.