منبع اصلی نوشتار زیر در این لینک قرار دارد

StarCalendar 3.0.0

به طور همزمان، نسخهٔ 2.4.2 و نسخهٔ 3.0.0 منتشر شدند


به دلیل تغییرات کلی و اساسی در نسخهٔ 3 ، خط توسعهٔ 2.4 تا زمان پایدار شدن نسخهٔ 3 ادامه پیدا می‌کند
همینطور کسانی که از توزیع‌های قدیمی لینوکس استفاده می‌کنند و فعلاً امکان استفاده از نسخهٔ 3 را ندارند می‌توانند از 2.4.2 استفاده کنند

لینک‌های دانلود 3.0.0

لینک‌های دانلود 3.0.1

Source Code - starcal-3.0.1.tar.gz
Debian/Ubuntu - starcal3_3.0.1-1_all.deb
OpenSUSE - starcal3-3.0.1-1.noarch-openSUSE.rpm


تذکر: اگر پکیج دبیان را در اوبونتو نصب می‌کنید، قبل از اجرای برنامه، این دستور را اجرا کنید:

sudo apt-get install 'gir1.2-appindicator3*'


لینک‌های دانلود 2.4.2

starcal2_2.4.2-1_all.deb

Source Code - 2.4.2.tar.gz



تغییرات نسخهٔ 2.4.2 نسبت به 2.4.1
    رفع یک باگ در تقویم جلالی
    رفع مشکل نصاب آرچ‌لینوکس توسط « امیر کریمی »
    اضافه شدن گزینهٔ (ترجیحات -> ظاهر -> نماد وضعیت -> اندازهٔ ثابت)، مورد نیاز در Xubuntu
    رفع باگ در پنجرهٔ شخصی‌سازی که تغییرات بر روی « کنترل‌کنندهٔ پنجره » اعمال نمی‌شد
    اصلاح صفحهٔ خانگی برنامه (به گیت‌هاب)


و اما تغییرات نسخهٔ 3.0.0 نسبت به 2.4.2

۱- مهاجرت از Gtk2 به Gtk3
تا به حال از فریم‌ورک PyGTK برای رابط گرافیکی استفاده می‌کردیم، که مبتنی بر Gtk2 است و با وجود پایداری فوق‌العاده، توسعهٔ آن متوقف شده است و هرگز به سمت Gtk3 و/یا پایتون ۳ نخواهد رفت
در این نسخه بطور کامل به فریم‌ورک PyGI یا python gobject introspection مهاجرت کردیم که مبتنی بر Gtk3 است و آینده را در دست دارد
این پروژه وابستگی چندانی به پایتون ندارد و در تمام زبان‌های محبوب پیاده‌سازی شده است

۲- مهاجرت از پایتون 2.7 به پایتون 3
مهاجرت به پایتون 3 راحت نبود، ولی راحت‌تر از مهاجرت به Gtk3 بود
و چون PyGI به خوبی در پایتون ۳ پشتیبانی می‌شود، تصمیم گرفتم که همزمان به پایتون ۳ هم مهاجرت کنم
توسعه و تست‌های من با پایتون 3.4.3 انجام شده است، ولی احتمالاً با ورژن‌های قبل و بعد پایتون 3 هم سازگار است


۳- استفادهٔ حداکثر از فرمت JSON به جای سایر فرمت‌ها
برای تقریباً تمام فایل‌های تنظیمات برنامه و همینطور افزونه‌ها به فرمت json سوییچ کردم
این یکی از دلایلی است که نسخه‌ٔ 3 با نسخهٔ 2.4 سازگار نیست، یعنی پوشهٔ تنظیمات آن جداست
اما نگران نباشید، تنظیماتی که بر روی نسخه‌های قبل انجام داده‌اید به راحتی import خواهند شد

۴- تغییر فرمت و ساختار ذخیره‌سازی رویدادها
در این نسخه برای ذخیره‌سازی دیتای رویدادها از ترکیب فرمت JSON و BSON با ساختار hash-based شبیه به git استفاده می‌شود
این تغییر، در نسخه‌های بعد (تا چند سال آینده) بسیار مفید خواهد بود
ولی بخاطر شکستن سازگاری مجبور بودم این تغییر را در 3.0.0 انجام دهم (در نسخه‌های بعد سازگاری حفظ خواهد شد)

از دید کاربر، فعلاً تنها نکته این است که وابستگی به پکیج python3-bson اضافه شده است
از دید یک برنامه‌نویس می‌توان به این نکته اشاره کرد که فرمت bson در دیتابیس محبوب MongoDB هم استفاده می‌شود




بخاطر تغییرات ذکر شده در بند ۳ و ۴، در اولین اجرای این نسخهٔ، یک پنجره با عنوان StarCalendar 3.x - First Run باز می‌شود که به شما اجازه می‌دهد تنظیمات و دیتای نسخهٔ 2.4 را به نسخهٔ 3.0 وارد (import) کنید
با زدن دکمهٔ OK کار import کردن شروع می‌شود. اگر رویداهای زیادی داشته باشید، ممکن است این کار چند دقیقه طول بکشد

اگر هم قبلاً نسخهٔ 2 را نداشته‌اید، فقط کافیست زبان برنامه را انتخاب کنید. در این صورت حتماً زبان Persian را انتخاب کنید چون بعضی از تنظیمات بومی دیگر هم بطور پیش‌فرض از روی زبان اولیه تعیین می‌شود

در هر دو صورت، بعد از OK کردن و اتمام کار و بسته شدن این پنجره، برنامه اجرا می‌شود






سایر تغییرات:

۵- اضافه شدن « رویداد ماهیانه »
رویدادی که در یک بازهٔ چند ماهه یا چند ساله، در یک روز خاصی از ماه و از ساعت خاصی تا ساعت خاصی تکرار می‌شود

۶- اضافه شدن آیکون‌های SVG سبک اوبونتو برای « نماد وضعیت » توسط دانیال بهزادی
دوست عزیزم دانیال بهزادی حدوداً ۸ ماه پیش این را بصورت یک pull request در github اضافه کرد
ولی بخاطر اینکه در برنچ master فقط رفع باگ‌ها انجام می‌شوند و از آن زمان، نسخهٔ جدیدی هم منتشر نشد، نتوانستم زودتر آن را در انتشارهای برنامه قرار دهم


۷- اضافه شدن event lock
بخاطر ساختار ذخیره‌سازی رویدادها، اگر همزمان دو پروسه از starcal 3 در حال اجرا باشند، و هر دو در رویدادها تغییراتی ایجاد کنند، دیتای رویدادها دچار مشکل خواهد شد
به همین دلیل یک lock file اضافه شده است، که پروسهٔ دوم نتواند در رویدادها تغییری ایجاد کند، بلکه فقط بتواند آنها را بخواند
وابستگی به پکیج python3-psutil بخاطر این قابلیت است


۸- استفاده‌ٔ بیشتر از فرمت SVG
باز هم فرمت SVG در کدنویسی گرافیک برنامه (مثلاً آیکون Drag & Drop و check box های پنجرهٔ مدیریت رویدادها) به دادم رسید
و مهاجرت کامل و بی‌نقص به Gtk3 را برایم امکان‌پذیر کرد

۹- حدف سازگاری با نسخهٔ 1.5.3
برای تمیزتر شدن کد و افزایش بازدهی، سازگاری با نسخهٔ 1.5.3 و یا قبل از آن، بطور کامل حذف شد

۱۰- رفع مشکل پخش صدای اذان
متأسفانه باز هم قابلیت پخش صدای اذان (توسط پلاگین اوقات شرعی) مشکل داشت، و در صورت باز نبودن پنجرهٔ اصلی، فایل صوتی پخش نمی‌شد
با تست‌های خودم، این مشکل در این نسخه برطرف شده است

۱۱- و طبق معمول، تعدادی تغییرات و بهبودهای جزئی، رفع باگ‌های کوچک، و مقدار زیادی تمیزکاری در کد


نکاتی در مورد پکیج برنامه:

۱- کاربران اوبونتو اگر پکیج دبیان را دانلود و نصب می‌کنند، قبل از اجرای برنامه این دستور را بزنند:


sudo apt-get install 'gir1.2-appindicator3*'



۲- کاربران openSUSE با دانلود پکیج سورس و با اجرای این دستور:

sudo ./install-suse

می‌توانند برنامه را نصب کنند

کاربران ArachLinux هم از این دستور برای نصب استفاده کنند:

./install-archlinux

و کاربران فدورا از این دستور:

sudo ./install-fedora


۳- پکیج نسخهٔ 3 جدای از پکیج نسخهٔ 2.4 است، بنابراین می‌توانید نسخهٔ 3.0 و نسخهٔ 2.4 را همزمان نصب داشته باشید و همزمان استفاده کنید، و هیچ تضادی با هم نخواهند داشت


۴- کاربران توزیع‌هایی مثل Slackware و Gentoo که سورس برنامه را دانلود کرده و مستقیماً اجرا می‌کنند، و یا با اسکریپت install نصب می‌کنند، مجبورند پکیج‌های مورد نیاز برنامه را دستی نصب کنند
اسم پکیج‌های موردنیاز در دبیان به این صورت است (نام پکیج‌های مربوط به توزیع خودتان را با کمک گوگل پیدا کنید):
python3-gi
python3-gi-cairo
python3-httplib2
python3-psutil
python3-bson
و این پکیج‌ها هم برای بعضی قابلیت‌های برنامه موردنیاز هستند:
python3-dateutil
python3-igraph
python3-gnomevfs