উত্পন্ন ডকুমেন্টেশনগুলি কি একটি গিট সংগ্রহস্থলে সংরক্ষণ করা উচিত?


49

আপনি যখন jsdocs এর মতো সরঞ্জামগুলি ব্যবহার করেন , এটি আপনার কোডের মন্তব্যের উপর ভিত্তি করে আপনার কোডবেজে স্থির এইচটিএমএল ফাইল এবং এর স্টাইলগুলি তৈরি করে।

এই ফাইলগুলি কি গিট সংগ্রহস্থলে চেক করা উচিত বা তাদের .gitignore দিয়ে উপেক্ষা করা উচিত?


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

21
যদি ফাইলগুলি উত্পন্ন হয়, তবে সংজ্ঞা অনুসারে এগুলি উত্স নয় ।
ক্রাইলিস -হান ধর্মঘট-

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


7
তৃতীয় পক্ষের লাইব্রেরির গ্রাহক হিসাবে, আমি অনলাইনে ডকুমেন্টেশনবিহীন কোনও লাইব্রেরিটি 10 ​​বারের মধ্যে (রিপোজিটরির সাব-ফোল্ডারে, অথবা রেডমি থেকে লিঙ্কযুক্ত) দেখি, আমি 10 বার বার ক্লিক করে সেই লাইব্রেরিগুলি এড়িয়ে যাব । আমি লাইব্রেরিটি আমার প্রয়োজনীয়তা পূরণ করে কিনা তা দেখার জন্য আমি আধ ঘন্টার জন্য ডক্সিজেনের সাথে গোলমাল করব না।
আলেকজান্ডার

উত্তর:


131

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

সুতরাং এই ফাইলগুলি .gitignore দিয়ে উপেক্ষা করা উচিত।


4
তবে এটি বিল্ড সরঞ্জামগুলির সংস্করণ বা বিল্ড সরঞ্জামগুলির প্রাপ্যতার উপর নির্ভর করে (উদাহরণস্বরূপ কোনও বিল্ড সরঞ্জামের কিছু পুরানো সংস্করণ প্রয়োজনীয় কিছু ফাইল উত্পন্ন করতে)। আপনি কিভাবে এটি পরিচালনা করবেন? আপনি আপনার উত্তরে এটি সম্বোধন করতে পারেন?
পিটার মর্টেনসেন

27
@ পিটারমোরটেনসেন আপনার যদি বাল্ড টুলসের একটি বিশেষ সংস্করণ দিয়ে তৈরি একটি শিল্পকর্মের প্রয়োজন হয় তবে আপনার এটি প্রয়োজনীয় বিল্ড সরঞ্জামগুলির সংস্করণ দিয়ে তৈরি করুন। এ জাতীয় প্রয়োজন হয় হয় ক) নিজে আবিষ্কার করেছেন, এক্ষেত্রে আপনি নিজেরাই আছেন; খ) README এ নথিভুক্ত করা হয়েছে ("আপনার কাছে দুটি ডোজিজেনের নির্দিষ্ট সংস্করণ ইনস্টল করা দরকার ..."); গ) বিল্ড স্ক্রিপ্টগুলি নিয়ে কাজ করা (তারা উপলব্ধ বিল্ড সরঞ্জামগুলির সংস্করণগুলি পরীক্ষা করে এবং যথাযথভাবে কাজ করে)। যাই হোক না কেন, উত্স নিয়ন্ত্রণ সোর্সগুলির জন্য, কারু শিল্প তৈরির জন্য নয়।
জোকার_ভিডি

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

4
@ আলেকজান্দার আপনি কি রেপোতে নির্মিত বাইনারি লাগিয়ে দেবেন? ডকুমেন্টেশন নির্মিত হয়। আপনি বিল্ট ডকুমেন্টেশন নিয়ে যান এবং এটিকে কোথাও অ্যাক্সেসযোগ্য করে তোলেন।
1201 প্রোগ্রাম অ্যালার্ম

5
@ 1201 প্রোগ্রাম অ্যালার্ম "আপনি কি রেপোতে অন্তর্নির্মিত বাইনারি রাখবেন?" নাহ, কারণ ডকুমেন্টেশনের তুলনায় গিটারহাবের আশেপাশে ব্রাউজ করা লোকের কাছে একটি বিল্ট বাইনারি কম আপ-ফ্রন্ট মান থাকে। "আপনি বিল্ট ডকুমেন্টেশন নেন এবং এটিকে কোথাও অ্যাক্সেসযোগ্য করে তোলেন।" যতক্ষণ না এটি সর্বজনীনভাবে হোস্ট করা হয়, দৃশ্যমানভাবে সংযুক্ত থাকে, তবে হ্যাঁ দুর্দান্ত। এটি সম্ভবত সেরা কেস।
আলেকজান্ডার

23

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

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

@ কার্ট সিম্পসন: সমস্ত সফ্টওয়্যার প্রয়োজনীয়তার সাথে ডকুমেন্টেড থাকা আমার অনেক জায়গায় দেখা থেকে অনেক ভাল।


7
বিল্ড করার জন্য কারও কী সফ্টওয়্যার দরকার তা নথিবদ্ধ করবেন না (বা কমপক্ষে কেবল ডকুমেন্ট করবেন না ): বিল্ড স্ক্রিপ্টটি ব্যবহারকারীকে কী অনুপস্থিত তা বলুন বা এমনকি যুক্তিযুক্ত হলে নিজেই এটি ইনস্টল করুন। আমার रिपোসের বেশিরভাগ ক্ষেত্রে কোনও অর্ধপথ সক্ষম বিকাশকারী কেবল চালাতে পারেন ./Testএবং একটি বিল্ড পেতে পারেন বা একটি বিল্ড পেতে তার কী করা উচিত তা সম্পর্কে ভাল তথ্য পেতে পারেন।
কর্ট জে সাম্পসন

5
আমি উল্লেখ করি না যে উত্সাহিত ডকুমেন্টেশনগুলি গিটের মধ্যে রাখা আপনার নির্দিষ্ট ক্ষেত্রে ভাল হতে পারে। আমাদের কারুশিল্প এবং সংরক্ষণাগারগুলি এ কারণেই।
সুলতান

এটি আপনার নিয়ম এবং এটি একটি ভাল নিয়ম এবং আমি এটি পছন্দ করি। তবে অন্যরা তাদের নিজস্ব বিধি তৈরি করতে পারে।
এমরি

আপনার মেশিনে কোনও বিল্ড বোতাম না থাকায় আপনি "বিল্ড কমান্ড চালান" বলে মনে করছেন। ... আপনি যদি না আশা করেন যে পুরো বিল্ডটি কোনও আইডিইর সাথে একীভূত হবে, যা সম্পূর্ণ অযৌক্তিক।
jpmc26

@ jpmc26 আমি সম্পূর্ণ বিল্ড আইডিইতে সংহত করা সম্পূর্ণ যুক্তিসঙ্গত বলে মনে করি। আমার মেশিনে বিল্ড বোতামটি কমান্ড-বি।
gnasher729 21

14

এই ফাইলগুলি চেক ইন করা উচিত নয় কারণ এগুলি উত্পন্ন করার ডেটা ইতিমধ্যে উপস্থিত রয়েছে। আপনি দুবার ডেটা সঞ্চয় করতে চান না (DRY)।

আপনার যদি একটি সিআই সিস্টেম থাকে, আপনি সম্ভবত এটি ডকগুলি তৈরি করতে এবং সেগুলি সংরক্ষণ করতে / ওয়েব সার্ভারে প্রকাশ করতে পারেন।


4

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

তবে বেশিরভাগ ক্ষেত্রে তাদের উত্স নিয়ন্ত্রণে রাখার দরকার নেই, যেমন অন্যান্য উত্তরগুলি ব্যাখ্যা করেছে।


1
এর জন্য কমিটস তৈরি করতে ব্যবহৃত প্রতিটি রেপোতে প্রাক-কমিট হুকের প্রয়োজন হবে। কারণ ডকুমেন্টেশন জেনারেশন প্রক্রিয়াটি যদি পুরোপুরি স্বয়ংক্রিয় না হয় তবে আপনি এমন কমিটগুলি পাবেন যেগুলিতে কোডের সাথে ডকুমেন্টেশন আউট-সিঙ্ক হয়েছে। এবং এই ভাঙ্গা প্রতিশ্রুতিগুলি অননুমোদিত ডকুমেন্টেশনের চেয়ে বোধগম্যতার ক্ষতি করবে।
মাস্টার

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

3

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


2

এটি আপনার স্থাপনার প্রক্রিয়ার উপর নির্ভর করে। কিন্তু উত্পন্ন ফাইলগুলিকে একটি সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ করা ব্যতিক্রম এবং যদি সম্ভব হয় তবে এড়ানো উচিত। যদি আপনি হ্যাঁ দিয়ে নিম্নলিখিত দুটি প্রশ্নের উত্তর দিতে পারেন তবে আপনার ডক্সে পরীক্ষা করা একটি বৈধ বিকল্প হতে পারে:

  • ডক্স কি উত্পাদনের জন্য প্রয়োজনীয়?
  • আপনার স্থাপনার সিস্টেমে কী ডক্স তৈরির জন্য প্রয়োজনীয় সরঞ্জামের অভাব রয়েছে?

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


1
একটি উত্পন্ন শাখায় উত্পন্ন ফাইল প্রতিশ্রুতিবদ্ধ প্রতিটি পরিস্থিতিতে কার্যকর হয় না, তবে বিশেষত মার্কডাউন থেকে তৈরি স্ট্যাটিক ওয়েব সাইটগুলির মতো জিনিসগুলির সাথে একটি সংখ্যা রয়েছে যেখানে এটি একটি দুর্দান্ত সমাধান। আমি প্রায়শই যথেষ্ট করি যে বিল্ড প্রক্রিয়াটির অংশ হিসাবে সহজেই এই ধরনের কমিটগুলি উত্পন্ন করার জন্য আমি একটি বিশেষ সরঞ্জাম তৈরি করেছি।
কর্ট জে সাম্পসন

2

এটা নির্ভর করে. যদি সেই দস্তাবেজগুলি:

  • সংগ্রহস্থলের অংশ হওয়া দরকার, এর মতো readme.md, তারপরে এগুলি গিট রেপোতে রাখাই বেশি পছন্দ preferred কারণ সেই পরিস্থিতিগুলিকে স্বয়ংক্রিয় পদ্ধতিতে পরিচালনা করা মুশকিল হতে পারে।

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

  • এগুলি তৈরি করতে প্রচুর সময় নেয়, তবে সেগুলি রাখা ন্যায়সঙ্গত।

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

  • সাধারণ দর্শকদের জন্য দেখার উদ্দেশ্যে এবং এর পরিবর্তনগুলি / বিবর্তনের ইতিহাস দেখাতে হবে, পূর্ববর্তী ডক সংস্করণগুলিকে কমিট করা এবং আগেরটির সাথে যুক্ত নতুন তৈরি বা প্রতিশ্রুতিবদ্ধ রাখা আরও সহজ হতে পারে। সমর্থনীয়।

  • সমস্ত দলকে কমিট করার জন্য একটি নির্দিষ্ট স্বীকৃত কারণ রয়েছে, তবে তাদের গিট রেপোতে রাখাই ন্যায়সঙ্গত। (আমরা আপনার প্রসঙ্গটি জানি না, আপনি এবং আপনার দল এটি করে)

অন্য কোনও পরিস্থিতিতে, এটি নিরাপদে উপেক্ষা করা উচিত।

তবে, যদি তাদের গিট রেপোতে রাখা ন্যায়সঙ্গত হয় তবে আপনার দল যে আরও বড় সমস্যার মুখোমুখি হচ্ছে তার লক্ষণ হতে পারে। (সিআই সিস্টেম না থাকা বা অনুরূপ, ভয়াবহ পারফরম্যান্স সমস্যা, নির্মাণের সময় ডাউনটাইমের মুখোমুখি হওয়া ইত্যাদি)


1

সংস্করণ নিয়ন্ত্রণের নীতি হিসাবে, কেবলমাত্র "প্রাথমিক অবজেক্টগুলি" একটি সংগ্রহস্থলে সংরক্ষণ করা উচিত, "উত্পন্ন বস্তু" নয়।

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

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

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