স্বয়ংক্রিয় ক্যাটালগ আপডেট এবং এলএসপি ইন্টিগ্রেশন

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

CATALOG_UPDATE ফাইলের ভূমিকা

CATALOG_UPDATE ফাইলটির দুটি প্রধান উদ্দেশ্য রয়েছে:

  1. স্বয়ংক্রিয় আপডেট: কম্পাইলার বা ডিপেন্ডেন্সি পরিবর্তিত হলে, এই ফাইলটি regenerator টুলকে সিস্টেমের সমস্ত ক্যাটালগ খুঁজে বের করে পুনরায় কম্পাইল করতে সাহায্য করে।
  2. ল্যাঙ্গুয়েজ সার্ভার প্রোটোকল (LSP) সাপোর্ট: VSIDL ল্যাঙ্গুয়েজ সার্ভার ক্যাটালগ রুট খুঁজে বের করতে এবং নির্ভরতা সমাধান করতে এই ফাইলটি ব্যবহার করে। এটি অন্যান্য ক্যাটালগে সংজ্ঞায়িত টাইপগুলির জন্য "গো টু ডেফিনিশন," অটোকমপ্লিশন এবং রিয়েল-টাইম ভ্যালিডেশনের মতো বৈশিষ্ট্যগুলি সক্ষম করে।

একটি ক্যাটালগ কনফিগার করুন

একটি VSIDL ক্যাটালগের জন্য স্বয়ংক্রিয় আপডেট এবং LSP সমর্থন সক্রিয় করতে, ক্যাটালগটির রুট ডিরেক্টরিতে একটি CATALOG_UPDATE ফাইল তৈরি করুন। এই ফাইলটি একটি টেক্সট প্রোটোবাফ ফাইল।

ক্যাটালগ কনফিগারেশন ক্ষেত্রগুলি

  • output_path (স্ট্রিং, ঐচ্ছিক): ক্যাটালগ রুট থেকে সেই ডিরেক্টরির আপেক্ষিক পথ, যেখানে তৈরি করা মিডলওয়্যার কোড রাখা হবে।
  • dependency_catalog_paths (পুনরাবৃত্ত স্ট্রিং): অন্যান্য ক্যাটালগ ডিরেক্টরিগুলির আপেক্ষিক পাথের একটি তালিকা। LSP সার্ভার এক্সটার্নাল টাইপগুলি রিজলভ করার জন্য এই পাথগুলি ব্যবহার করে।
  • vsidlc_gen_args (স্ট্রিং, ঐচ্ছিক): vsidlc তে প্রেরিত আর্গুমেন্টসমূহ। LSP সার্ভার সঠিক বৈধতা বিধি (যেমন, "--apex" ) প্রয়োগ করার জন্য এগুলি পরীক্ষা করে।
  • prebuilts_output_path (স্ট্রিং, ঐচ্ছিক): তৈরি করা রানটাইম কনফিগারেশন প্রি-বিল্টগুলোর জন্য পাথ।
  • prebuilts_filegroup (স্ট্রিং, ঐচ্ছিক): প্রি-বিল্টগুলোর জন্য Soong filegroup নাম।

উদাহরণ কনফিগারেশন

# proto-file: //system/software_defined_vehicle/tools/regenerator/proto/catalog.proto
# proto-message: Catalog

output_path: ".."
dependency_catalog_paths: "../../../../../automotive_services/diagnostics/vsidl/v1"
vsidlc_gen_args: "--apex"

কেন স্বয়ংক্রিয় আপডেট প্রয়োজন

বিভিন্ন কারণে প্রতিটি ক্যাটালগের জন্য তৈরি করা কোড ম্যানুয়ালি রক্ষণাবেক্ষণ করা সমস্যাজনক:

  1. কম্পাইলার আপডেট: যখন বাগ ফিক্স বা নতুন ফিচার সহ কম্পাইলার আপডেট করা হয়, তখন সামঞ্জস্য বজায় রাখার জন্য Android.bp ফাইলের কোনো genrule দ্বারা আচ্ছাদিত নয় এমন সমস্ত জেনারেটেড কোড এবং ফাইল রিফ্রেশ করা উচিত।
  2. নির্ভরশীলতা ব্যবস্থাপনা: মূল ক্যাটালগে কোনো পরিবর্তনের ফলে প্রায়শই পরবর্তী ক্যাটালগগুলোকে পুনরায় তৈরি করার প্রয়োজন হয়।
  3. নির্ভুলতা: স্বয়ংক্রিয় আপডেট পাথ এবং ডিপেন্ডেন্সি নির্দিষ্ট করার সময় মানুষের ভুলের ঝুঁকি কমিয়ে দেয়।

রিজেনারেটর টুলটি চালান

regenerator টুলটি SDV রুট থেকে ডিরেক্টরি ট্রি-তে অনুসন্ধান শুরু করে এবং হুবহু CATALOG_UPDATE নামের ফাইলগুলো খোঁজে।

সমস্ত কনফিগার করা ক্যাটালগ আপডেট করতে:

  1. টুলটি তৈরি করুন:

    m regenerator
    
  2. টুলটি চালান:

    regenerator
    

    ঐচ্ছিকভাবে, একটি নির্দিষ্ট ডিরেক্টরির জন্য এটি রিকার্সিভলি চালান: console regenerator --root /path/to/directory

টুলটি তৈরি করা ফাইলগুলো আপডেট করে এবং পরিবর্তনগুলো সিস্টেমের বাকি অংশের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করার জন্য একটি সম্পূর্ণ বিল্ড ( m droid ) সম্পাদন করে।