انتشارها
انتشارهای Vite از نسخهگذاری معنایی (Semantic Versioning) پیروی میکنند. آخرین نسخهی پایدار Vite را میتوانید در صفحهی npm در npm ببینید.
فهرست کامل تغییرات نسخههای گذشته در GitHub در دسترس است.
چرخه انتشار
دروقع Vite چرخهی انتشار ثابتی ندارد.
- نسخههای پچ (Patch) در صورت نیاز منتشر میشوند (معمولاً هر هفته).
- نسخههای فرعی (Minor) همیشه شامل ویژگیهای جدید هستند و در صورت نیاز منتشر میشوند. این نسخهها همیشه یک مرحله پیشانتشار بتا (pre-release) دارند (معمولاً هر دو ماه یکبار).
- نسخههای اصلی (Major) معمولاً با برنامه پایان عمر (EOL) Node.js هماهنگ هستند و از قبل اعلام میشوند. این نسخهها پس از بحثهای بلندمدت با اکوسیستم منتشر شده و مراحل پیشانتشار آلفا و بتا را طی میکنند (معمولاً هر سال یکبار).
بازههای نسخهی Vite که توسط تیم Vite پشتیبانی میشوند بهصورت خودکار بر اساس موارد زیر تعیین میشوند:
- نسخهی Current Minor بهطور منظم رفع اشکال (bug fixe) میشود.
- نسخهی Previous Major (فقط آخرین نسخهی Minor آن) و Previous Minor اصلاحات مهم و پچهای امنیتی دریافت میکنند.
- نسخههای Second-to-last Major و Second-to-last Minor فقط پچهای امنیتی دریافت میکنند.
- تمام نسخههای قبل از این بازهها دیگر پشتیبانی نمیشوند.
برای مثال، اگر آخرین نسخهی Vite برابر با ۵.۳.۱۰ باشد:
- پچهای معمولی برای
vite@5.3.
منتشر میشوند. - اصلاحات مهم و پچهای امنیتی به
vite@4
و.vite@5.2
منتقل میشوند. - پچهای امنیتی همچنین به
vite@3
وvite@5.1
منتقل میشوند. - نسخههای
vite@2
وvite@5.0
دیگر پشتیبانی نمیشوند. کاربران باید برای دریافت بهروزرسانیها، نسخهی خود را ارتقا (upgrade) دهند.
ما توصیه میکنیم Vite را بهصورت منظم بهروزرسانی کنید. هنگام ارتقا به هر نسخهی اصلی (Major)، راهنمای مهاجرت را بررسی کنید. تیم Vite با پروژههای اصلی اکوسیستم همکاری نزدیکی دارد تا کیفیت نسخههای جدید را تضمین کند. نسخههای جدید Vite قبل از انتشار، از طریق پروژه vite-ecosystem-ci project تست میشوند. بیشتر پروژههایی که از Vite استفاده میکنند، باید بتوانند سریعاً پشتیبانی ارائه دهند یا به نسخههای جدید مهاجرت کنند.
حالات خاص در نسخهگذاری معنایی
تعاریف تایپ اسکریپت
ممکن است بین نسخههای Minor تغییرات ناسازگار در تعاریف تایپ اسکریپت ارائه دهیم. دلیل این موضوع این است که:
- گاهی خود تایپ اسکریپت بین نسخههای Minor تغییرات ناسازگار دارد و ما ممکن است برای پشتیبانی از نسخههای جدیدتر، تایپها را تغییر دهیم.
- گاهی لازم است از ویژگیهایی استفاده کنیم که فقط در نسخههای جدیدتر تایپ اسکریپت وجود دارند، بنابراین حداقل نسخهی موردنیاز تایپاسکریپت را افزایش میدهیم.
- اگر از تایپ اسکریپت استفاده میکنید، میتوانید بازه نسخه semver را قفل کنید روی نسخه فرعی فعلی و هنگام انتشار نسخه Minor جدید Vite بهصورت دستی ارتقا دهید.
esbuild
esbuild هنوز به نسخه ۱.۰.۰ نرسیده و گاهی تغییرات ناسازگار دارد که برای دسترسی به ویژگیها و بهبودهای عملکردی جدید باید آنها را در Vite بگنجانیم. ممکن است نسخه esbuild را در یک نسخهی Minor در Vite افزایش دهیم.
نسخههای ناپایدار Node.js
نسخههای ناپایدار Node.js (شماره فرد) بهعنوان بخشی از تستهای CI Vite آزمایش نمیشوند، اما تا قبل از پایان عمر آنها باید کار کنند.
پیشانتشارها
نسخههای Minor معمولاً از چندین نسخهی بتا (با تعداد غیرثابت) عبور میکنند. نسخههای Major نیز یک مرحله آلفا و یک مرحله بتا خواهند داشت.
پیشانتشارها به پذیرندگان اولیه و نگهدارندگان اکوسیستم اجازه میدهند تا تستهای یکپارچگی و پایداری انجام دهند و بازخورد بدهند. هیچوقت از پیشانتشارها در محیط production استفاده نکنید. همه پیشانتشارها ناپایدار محسوب میشوند و ممکن است تغییرات ناسازگار داشته باشند. همیشه هنگام استفاده از پیشانتشارها نسخه دقیق را قفل کنید.
فرایند منسوخ شدن
ما بهصورت دورهای ویژگیهایی که در نسخههای Minor با گزینههای بهتر جایگزین شدهاند را منسوخ میکنیم. ویژگیهای منسوخشده همچنان با یک هشدار یا لاگ کار میکنند و در نسخهی Minor بعدی پس از اعلام منسوخشدن حذف خواهند شد. راهنمای مهاجرت هر نسخهی Major، این حذفها را فهرست کرده و مسیر ارتقا را مستند میکند.ض
ویژگیهای آزمایشی
برخی ویژگیها هنگام انتشار در نسخه پایدار Vite بهعنوان آزمایشی علامتگذاری میشوند. ویژگیهای آزمایشی به ما کمک میکنند تا تجربهی واقعی کاربران را جمعآوری کنیم و طراحی نهایی آنها را بهبود دهیم. هدف این است که کاربران با استفاده در محیط تولید بازخورد دهند. خود ویژگیهای آزمایشی ناپایدار هستند و فقط باید بهصورت کنترلشده استفاده شوند. این ویژگیها ممکن است بین نسخههای Minor تغییر کنند، بنابراین کاربران هنگام استفاده باید نسخه Vite خود را قفل کنند. برای هر ویژگی آزمایشی، بحثی در GitHub ایجاد خواهیم کرد.