গিথুব সংস্থার সংগ্রহস্থল, ইস্যু, একাধিক বিকাশকারী এবং ফোর্কিং - সেরা কর্মপ্রবাহের অনুশীলন


14

একটি অদ্ভুত শিরোনাম, হ্যাঁ, তবে আমার মনে হয় কভার করার জন্য আমি কিছুটা জায়গা পেয়েছি।

আমাদের কাছে ব্যক্তিগত সংগ্রহস্থল সহ গিথুবে একটি সংস্থার অ্যাকাউন্ট রয়েছে। আমরা GitHub এর নেটিভ সংস্করণ / পুল অনুরোধ বৈশিষ্ট্যের (খিঁচ অনুরোধ মূলত হয় ব্যবহার করতে চান ঠিক কি আমরা যতদূর চান কোড রিভিউ এবং বৈশিষ্ট্য আলোচনা হিসাবে)। আমরা ডিফঙ্ক্ট দ্বারা সরঞ্জামের হাবটি পেয়েছি যার মধ্যে বিদ্যমান সমস্যাটিকে টানা অনুরোধে রূপান্তর করতে সক্ষম হবার দুর্দান্ত বৈশিষ্ট্য রয়েছে এবং এটি আপনার বর্তমান শাখাটিকে স্বয়ংক্রিয়ভাবে যুক্ত করে।

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

সুতরাং আমার কয়েকটি প্রশ্ন আছে:

  1. এই ক্ষেত্রে কি কাঁটা-প্রতি-বিকাশকারী পদ্ধতির উপযুক্ত? দেখে মনে হচ্ছে এটি একটু ওভারকিল হতে পারে। আমি নিশ্চিত নই যে আমাদের প্রতিটি বিকাশকারীদের জন্য কাঁটাচামচ দরকার, যদি না আমরা এমন বিকাশকারীদের পরিচয় করি যাঁদের সরাসরি ধাক্কা অ্যাক্সেস নেই এবং তাদের সমস্ত কোড পর্যালোচনা প্রয়োজন না। কোন ক্ষেত্রে আমরা কেবল সেই বিকাশকারীদের জন্য একটি নীতি প্রতিষ্ঠা করতে চাই। সুতরাং, যা ভাল? একক ভাণ্ডারের সমস্ত বিকাশকারী, বা সবার জন্য কাঁটাচামচ?
  2. হাব সরঞ্জামটির সাথে কারও অভিজ্ঞতা আছে, বিশেষত: পুল-অনুরোধ বৈশিষ্ট্যটি? যদি আমরা একটি কাঁটা-প্রতি-বিকাশকারী (বা এমনকি কম-সুবিধাযুক্ত দেবগণের জন্যও) করি তবে কি হাবের পুল-অনুরোধ বৈশিষ্ট্যটি আপস্ট্রিম মাস্টার সংগ্রহস্থল (সংস্থার সংগ্রহস্থল?) থেকে পুল অনুরোধগুলি পরিচালনা করবে বা এর আলাদা আচরণ আছে?

সম্পাদনা করুন
আমি কিছু সমস্যা, কাঁটাচামচ, এবং অনুরোধগুলি টান দিয়ে কিছু পরীক্ষা করেছি এবং এটি পেয়েছি। আপনি যদি আপনার সংস্থার সংগ্রহস্থলে কোনও সমস্যা তৈরি করেন, তবে আপনার সংস্থা থেকে আপনার নিজস্ব গিথুব অ্যাকাউন্টে ভাণ্ডারটি কাঁটাচামচ করুন, কিছু পরিবর্তন করুন, আপনার কাঁটাচালকের মাস্টার শাখায় মার্জ করুন। আপনি চালানোর চেষ্টা করার সময় hub -i <issue #>আপনি একটি ত্রুটি পান User is not authorized to modify the issue,। সুতরাং, দৃশ্যত যে কাজের প্রবাহ কাজ করবে না।

উত্তর:


6

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

আপনার দলের স্কেল নির্ভর করে, আমার ধারণা। আমি একটি ছোট দলে কাজ করতাম যেখানে আমাদের কেবল একটি রেপো ছিল এবং বৈশিষ্ট্যগুলি সেই রেপোর মধ্যে তাদের নিজস্ব শাখা পেয়েছিল। এটি আমাদের পক্ষে ঠিক কাজ করেছে।

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


2

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

বিকাশকারী তার কোডটি মূল শাখায় পেতে চায় এবং এটি অন্তর্ভুক্তির জন্য অনুরোধ করে।

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

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


1

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

উত্স নিয়ন্ত্রণের একটি প্রধান বিষয় হ'ল আপনি দেখতে পারেন, ব্যাকআউট, বিপরীত ইত্যাদি। আপনার পরিস্থিতিতে একটি উচ্চ সংখ্যক কাঁটাচামচ এবং শাখা করা ওভারকিল আইএমএইচও।

আমি শাখাগুলি সংরক্ষণ করব যেমন: সংস্করণ আপগ্রেড, প্রযুক্তির একটি টুকরা পরিবর্তন করা, 3 মাসের জন্য একটি সাব মডুলেলে কাজ করা যা মূল ভিত্তির সাথে সামান্যই মিল থাকে।

আমি হয়ত কোনও সংস্থার মধ্যে কাঁটাচামচ করব না। সেই মোডটি ওপেন-সোর্স প্রকল্পগুলির পক্ষে আরও উপযুক্ত বলে মনে হয় যা প্রকৃতিতে অভ্যন্তরস্থদের চেয়ে আলাদা।

আমি আপনার ফোকাসটি পরীক্ষার এবং কোড পর্যালোচনায় স্যুইচ করব। লোকেরা কি পরীক্ষা লিখছেন? তারা কি ভালো? কোড পর্যালোচনা করা হয়?


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

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

বিটিডব্লু, ব্যক্তিগতভাবে আমি গিট ব্যবহার করি এবং এটি দেখতে পাই যে এটির একটি স্থানীয় সংগ্রহস্থল রয়েছে, যেমন সোভান যেখানে আপনি প্রত্যন্ত প্রত্যন্তে প্রতিশ্রুতিবদ্ধ (যেখানে কোনও ধাক্কা / টান নেই) বলতে স্থানীয়ভাবে প্রথমে স্থানীয়ভাবে কিছু পেতে আমাকে সহায়তা করে। এটি প্রস্তুত না হওয়া অবধি চূড়ান্ত ধাক্কা ছাড়াই আমি এখনও যুক্ত করতে এবং প্রতিশ্রুতিবদ্ধ করতে পারি।
জঙ্কি

আপনি যদি ক্লিয়ার কেস ডায়নামিক ভিউ না ব্যবহার করেন (যা আপনি যদি চেষ্টা করেছিলেন তবে আপনি জানেন যে পিটা ব্যবহার করা উচিত), আপনি সবকিছুর জন্য কৌতুক করছেন, কারণ প্রতিটি চেকআউট সত্যই একটি কাঁটাচামচ, কেবলমাত্র কেন্দ্রীয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থাতে থাকতে পারে না একাধিক সংশোধন বিকেন্দ্রীভূত এবং বিতরণ সিস্টেমে (গিটটি এক) এটি করতে পারে এবং এটি নিয়মিত কাঁটাচামচ।
জানু হুডেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.