আমি একটি বাগ ঠিক করতে চাই আমি কোথা থেকে শুরু করব?


47

যদিও আমি পেশাদার প্রোগ্রামার নই, আমি একটি বা দুটি প্রোগ্রাম লিখেছি। তবুও, আজকাল প্রতিটি প্রকৌশলী এবং বিজ্ঞানী কিছুটা প্রোগ্রামও শিখেন এবং যেমনটি আমি পাইথন, সি এবং ম্যাটল্যাবে প্রোগ্রাম লিখতে অভ্যস্ত। এখন আমি উবুন্টু এবং তার দুর্দান্ত লোকদের কিছুটা ফিরিয়ে দিতে এবং একটি বাগ ঠিক করতে চাই!

আমি কামড়ানোর প্রচারের তালিকার দিকে নজর রেখেছি এবং তাদের খুঁজে বের করতে হয়েছিল যে তাদের বেশিরভাগই আমার পক্ষে ঠিক করা এতটা সহজ নয় কারণ আমি সন্দেহ করি যে বিষয়টি নিয়ে আসার জন্য তাদের অনেক সময় প্রয়োজন, এবং আমার তা নেই do এখনও আমি আবিষ্কৃত এই এক এবং এটি সামলানো এবং আমাকে একটি শীতল বৈশিষ্ট্য মত দেখায়।

যদিও আমি এর আগে কখনও প্যাচ লিখিনি বা বন্যদের কাছে কোনও প্রোগ্রাম প্রকাশ করি নি, কোথা থেকে শুরু করব তা আমার কোনও ধারণা নেই। এই সমস্যাটি মোকাবেলায় আমার প্রথম পদক্ষেপটি কী হওয়া উচিত?

নীচের লাইন: আমি কোথায় এবং কীভাবে সেই লোকটিকে ঠিক করতে শুরু করব?


1
তুমি আগে কি করতে? আপনি সংস্করণ নিয়ন্ত্রণ সিস্টেমের সাথে পরিচিত? প্যাকেজিং অনুশীলনে?
পাইগাব্রিয়েল

না, তার সাথে এখনও পরিচিত না! পরিবর্তনের বিষয় ...
ইনগো

উত্তর:


31

এই প্রশ্নের উত্তর দেওয়া দীর্ঘ এবং জটিল হয়ে উঠতে পারে, সুতরাং আমি আপনাকে এখানে পুনরায় রিশেশিংয়ের পরিবর্তে উপলভ্য সংস্থানগুলিতে নির্দেশ করব।

নথিপত্র

  1. উবুন্টু বিকাশের জন্য সেট আপ করা হচ্ছে
  2. কীভাবে বাগগুলি স্থির করবেন

টিউটোরিয়াল

আমরা আপনার মতো লোকদের সহায়তা করার জন্য চক্র জুড়ে ইভেন্টগুলি পরিচালনা করি, বিশেষত আমরা আইআরসি-তে উবুন্টু বিকাশকারী সপ্তাহটি চালাই , এটি একটি লাইভ টিউটোরিয়াল এবং প্রশ্নোত্তর কর্মশালা। আপনি যদি যোগ দিতে চান তবে ফেব্রুয়ারির শেষে একটি আসবে!

আপনাকে ধারণা দেওয়ার জন্য এখানে একটি পূর্বের অধিবেশন থেকে দুটি লগ দেওয়া হয়েছে:

সুযোগগুলি খুঁজে পাওয়ার জায়গা

  • ফসল কাটা - এই সরঞ্জামটি প্যাচগুলির জন্য লঞ্চপ্যাডের সমস্ত প্যাচ এবং প্যাকেজগুলির মধ্যে দিয়ে যায় (এবং এমনকি অন্যান্য ডিস্ট্রোগুলিতেও দেখে) এর মধ্যে অনেকগুলি ছিনিয়ে নেওয়া, প্রয়োগ করা, পরীক্ষা করা এবং উবুন্টুতে স্থির করা যায় এবং তারপরে প্রবাহে প্রেরণ করা যায়।
  • ক্লিনসুইপ - লঞ্চপ্যাডে বসে থাকা প্যাচগুলির তালিকা যে কেউ বাগ রিপোর্টের সাথে সংযুক্ত করেছেন। এগুলি কার্যকর হতে পারে বা নাও হতে পারে, সেগুলি এখনও তাকাতে হবে।

সাহায্য পাচ্ছেন

মেলিং তালিকায় MOTU এর সাথে যোগাযোগ করা বা আইআরসি আপনি যে স্বতন্ত্র সমস্যাগুলির মধ্যে চলেছেন তার জন্য সহায়তা পাওয়ার একটি ভাল উপায়:

প্রতিক্রিয়া

আমরা যতটা পারি সহজেই এই ডকুমেন্টেশনটি পুনর্নির্মাণে অনেক সময় ব্যয় করেছি, যদি আপনি নিজের অভিজ্ঞতার বিষয়ে নোট নেন এবং কীভাবে আমরা এই জিনিসগুলিকে উন্নত করতে পারি তবে এটি কীভাবে লোকের জন্য কম স্তন্যপান করা যায় তা জানার পক্ষে খুব কার্যকর হবে be আপনি.


19

জোর্সের সাধারণীকৃত উত্তরটি উবুন্টু বিকাশে ঝাঁপ দেওয়ার দুর্দান্ত ভূমিকা, তবে আসুন আপনার নির্দিষ্ট সমস্যাটির দিকে একটু ঘনিষ্ট হওয়ার চেষ্টা করি ...

অ্যাপোর্টের মূল উজানের বিকাশকারী এবং উবুন্টু রক্ষণাবেক্ষণকারী এক এবং অভিন্ন। এটি আপনার জন্য কিছুটা সহজ করে তোলে। প্যাকেজিং এবং প্যাচ সিস্টেমগুলি সম্পর্কে জানার পরিবর্তে এখানকার সহজতম পথটি সরাসরি প্রবাহের কোডটিতে সরাসরি কাজ করা।

অ্যাপোর্টের বিকাশ লঞ্চপ্যাডে হোস্ট করা হয় । এটি এর উত্স কোড পরিচালনা করতে বাজার বিতরণিত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করে। আপনার বাগ ঠিক করার দিকে প্রথম পদক্ষেপটি উত্সটি দখল করা। আপনি যদি আগে বাজার ব্যবহার না করে থাকেন তবে পাঁচ মিনিটের টিউটোরিয়ালে বাজার শুরু করার জন্য ভাল জায়গা।

এর সাথে বাজার ইনস্টল করুন:

sudo apt-get install bzr

অ্যাপোর্টের উত্স কোডটি টানুন:

bzr branch lp:apport

এখন আপনি হ্যাকিং শুরু করতে পারেন। বেশিরভাগ ভিসিএসের মতো, বাজারের সাথে কাজ করার সময়, প্রতি প্রতিশ্রুতিবদ্ধতার জন্য কেবল একটি পরিবর্তন করা ভাল ধারণা। আপনার প্রতিশ্রুতি বার্তাগুলি তথ্যপূর্ণও করা উচিত। এটি আপনার পরিবর্তনগুলি পর্যালোচনা করা আরও সহজ করে তোলে। আপনি যখন প্রথম প্রতিশ্রুতিবদ্ধ হতে প্রস্তুত হন, চালান:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

আপনার বাগ স্থির না হওয়া পর্যন্ত আপনি সন্তুষ্ট না হওয়া অবধি পরিবর্তন এবং কমিট চালিয়ে যান। আপনার শেষ প্রতিশ্রুতি দিয়ে, আপনি --fixes lp:<bug_number>কমিট কম্যান্ডে যুক্ত করে বাগ সংশোধন হিসাবে ট্যাগ করতে পারেন । এখন আপনি পর্যালোচনা এবং অন্তর্ভুক্তির জন্য আপনার পরিবর্তনগুলি জমা দেওয়ার জন্য প্রস্তুত।

প্রথমত, এটি সর্বজনীনভাবে উপলভ্য করার জন্য আপনাকে এটি লঞ্চপ্যাডে ঠেলাতে হবে:

bzr push lp:~<launchpad_username>/apport/<branch_name>

আপনার শাখাটি এখন পাওয়া যাবে:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

bzr lp-openব্রাঞ্চে দৌড়ানোর ফলে ব্রাউজারে সেই অবস্থানটি খুলবে।

এখন আমরা মার্জ করার প্রস্তাব দিতে চাই। সেই পৃষ্ঠাতে, "মার্জ করার জন্য প্রস্তাব করুন" নির্বাচন করুন।

মার্জ করার জন্য প্রস্তাব

পরবর্তী পৃষ্ঠায়, আপনার লক্ষ্য শাখাটি নির্বাচন করুন এবং আপনার পরিবর্তনগুলির একটি ওভারভিউ দিন।

মার্জ বর্ণনা

আপনার কাছে এখন সক্রিয় একত্রীকরণ প্রস্তাব থাকবে।

সক্রিয় পর্যালোচনা

রক্ষণাবেক্ষণকারীরা আপনার পরিবর্তনগুলি পর্যালোচনা করবে। যদি তারা উপযুক্ত হয় তবে সেগুলি একীভূত হবে এবং পরবর্তী প্রকাশে উপলভ্য হবে। বিকল্পভাবে, প্রস্তাবটি "নিডস ওয়ার্কস" এ সেট করা যেতে পারে এবং রক্ষণাবেক্ষণকারীরা আপনার সাথে মার্জ করার আগে আরও অতিরিক্ত পরিবর্তনগুলি নিয়ে আলোচনা করবেন। যদি এটি ঘটে থাকে তবে দয়া করে এটিকে আপনার কাজের কোনও প্রকারের ব্যক্তিগত প্রত্যাখ্যান হিসাবে গ্রহণ করবেন না। প্রথমবারের মতো কোনও নতুন প্রকল্পে অবদান রাখার সময়, কোডিং স্টাইলের মতো প্রায়শই ছোট জিনিস থাকে যা আপনি হয়ত জানেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.