আমি একজন প্রোগ্রামার না হয়ে আমি একাডেমিক এবং আমার গবেষণাকে সমর্থন করার জন্য আমার নিজের ব্যবহারের জন্য পাইথন প্রোগ্রাম লেখার বহু বছরের অভিজ্ঞতা আছে। আমার সর্বশেষ প্রকল্পটি আমার মতো আরও অনেকের পক্ষে কার্যকর হতে পারে এবং আমি এটিকে একটি মুক্ত-উত্স পাইথন লাইব্রেরি হিসাবে প্রকাশ করার কথা ভাবছি।
তবে, মনে হচ্ছে যে কোনও কার্যনির্বাহী ব্যক্তিগত প্রকল্প থেকে একটি লাইব্রেরিতে যেতে ইচ্ছুক হওয়ার জন্য বেশ কিছু প্রতিবন্ধকতা রয়েছে যা অন্যদের দ্বারা ইনস্টল করা যায় এবং যন্ত্রণাহীনভাবে ব্যবহার করা যেতে পারে। এই প্রশ্নটি সর্বজনীন প্রকাশের দিকে কাজ শুরু করার জন্য আমার নেওয়া প্রথম পদক্ষেপ সম্পর্কে।
বর্তমানে, আমার কাছে একটি একক গিট রিপোজিটরি রয়েছে যাতে আমার কোড রয়েছে যা লাইব্রেরিটি পাশাপাশি গ্রন্থাগার ব্যবহার করে এবং কিছু বিঘ্নিত হওয়ার ক্ষেত্রে আমি জরুরি অবস্থার পূর্বে বোতাম হিসাবে গিট ব্যবহার করি। এই সমস্ত কিছুই একক ব্যবহারকারীর পক্ষে ভাল কাজ করে তবে আমি এটি প্রকাশ করতে চাইলে স্পষ্টতই উপযুক্ত নয়। যেখানে আমি শেষ করতে চাই তা হ'ল আমার গ্রন্থাগারটি একটি পৃথক ভান্ডারে রয়েছে এবং অন্যরা এটি ব্যবহার করে ইনস্টল করতে পারেন pip
এবং এর একটি স্থিতিশীল এপিআই রয়েছে।
সেটআপটুল ইত্যাদি ব্যবহার করা শিখতে আমি একবার এটি প্রকাশ করতে চাইার পর্যায়ে পৌঁছানো সম্ভবত এতটা কঠিন নয় - আমার সমস্যাটি জানার ক্ষেত্রে আমি কীভাবে এই পয়েন্টে পৌঁছানোর জন্য কাজ করা উচিত।
সুতরাং আমার প্রশ্নটি হল, জনসাধারণের ব্যবহারের জন্য পাইথন গ্রন্থাগার প্রকল্পের প্রস্তুতি শুরু করতে প্রথমে কোন পদক্ষেপ নেওয়া উচিত? গ্রন্থাগারের প্রকাশের জন্য জনসাধারণের পক্ষে কাজ শুরু করার জন্য কীভাবে আমার ডিরেক্টরি কাঠামো, গিট সংগ্রহস্থল ইত্যাদি পুনর্গঠন করা উচিত?
আরও সাধারণভাবে, যদি প্রথমবারের জন্য এটির চেষ্টা করার সময় সহায়তার জন্য পরিচিত এমন সংস্থানগুলি থাকে তবে এটি খুব সহায়ক হবে। ইত্যাদি সর্বোত্তম অনুশীলন এবং ভুল এড়াতে ভুলের দিকে নির্দেশকারীগুলিও খুব সহায়ক হবে।
কিছু স্পষ্টতা: বর্তমান উত্তরগুলি "আমি কীভাবে আমার পাইথন গ্রন্থাগারটিকে অন্যের ব্যবহারের জন্য ভাল করে তুলতে পারি?" এর পাতায় একটি প্রশ্নকে সম্বোধন করছে? এটি দরকারী, তবে আমি যে প্রশ্নটি করতে চেয়েছিলাম তা থেকে এটি আলাদা।
আমি বর্তমানে আমার প্রকল্পটি প্রকাশের দিকে দীর্ঘ যাত্রার শুরুতে আছি । আমার বাস্তবায়নের মূলটি কাজ করে (এবং সত্যই ভাল কাজ করে) তবে আমার আগে যে পরিমাণ কাজ হয়েছে তাতে আমি অভিভূত বোধ করছি এবং কীভাবে প্রক্রিয়াটি নেভিগেট করতে হবে তার জন্য গাইডেন্স খুঁজছি। উদাহরণ স্বরূপ:
আমার লাইব্রেরি কোডটি বর্তমানে এটি ব্যবহার করে আমার নিজস্ব ডোমেন-নির্দিষ্ট কোডের সাথে সংযুক্ত। এটি একটি সাবফোল্ডারে বাস করে এবং একই গিট সংগ্রহস্থল ভাগ করে। অবশেষে, এটি একটি স্ট্যান্ড-একা লাইব্রেরি তৈরি করে এটির নিজস্ব সংগ্রহস্থল স্থাপন করা দরকার, তবে আমি এটি করতে থাকি কারণ এটি কীভাবে করব তা আমি জানি না। (না কীভাবে 'ডেভলপমেন্ট মোডে কোনও গ্রন্থাগার ইনস্টল করবেন যাতে আমি এখনও এটি সম্পাদনা করতে পারি না, বা কীভাবে দুটি গিট রেপো সিঙ্কে রাখব))
আমার ডকাস্ট্রিংগুলি সংশ্লেষিত, কারণ আমি জানি যে শেষ পর্যন্ত আমাকে স্পিনক্স বা অন্য কোনও সরঞ্জাম ব্যবহার করতে হবে। তবে এই সরঞ্জামগুলি শিখতে সহজ বলে মনে হচ্ছে না, তাই এটি একটি বড় উপ-প্রকল্পে পরিণত হয় এবং আমি এটিকে বন্ধ করে দিই।
এটি প্যাকেজ করতে এবং নির্ভরতাগুলি ট্র্যাক করার জন্য আমাকে সেটআপলগুলি বা অন্য কোনও সরঞ্জাম ব্যবহার করতে শিখতে হবে, যা বেশ জটিল। আমার এখনই এটি করা দরকার কিনা তা আমি নিশ্চিত নই এবং ডকুমেন্টেশনটি কোনও নতুন ব্যবহারকারীর জন্য পরম ধাঁধা, তাই আমি পরে এটি করার সিদ্ধান্ত নিই।
আমাকে কখনও সিস্টেমেটিক টেস্টিং করতে হয়নি, তবে আমি অবশ্যই এই প্রকল্পের জন্য করব, সুতরাং আমার প্রকল্পের জন্য কোন পদ্ধতিটি সঠিক তা জানতে আমি (i) পরীক্ষার বিষয়ে যথেষ্ট শিখতে হবে; (ii) আমার নির্বাচিত পদ্ধতিটির জন্য কী কী সরঞ্জামগুলি উপলভ্য তা শিখুন; (iii) আমার নির্বাচিত সরঞ্জামটি ব্যবহার করতে শিখুন; (iv) আমার প্রকল্পের জন্য পরীক্ষা স্যুট ইত্যাদি বাস্তবায়ন করুন। এটি নিজেই একটি প্রকল্প।
আমার পাশাপাশি অন্যান্য জিনিসও থাকতে পারে। উদাহরণস্বরূপ, জোনারশপে একটি সহায়ক লিঙ্ক পোস্ট করেছেন যাতে গিট-ফ্লো, টক্স, ট্র্যাভিসিসিআই, ভার্চুয়ালেনভ এবং কুকি কাটারের উল্লেখ রয়েছে, যার কোনওটিই আমি আগে শুনিনি। (পোস্টটি ২০১৩ সালের, সুতরাং এখনও কতটুকু বর্তমান রয়েছে তা জানতে আমাকেও কিছু কাজ করতে হবে))
আপনি যখন এই সমস্তগুলি একসাথে রাখেন এটি একটি বিশাল পরিমাণের কাজ, তবে আমি নিশ্চিত যে আমি যদি এটিকে দূরে সরিয়ে রাখি তবে আমি এগুলি সম্পন্ন করতে পারব এবং আমি তাড়াহুড়ো করব না। আমার সমস্যাটি হ'ল এটি কীভাবে পরিচালনাযোগ্য পদক্ষেপগুলিতে একবারে একবারে করা যায় তা ভাঙ্গতে হয়।
অন্য কথায়, আমি জিজ্ঞাসা করছি অবশেষে একটি পুনঃনির্মাণযোগ্য পণ্য পৌঁছানোর জন্য, আমি এখন নিতে পারি সবচেয়ে গুরুত্বপূর্ণ কংক্রিট পদক্ষেপগুলি। আমার যদি একটি বিনামূল্যে উইকএন্ড হয়, তবে এইগুলির মধ্যে কোনটির দিকে মনোযোগ দেওয়া উচিত? অন্যদের কাছ থেকে বিচ্ছিন্নভাবে কোন (যদি থাকে) করা যায়, যাতে পুরো জিনিসটি না করেই আমি কমপক্ষে একটি পদক্ষেপ নিতে পারি? এই জিনিসগুলি শেখার সর্বাধিক দক্ষ উপায় কোনটি যাতে আমি নিজেও প্রকল্পটিতে মনোযোগ দেওয়ার জন্য সময় পাই? (মনে রাখবেন যে এগুলি সবই মূলত একটি শখের প্রকল্প, আমার কাজ নয়)) এর মধ্যে এমন কি এমন কিছু আছে যা আমার আসলে করার দরকার নেই , এভাবে নিজেকে বিপুল পরিমাণ সময় এবং প্রচেষ্টা বাঁচাতে হবে?
সমস্ত উত্তর ব্যাপকভাবে প্রশংসা করা হয়, তবে আমি বিশেষত উত্তরগুলিকে স্বাগত জানাব যা আধুনিক পাইথনের বিকাশের নির্দিষ্ট উল্লেখ সহ এই প্রকল্প পরিচালনার দিকগুলিতে আলোকপাত করে।