মডিউল বিকাশের জন্য সংস্করণ নিয়ন্ত্রণ


22

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

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

আমি বর্তমানে যা করছি তা এটি আমার সাইটের সংগ্রহস্থলের অভ্যন্তরে বিকাশ করছে এবং শীঘ্রই এটিকে পৃথক সংগ্রহস্থলে পরিণত করার পরিকল্পনা করছি। এই মুহুর্তে, আমি সম্ভবত যা করব তা হ'ল:

  • মোডম্যান ব্যবহার করে একটি পৃথক মডিউল সংগ্রহস্থলের মধ্যে আমার স্থানীয় পরিবেশে তৈরি করুন
  • আমি কোড স্থাপনের জন্য প্রস্তুত হলে সাইট ভান্ডারগুলিতে পরিবর্তনগুলি অনুলিপি করুন

আশা করি আরও ভাল উপায় আছে?


আপনি কি সুরকার চেষ্টা করেছিলেন?
ফ্লোরিনেলচিস

আমি এটির সাথে এক পর্যায়ে কিছুটা খেলেছি তবে এটি গুরুত্ব সহকারে ব্যবহার করি নি। যদি আপনি এটা পছন্দ না?
কালেঞ্জর্ডান

হ্যাঁ, বিনয়ের লন্ডনে সাম্প্রতিক ম্যাজেন্টো মিটআপে সুরকার সম্পর্কে একটি উপস্থাপনা ছিল। এটি ব্যবহারের ক্ষেত্রে কেস অবকাঠামো (একক ওয়েব সার্ভার, মাল্টি ওয়েব সার্ভার) থেকে আলাদা। পছন্দ উপর নির্ভর করে।
ফ্লোরিনেলচিস

উত্তর:


16

আমাদের কয়েকটি মডিউল রয়েছে যেখানে আমরা এটি করেছি এবং আমরা মূলত যা করেছি তা হ'ল:

  • মডিউলটির জন্য একটি গিট রেপো সেটআপ করুন।
  • উত্পাদন সাইটের কোডবেজে এই মডিউলটি স্থাপন করুন এবং এর সাথে সমস্ত কিছু প্রতিশ্রুতিবদ্ধ:
    • মোডম্যান দ্বারা নির্মিত নরম লিঙ্কগুলি
    • .modman ডিরেক্টরিতে ক্লোনযুক্ত মডিউল সংগ্রহস্থল রয়েছে
  • এটি অন্য সংস্করণে এবং / অথবা দেব পরিবেশে ডেভ এবং পরীক্ষার জন্য "স্থাপন" করতে মোডম্যান ব্যবহার করুন।

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

আপডেট: আমি যখন এটি প্রথম লিখেছিলাম তখন আমি আমার উত্তরে আমলে নিতে ব্যর্থ হয়েছি যে গিট (সাব) মডিউলগুলিকে কোনও সংগ্রহশালার প্রতিশ্রুতিবদ্ধ হতে দেয় না, এই ক্ষেত্রে "সমস্ত কিছু করার জন্য" ধরণের কিছু বিস্তৃত প্রয়োজন!

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

সুতরাং এখানে যায়…

  1. আপনি যদি প্রোডাকশন সাইটের কোড রাখতে এসভিএন ব্যবহার করে থাকেন তবে সাবভারশনটির (কার্যত) সাব-মডিউলগুলির কোনও ধারণা নেই বলে আপনার কোনও সমস্যা হবে না। কিছু মনে করবে না।

  2. আপনি যদি প্রোডাক্ট সাইটের কোডের জন্য গিট ব্যবহার করছেন, আপনাকে সাইটের কোড সংগ্রহস্থলটিতে "সমস্ত কিছু করতে" সাব-মডিউলগুলি ব্যবহার করতে হবে। মোডম্যান ব্যবহারের পরে এরকম কিছু ক্লোন করতে:

    modman clone ssh://git@bitbucket.org/<user>/<repo>.git

    আপনি এটিকে এর মতো একটি উপ-মডিউল হিসাবে যুক্ত করতে চাইবেন:

    git submodule add ssh://git@bitbucket.org/<user>/<repo>.git .modman/<repo>

    একবার আপনি এটি সম্পন্ন করার পরে, আপনার সূচিতে .modman ডিরেক্টরি এবং .gitmodules ফাইল যুক্ত করতে এবং এটি প্রতিশ্রুতিবদ্ধ করতে সক্ষম হওয়া উচিত।

    মোডম্যানের মাধ্যমে ইনস্টল করা এই মডিউলগুলি ব্যবহার করে এমন সংগ্রহস্থলের ক্লোনিংয়ের পরে, কেবল সাব সাবমডিউলগুলি আপডেট করুন এবং আপডেট করুন:

    git submodule init
    git submodule update

PS আমি এখন সমস্ত নতুন প্রকল্পে গিটকে ফুলটাইম ব্যবহার করি, সুতরাং আশা করি এই তদারকি আর হবে না। দুক্ষিত বন্ধুরা. ;)


বাহ যে দুর্দান্ত লাগছে। যে একটি স্পিন দিতে যাচ্ছে।
কালেঞ্জর্ডান

আপনি কি গিট মধ্যে submodules বিবেচনা করেছেন?
ফ্লোরিনেলচিস

সাবমডিউলগুলি সমস্ত কিছু একটি ডিরেক্টরিতে থাকা প্রয়োজন। মোডম্যান প্রয়োজনীয়ভাবে সমস্ত কিছুর জন্য নরম-লিঙ্ক তৈরি করে, এটি সমস্ত ডিয়ার কাঠামো জুড়ে ছড়িয়ে দেয়।
ডেভিডালগার 14'13

আপনি যখন মোডম্যান ডেটা সহ সমস্ত কিছু করার কথা বলছেন, আপনি কি প্রকল্প ডিরেক্টরি কাঠামোর মধ্যে থাকা সিমলিংকগুলি প্রতিশ্রুতিবদ্ধ করতে চান? আমি যখন git add -Aযা পাই তা এখানে: monosnap.com/image/X1EoGyK12UQfYDUqA9hvpUUq মোডম্যান deployকমান্ড ব্যবহার করে কমান্ডের চেয়ে আলাদা কিছু করা যায় না clone- এটি কেবল ফাইলগুলিকে সিমলিংক করে (যদিও এটি কাজ করার জন্য ভিসিএসের প্রয়োজন হয় না) ।
kalenjordan

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

7

মনে হচ্ছে বর্তমান সম্মেলনটি এর জন্য সমর্থন সরবরাহ করবে:

ডিরেক্টরি কাঠামো হিসাবে, এটি ন্যূনতম এবং সর্বনিম্ন মডিউলটি কমিউনিটি কোড পুলে ইনস্টল করা আছে।

একটি খালি ন্যূনতম প্রস্তাবিত ডিরেক্টরি কাঠামোটি হ'ল:

.
└── app
    ├── code
       └── community
           └── YourCompany
               └── YourModule
                   ├── Block
                   ├── Model
                      └── Observer.php
                   └── etc
                       └── config.xml
    ├── design
       └── frontend
           └── base
               └── default
                   ├── layout
                      └── module.xml
                   └── template
                       └── yourmodule
    └── etc
        └── modules
            └── YourCompany_YourModule.xml

/চ্ছিক / সুন্দর-থেকে-আছে:

  • বর্ণনা, কিছু স্ক্রিন শট এবং কিছু বুলেটযুক্ত বৈশিষ্ট্য সহ গিথুব অবতরণের পৃষ্ঠা।
  • একটি ইনস্টলড ডেমো স্টোরের সাথে লিঙ্ক অফ করাও দুর্দান্ত
  • আপনার পণ্যের একটি স্ক্রিনকাস্ট / দুই মিনিটের ওভারভিউ

সম্পাদনা: আমি ভুল বুঝতে পারি।

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


ধন্যবাদ ফিল। এটি কোনও মডিউল বিকাশ / প্রকাশের সময় সেরা অনুশীলনের মতো কিছু ভাল তথ্যের মতো দেখায় তবে আমি ডেভিডের উত্তরের লাইন ধরে আরও তথ্যের সন্ধান করছিলাম।
কালেঞ্জর্ডান

4
সবেমাত্র একটি ASCII অঙ্কনের জন্য উত্সাহিত করুন
বেন লেসানী - সোনাসি

@teamsonassi: সাবধান, এটি treeকমান্ড থেকে আউটপুট অনুলিপি করার মতো সহজ হতে পারে :-)
অ্যালেক্স

তিনি যদি এটি দিয়ে করেন তবে আমার কোনও cowsay
পাত্তা

Forewarned করা, আমি ব্যবহার cowsayএবং figlet.... একটি অনেক
ফিলিউঙ্কল

5

এমনকি আমি নিজে চেষ্টা করেও দেখিনি, আমি এটির জন্য সুরকার ব্যবহার করার পরামর্শ দেব ।

নির্ভরতা সহ সংস্করণ

composer.lockসংগ্রহস্থলটিতে ফাইল রেখে আপনি সমস্ত মডিউলগুলির সংস্করণগুলি ঠিক করেন এবং সর্বদা আপনার ভিসিএস ( git checkout, svn ..) এবং তারপরে একটি নির্দিষ্ট সংস্করণ (একটি শাখা, ট্যাগ বা একটি পুরানো সংস্করণ) পুনরুদ্ধার করতে পারেন composer.phar install

অপূর্ণতা

একটি সমস্যা দেখা দেয় যা আপনার স্থাপনা সহজেই একাধিক উত্সের উপর নির্ভর করতে পারে (উদাহরণস্বরূপ গিটহাব) ব্যর্থতার একাধিক পয়েন্ট তৈরি করে।

সুতরাং আমাদের কিছু ধরণের ক্যাশে বা প্রক্সি লাগবে যা সেগুলি মডিউলগুলি সঞ্চয় করে যাতে আমরা সর্বদা স্থাপন করতে সক্ষম হয়েছি।

সতীস এই উদ্দেশ্যে ( https://github.com/researchgate/broker দেখুন ) এবং আমার প্রশ্নটি /programming//q/16211671/288568 দেখতে সক্ষম হতে পারে বলে মনে হচ্ছে


1
আর্টিফ্যাক্টকে ধন্যবাদ ( getcomposer.org/doc/05-repositories.md#artifact দেখুন ) বিভিন্ন উত্সের উপর নির্ভর করে হ্রাস করা এবং নিয়ন্ত্রণ করা সহজ। সুরকারের প্লাগইন আর্কিটেকচারকে প্যাকেজগুলি ক্যাশে করার জন্য উদাহরণস্বরূপ এডাব্লুএস (এখন বাস্তবায়নের কোনও লিঙ্ক খুঁজে পাওয়া যায় না)
ফ্লায়িংম্যানা

মডিউলগুলি একে অপরের উপর নির্ভর করে না?
ব্যবহারকারী 2045

2

Kalen,

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

মোডম্যানের একটি দুর্দান্ত বৈশিষ্ট্যও রয়েছে যা অনেক লোক ব্যবহার করে বলে মনে হয় না। বাশ স্ক্রিপ্ট .modman সংগ্রহস্থলে একটি .baseir ফাইলটিকে ব্যাখ্যা করে, যদি ফাইলটি উপস্থিত না থাকে তবে Modman ফাইলটি একই পদ্ধতিতে মোডম্যান ফাইলে syMLink নিয়ম প্রয়োগ করে। Modman ফোল্ডারের মতো ... যদি .baseir ফাইলটি উপস্থিত থাকে, বিষয়বস্তুগুলি এমন একটি সাবফোল্ডার বর্ণনা করে যা আপনার ম্যাজেন্টো কোডের শীর্ষ স্তরের। Modman পথ থেকে অন্য কথায় ... অন্য কথায়, আপনি 'বেসমেজেন্টো 1.9.1.0' এর মতো ফোল্ডারে সমস্ত বেস ম্যাজেন্টো সংস্করণ চালাতে পারেন (এবং আমি করব) 'বেসমেজেন্টো ১.১৪.২.০' এবং মোডম্যান এইগুলিতে থাকা ফোল্ডারটি। .Modman পথে একটি .basedir ফাইল যুক্ত করুন এবং আপনি সামগ্রীগুলি সহজেই পরিবর্তন করতে পারেন। এটি সংস্করণ পরীক্ষার জন্য ভাল কাজ করে।


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