Qiskit এ অবদান#
Qiskit হলো একটি মুক্ত উৎসের প্রকল্প (ওপেন সোর্স প্রজেক্ট) যা সর্বস্তরের মানুষের মাঝে কোয়ান্টাম কম্পিউটিংকে ছড়িয়ে দিতে আগ্রহী। এই পাতাটি বর্ণনা করে আপনি কিভাবে Qiskit কমিউনিটির (সংগঠন) অংশ হতে পারেন।
Before You Start#
If you are new to Qiskit contributing we recommend you do the following before diving into the code:
Read the Code of Conduct
Read the repo-specific Contributing Guidelines for the repo you have decided to contribute to.
Familiarize yourself with the Qiskit community (via Slack, Stack Exchange, GitHub etc.)
Contributing to a Specific Repo#
Each Qiskit package has its own set of Contributing Guidelines (kept in the CONTRIBUTING.md
file) which
details specific information on contributing to that repository. Make sure you read through the repo-specific
Contributing Guidelines prior to making your contribution to a specific repo as each project may have
slightly different requirements and processes. For Qiskit Terra, the main repository, the contributing guidelines
may be be found here. Other Qiskit packages that
are able to receive contributions may be found as seperate repositories in the official Qiskit Github.
Set up Your Development Environment#
To get started contributing to the Python-based Qiskit repos you will need to set up a Python Virtual Development Environment and install the appropriate package from source.
For a quick guide on how to do this for qiskit-terra take a look at the How to Install Qiskit - Contributors YouTube video.
For non-python packages you should check the CONTRIBUTING.md file for specific details on setting up your dev environment.
Set up Python Virtual Development Environment#
কৃত্রিম কর্মপরিবেশ (এনভায়রনমেন্ট)সমূহ Qiskit বিকাশের জন্য সিস্টেম-ওয়াইড প্যাকেজ থেকে উন্নয়ন পরিবেশকে আলাদা করার জন্য ব্যবহার করা হয়।এই ভাবে, আমরা অজানাভাবে একটি নির্দিষ্ট সিস্টেম যান্ত্রিক বিন্যাস (কনফিগারেশন) উপর নির্ভরশীল হয়ে উঠা এড়াতে পারি। ডেভেলপার বা বিকাশকারীদের জন্য, এটি একাধিক পরিবেশ বজায় রাখা সহজ করে তোলে ( উদাহরণ, প্রতি সমর্থিত পাইথন সংস্করণের জন্য, Qiskit এর পুরোনো সংস্করণগুলির জন্য, ইত্যাদি)।
All Python versions supported by Qiskit include built-in virtual environment module venv.
Start by creating a new virtual environment with venv
. The resulting
environment will use the same version of Python that created it and will not inherit installed
system-wide packages by default. The specified folder will be created and is used to hold the environment's
installation. It can be placed anywhere. For more detail, see the official Python documentation,
Creation of virtual environments.
python3 -m venv ~/.venvs/qiskit-dev
Activate the environment by invoking the appropriate activation script for your system, which can be found within the environment folder. For example, for bash/zsh:
source ~/.venvs/qiskit-dev/bin/activate
Upgrade pip within the environment to ensure Qiskit dependencies installed in the subsequent sections can be located for your system.
pip install -U pip
For Conda users, a new environment can be created as follows.
conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv
pip install -e .
পুল রিকোয়েস্ট#
আমরা কারো অংশগ্রহণ নিশ্চিত করার জন্য GitHub pull requests ব্যবহার করি।
সাধারণত প্রয়োজন না হলেও পুল রিকোয়েস্ট দেয়ার পূর্বে, আপনি যে ত্রুটি সংশোধন করছেন বা যে ফিচারটি নিয়ে কাজ করছেন সে সম্পর্কিত একটি নতুন ইস্যু খোলার মাধ্যমে কমিউনিটির সাথে একটি আলোচনায় অংশ নিতে পারেন। এর মাধ্যমে হয়তো আপনি নতুন কোনো ধারণা পেতে পারেন এবং সবাই মিলে ইস্যুটি কীভাবে কোডে বাস্তবায়ন করা যায় সে সম্পর্কে বিশদ আলোচনা করতে পারেন। এছাড়াও এর মাধ্যমে কমিউনিটি জানতে পারবে আপনি কী নিয়ে কাজ করছেন এবং প্রয়োজন হলে আপনার উল্লেখিত ইস্যু নম্বর থেকে অন্যান্য কমিউনিটি বা তার সদস্যদের কাছ থেকে আপনি সাহায্যও পেতে পারেন।
If you've written some code but need help finishing it, want to get initial feedback on it prior to finishing it, or want to share it and discuss prior to finishing the implementation, you can open a Draft pull request and prepend the title with the [WIP] tag (for Work In Progress). This will indicate to reviewers that the code in the PR isn't in its final state and will change. It also means that we will not merge the commit until it is finished. You or a reviewer can remove the [WIP] tag when the code is ready to be fully reviewed for merging.
Before marking your Pull Request as "ready for review" make sure you have followed the PR Checklist below. PRs that adhere to this list are more likely to get reviewed and merged in a timely manner.
Pull Request Checklist:#
You have followed the requirements in the CONTRIBUTING.md file for the specific repo you are contributing to.
All CI checks pass (it's recommended to run tests and lint checks locally before pushing).
New tests have been added for any new functionality that has been introduced.
The documentation has been updated accordingly for any new/modified functionality.
A release note has been added if the change has a user-facing impact.
Any superfluous comments or print statements have been removed.
All contributors have signed the অংশগ্রহণকারীর চুক্তিপত্র (কন্ট্রিবিউটর লাইসেন্স এগ্রিমেন্ট).
The PR has a concise and explanatory title (e.g.
Fixes Issue1234
is a bad title!).If the PR addresses an open issue the PR description includes the
fixes #issue-number
syntax to link the PR to that issue (you must use the exact phrasing in order for GitHub to automatically close the issue when the PR merges)
কোড পর্যালোচনা (রিভিউ)#
Code review is done in the open and is open to anyone. While only maintainers have access to merge commits, community feedback on pull requests is extremely valuable. It is also a good mechanism to learn about the code base.
Response times may vary for your PR, it is not unusual to wait a few weeks for a maintainer to review your work, due to other internal commitments. If you have been waiting over a week for a review on your PR feel free to tag the relevant maintainer in a comment to politely remind them to review your work.
Please be patient! Maintainers have a number of other priorities to focus on and so it may take some time for your work to get reviewed and merged. PRs that are in a good shape (i.e. following the Pull Request Checklist:) are easier for maintainers to review and more likely to get merged in a timely manner. Please also make sure to always be kind and respectful in your interactions with maintainers and other contributors, you can read the Qiskit Code of Conduct.
অংশগ্রহণকারীর চুক্তিপত্র (কন্ট্রিবিউটর লাইসেন্স এগ্রিমেন্ট)#
প্রকল্পে কোনো কোড প্রেরণ বা অংশগ্রহণ করার আগে, সকল অংশগ্রহণকারীকে একটি অংশগ্রহণকারীর চুক্তিপত্র (CLA) স্বাক্ষর করতে হবে। CLA স্বাক্ষর করার মাধ্যমে আপনি প্রত্যয়ন করবেন যে, আপনার সব কোড বা অবদানের রচয়িতা কেবল আপনি এবং আপনি Apache-2.0 চুক্তির শর্তসাপেক্ষে স্বাধীনভাবে অংশগ্রহন করছেন।
আপনি যখন Qiskit প্রকল্পে একটি নতুন পুল রিকোয়েস্ট তৈরি করবেন, তখন আপনি CLA স্বাক্ষর করেছেন কিনা তা স্বয়ংক্রিয়ভাবে নির্ণীত হবে। প্রয়োজন অনুসারে স্বয়ংক্রিয়ভাবে পুল রিকোয়েস্টে চুক্তি স্বাক্ষর করার জন্য একটি লিঙ্ক কমেন্ট বা মন্তব্য করা হবে। individual CLA বিবরণীটি (ডকুমেন্টেশন) পর্যালোচনা করার জন্য পিডিএফ আকারে দেয়া হলো।
নোট
যদি আপনার অংশগ্রহণ আপনার চাকরির অন্তর্ভুক্ত বা আপনার চাকরিদাতার মালিকানাভুক্ত হয় তবে আপনাকে একটি corporate CLA ও স্বাক্ষর করতে হবে এবং আমাদের কাছে এই <qiskit@us.ibm.com> ঠিকানায় ইমেইল করতে হবে।