— — — সিমান্টিক ভার্সন পার্স, তুলনা এবং রেঞ্জ-যাচাই করুন — ^, ~, >=, <, x-রেঞ্জ এবং || সমর্থিত।
দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।
— — — — — সিমান্টিক ভার্সনিং (SemVer) হলো major.minor.patch রীতি যা বেশিরভাগ লাইব্রেরি একটি রিলিজ কী ধরনের পরিবর্তন ধারণ করে তা সংকেত করতে ব্যবহার করে: একটি বাগ ফিক্স patch বাম্প করে, পশ্চাৎ-সামঞ্জস্যপূর্ণ সংযোজন minor বাম্প করে, এবং ব্রেকিং পরিবর্তন major বাম্প করে। একটি প্রি-রিলিজ ট্যাগ (1.0.0-beta.1) বা বিল্ড মেটাডেটা (+exp.sha.1) যোগ করুন এবং আপনি semver.org 2.0.0-এ সংজ্ঞায়িত সম্পূর্ণ ব্যাকরণ পান।
সমস্যা হলো “দুটি ভার্সন তুলনা করুন” এবং “এই ভার্সনটি কি আমার নির্ভরতা রেঞ্জ সন্তুষ্ট করে” চোখ দিয়ে ভুল পাওয়া সহজ। 1.0.0 বেশি নাকি 1.0.0-beta কম? (বেশি — একটি রিলিজ সর্বদা তার প্রি-রিলিজকে ছাড়িয়ে যায়।) 1.2.3 কি ^1.2.0 সন্তুষ্ট করে? (হ্যাঁ।) এটি কি ~1.2.0 সন্তুষ্ট করে? (এছাড়াও হ্যাঁ, কিন্তু একটি কঠোরতর কারণে।) এই পৃষ্ঠাটি ভার্সনগুলোকে স্পেক যেভাবে সংজ্ঞায়িত করে তেমনভাবে পার্স করে, আপনাকে উপাদানগুলো দেখায়, অগ্রাধিকার অনুযায়ী দুটি ভার্সন তুলনা করে, এবং রেঞ্জ ক্যোয়ারির উত্তর দেয় একই ^ / ~ / >= / || / হাইফেন সিনট্যাক্স সহ যা একটি package.json ব্যবহার করে — সব স্থানীয়ভাবে, একটি অনুমানের বদলে প্রকৃত নিয়মের বিপরীতে।
v বা = গৃহীত এবং ছাঁটা হয়; 1.2.3-beta.1+build.42-কে তার অংশে পার্স করা হয়।^1.2.0 || >=2.0.0 <3.0.0 — দুটি OR’d সেট, যেভাবে প্রকৃত নির্ভরতা রেঞ্জ লেখা হয়। সমর্থিত সিনট্যাক্স: ^ (ক্যারেট), ~ (টিল্ড), >= <= > < =, x / X / * ওয়াইল্ডকার্ড, আংশিক ভার্সন (1.2), - হাইফেন রেঞ্জ, এবং সেট OR করতে ||।clean ফর্ম এবং ভাঙা মেজর, মাইনর, প্যাচ, প্রি-রিলিজ, এবং বিল্ড ফিল্ড দেখায়। একটি অবৈধ ভার্সন তার কার্ডটিকে একটি বার্তা সহ লাল করে তোলে।A < B, A = B, বা A > B সাজায়, প্লাস diff — সর্বোচ্চ উপাদান যা পরিবর্তিত হয়েছে (মেজর, মাইনর, প্যাচ, প্রি-রিলিজ, বা বিল্ড)।major.minor.patch ধরে চলে এবং তারপর প্রি-রিলিজ শনাক্রকারীগুলো, এই নিয়ম সহ যে একটি ভার্সন প্রি-রিলিজ ছাড়া সর্বদা সহ একটিকে ছাড়িয়ে যায়। সংখ্যাসূচক শনাক্রকারী সংখ্যাত্মকভাবে তুলনা করে (beta.2 < beta.11); আলফানিউমেরিকগুলো লেক্সিক্যালি তুলনা করে; এবং সংখ্যাসূচক সর্বদা আলফানিউমেরিকের নিচে র্যাঙ্ক করে। বিল্ড মেটাডেটা পার্স করা এবং প্রদর্শিত হয় কিন্তু কখনো অগ্রাধিকারকে প্রভাবিত করে না।^1.2.3 হয়ে যায় >=1.2.3 <2.0.0; ^0.2.3 হয়ে যায় >=0.2.3 <0.3.0; ^0.0.3 হয়ে যায় >=0.0.3 <0.0.4 — ক্যারেটের “বাম-সর্বাধিক-অ-শূন্য” নিয়ম। টিল্ড একই মাইনরে পিন করে: ~1.2.3 হলো >=1.2.3 <1.3.0।||, হাইফেন এবং ওয়াইল্ডকার্ড সহ রেঞ্জ। ^1.0.0 || >=2.0.0 <3.0.0 (দুটি সেটের OR), 1.2.0 - 1.5.0 (ইনক্লুসিভ হাইফেন রেঞ্জ), 1.x / 1.2.* (ওয়াইল্ডকার্ড রেঞ্জ) সবগুলো পার্স এবং টেস্ট করে।major.minor.patch-এ একটি প্রি-রিলিজ ট্যাগ বহন করে। তাই 1.5.0-rc.1 ^1.2.0 সন্তুষ্ট করে না, কিন্তু ^1.5.0-rc.0 সন্তুষ্ট করে — যেভাবে প্রকৃত প্যাকেজ ম্যানেজারগুলো এলোমেলো প্রি-রিলিজগুলোকে আপনার রিলিজ বিল্ড থেকে দূরে রাখে।1.2.3 থেকে 2.0.0-তে একটি লাফ মেজর দেখায়, এবং 1.0.0 থেকে 1.0.0-তে পরিবর্তিত বিল্ড সহ বিল্ড দেখায় যদিও অগ্রাধিকার অপরিবর্তিত।v, একটি শীর্ষস্থ =, এবং চারপাশের সাদাসিধে সহ্য করা হয়, তাই একটি git ট্যাগ বা একটি চ্যাঞ্জলগ থেকে কপি করা ভার্সন ম্যানুয়াল ক্লিনআপ ছাড়াই পার্স করে।ডিফল্টগুলো সহ — A 1.2.3, B 2.0.0, রেঞ্জ ^1.2.0 || >=2.0.0 <3.0.0 — পৃষ্ঠাটি রিপোর্ট করে:
A clean 1.2.3 (major 1, minor 2, patch 3)
B clean 2.0.0 (major 2, minor 0, patch 0)
compare 1.2.3 < 2.0.0
diff major
range A satisfies B satisfies
উভয় ভার্সনই রেঞ্জ সন্তুষ্ট করে, কিন্তু ভিন্ন কারণে: A প্রথম OR সেটের ভেতরে পড়ে (^1.2.0 → >=1.2.0 <2.0.0), B দ্বিতীয়টির ভেতরে পড়ে (>=2.0.0 <3.0.0)। B-কে 3.0.0-এ পরিবর্তন করুন এবং তার ব্যাজ সন্তুষ্ট করে না-তে ফ্লিপ হয় — উপরের বাউন্ড <3.0.0 এটিকে বাদ দেয়।
প্রি-রিলিজ নিয়ম ক্রিয়ায় দেখতে, A-কে 1.5.0-rc.1 এবং B-কে 1.5.0-তে সেট করুন, এবং রেঞ্জ ^1.5.0-rc.0 হিসেবে রাখুন। এখন A সন্তুষ্ট করে (একই 1.5.0, রেঞ্জ একটি মেলানো প্রি-রিলিজ ট্যাগ বহন করে), যখন একটি সরল ^1.5.0 1.5.0-rc.1-কে মাধ্যমে যেতে দেবে না — গেটটি সুনির্দিষ্টভাবে রিলিজ প্রার্থীদের রিলিজ নির্ভরতা সমাধান থেকে দূরে রাখার জন্য বিদ্যমান যতক্ষণ না আপনি অপ্ট-ইন করেন।
1.0.0 কি 1.0.0-beta-এর চেয়ে বেশি?#হ্যাঁ। কোনো প্রি-রিলিজ ট্যাগ ছাড়া একটি ভার্সনের সর্বদা একটি প্রি-রিলিজ ট্যাগ সহ ভার্সনের চেয়ে বেশি অগ্রাধিকার থাকে, একই major.minor.patch-এও। তাই 1.0.0 > 1.0.0-rc.1 > 1.0.0-beta.11 > 1.0.0-alpha। এই কারণে একটি রিলিজ “গোল্ড হওয়া” একটি প্রকৃত অগ্রাধিকার বাম্প, কেবল একটি লেবেল পরিবর্তন নয়।
^ এবং ~-এর মধ্যে পার্থক্য কী?#ক্যারেট এমন আপডেট অনুমোদন করে যা বাম-সর্বাধিক-অ-শূন্য উপাদান পরিবর্তন করে না: ^1.2.3 যেকোনো 1.x.x-কে 1.2.3 থেকে (কিন্তু অন্তর্ভুক্ত নয়) 2.0.0 পর্যন্ত অনুমোদন করে। টিল্ড কঠোরতর — এটি একটি সম্পূর্ণ ভার্সন দিলে মাইনরকে পিন করে: ~1.2.3 কেবল 1.2.x অনুমোদন করে। কেবল একটি মেজর দিলে (~1), টিল্ড এবং ক্যারেট উভয়ই সম্পূর্ণ মেজর রেঞ্জ অনুমোদন করে। বেশিরভাগ লাইব্রেরি ^ দিয়ে পিন করে; আপনার নিজের প্রকাশিত প্যাকেজগুলোতে প্যাচগুলো প্রায়শই ~ ব্যবহার করে।
^1.0.0 সন্তুষ্ট করে না?#ডিজাইন অনুযায়ী। 1.5.0-rc.1-এর মতো একটি প্রি-রিলিজ কেবল তখনই একটি রেঞ্জ সন্তুষ্ট করে যখন একই AND-সেটের কোনো তুলনাকারীর একই 1.5.0-এ একটি প্রি-রিলিজ ট্যাগ থাকে। ^1.0.0 1.5.0-তে কোনো প্রি-রিলিজ ছাড়া >=1.0.0 <2.0.0-0-এ ডিসুগার করে, তাই গেটটি আপনার রিলিজ বিল্ডকে কারো এলোমেলো রিলিজ প্রার্থী টানতে থেকে আটকায়। আপনি অপ্ট-ইন করতে চাইলে, স্পষ্টভাবে ^1.5.0-rc.0 লিখুন।
না। 1.0.0+exp.sha.5 এবং 1.0.0+exp.sha.6-এর সমান অগ্রাধিকার আছে — বিল্ড মেটাডেটা কেবল শনাক্রকরণের জন্য। পার্সারটি এখনও এটি দেখায় (এবং diff শুধুমাত্র মেটাডেটা আলাদা হলে একটি বিল্ড পরিবর্তন রিপোর্ট করে), কিন্তু এটি কখনো একটি অর্ডারিং স্থির করে না।
অনন্য ভিজিটর (এই ডিভাইস/ব্রাউজার একবার গণনা করা হয়)
এই সাইটটি Google AdSense-এর মাধ্যমে বিজ্ঞাপন দেখায়। আমরা বিজ্ঞাপন পরিমাপ এবং ব্যক্তিগতকরণের জন্য কুকিজ ব্যবহার করি। ব্যক্তিগতকৃত বিজ্ঞাপন অনুমোদন করবেন কিনা তা বেছে নিন।