QGIS 3.0 - როგორ, როდის და რა; ეს გულისხმობს

ბევრი ითხოვს საკუთარ თავს:

როდის გათავისუფლდება QGIS 3.0?

გასულ წელს (2015) პროექტის გუნდმა დაიწყო გამოძიება, როდის და როგორ უნდა გათავისუფლდნენ QGIS 3.0. ისინი დაპირდნენ, რომ პოსტიდან ანიტა გრაზერი, რისთვისაც ისინი აპირებდნენ მკაფიოდ გადმოეცათ თავიანთი გეგმების მომხმარებლებსა და დეველოპერებს QGIS 3.0-ის ამოქმედებამდე. მათ ცოტა ხნის წინ სცადეს ჩამოაყალიბონ ზოგიერთი მოსაზრება QGIS 3.0 გამოცემისთვის და პოსტის ბოლოს ჩვენთვის შესაძლებლობა გვაქვს წარმოვადგინოთ ჩვენი იდეები.

რატომ?

QGis_Logoროგორც წესი, ძირითადი ვერსია დაცულია იმ დროისთვის, როდესაც თქვენი პროგრამული უზრუნველყოფის API– ში დიდი ცვლილება შეიტანება. ეს შესვენება არ არის ტრივიალური გადაწყვეტილება QGIS პროექტისთვის, ვინაიდან ჩვენ ვართ ასობით ათასი მომხმარებელი, რომლებიც დამოკიდებულნი არიან QGIS– ზე, როგორც ჩვენი საკუთარი მიზნებისთვის, ასევე მესამე მხარისთვის გაწეული მომსახურებისთვის.

ზოგჯერ API- ს არღვევს არქიტექტურის განახლებას გაუმჯობესებული მიდგომები, ახალი ბიბლიოთეკები და წარსულში მიღებული გადაწყვეტილებების შესწორებები.

რა შედეგებს აყენებს API?

ერთ-ერთი მიზეზი, რის გამოც ეს დარღვევაა API in QGIS 3.0 არის ის, რომ აქვს დიდი გავლენა, რომელიც შეიძლება დაარღვიოს ასობით განვითარებული plugins, რომ აღარ იქნება თავსებადი ახალი API და ავტორები ეს არ უნდა გააკეთოს მიმოხილვა მისი განვითარებულ მოვლენებს, რათა უზრუნველყოს თავსებადობა ახალი API.

აუცილებელი ცვლილებების მოცულობა დიდწილად დამოკიდებულია:

  • API- ზე რამდენი ცვლილება მოქმედებს მიმდინარე ფუნქციონირებაზე.
    რამდენი ქულა მოდულის ავტორებმა გამოიყენეს API- ის ნაწილები, რომლითაც ისინი შეცვლიდნენ.
  • რა იქნება მთავარი ცვლილებები 3.0- ისთვის?

ოთხი ძირითადი სფეროა თქვენ ეძებთ შესაცვლელად 3.0:

 

Qt4 განახლება QT5: ეს არის ბიბლიოთეკების ძირითადი ნაკრები, რომელშიც QGIS აშენებულია ზედა დონეზე, ჩვენ ვსაუბრობთ პლატფორმის CORE– ფუნქციურ დონეზე. QT ასევე უზრუნველყოფს ბიბლიოთეკებს მეხსიერების მართვის, კავშირის ოპერაციების და გრაფიკული მენეჯმენტის განსახორციელებლად. Qt4 (რომელზეც გაკეთებულია QGIS) ამჟამად QT ბიბლიოთეკაში პასუხისმგებელ პირებს არ ამუშავებენ და შეიძლება პრობლემები ჰქონდეთ ზოგიერთ პლატფორმასთან ფუნქციონირების თვალსაზრისით და ორობითი ვერსიების მართვასაც კი შეუწყონ ხელი. (მაგალითად, Debian Testing და მომავალი Debian "Stretch" ვერსია). QGIS– ის QT5– ზე შემოტანის პროცესს უკვე მნიშვნელოვანი წინსვლა აქვს (ძირითადად რაც გააკეთა მათიას კუნმა), რომელიც მარკო ბერნასოკისთან ერთად ეწევა Android– ს «QField »– ს, რომელიც მთლიანად QT5– ზეა დაფუძნებული. ამასთან, არსებობს გარკვეული შეზღუდვები ახალი QT5– ის ამოქმედებაში QGIS– ზე მისი გავლენის გამო - განსაკუთრებით ვებ – ბრაუზერის ვიჯეტებით (ძირითადად გამოიყენება კომპოზიტორში და ასევე სხვა ადგილებში QGIS– ში).

განახლება PyQt4 to PyQt5: ეს ცვლილებები დაკავშირებული Python ენის Qt წელს QGIS Python API ეფუძნება. ჩნდება შეცვალოს QT5 C ++ ბიბლიოთეკა, ასევე მოსალოდნელია, რომ გადასცემს PyQt5 python ბიბლიოთეკაში ისე, რომ მათ შეუძლიათ მიიღონ უპირატესობა ახალი API in Python QT5.
X: განახლება Python 2.7 to Python ამჟამად ყველაფერი მუშაობს Python 2.7-ზე. Python 3 არის python- ის უახლესი ვერსია და მას რეკომენდაციას უწევენ ამ პროექტის ხელმძღვანელები. Python 2 ოდნავ შეუთავსებელია Python 3 (თითქმის პროპორციულია QGIS 2 და Qgis 3 შორის შეუთავსებლობის). ბევრმა დეველოპერმა Python Python 3 მეტწილად ჩამორჩენილი გახადა Python 2-ისთვის თავსებადი, მაგრამ ჩამორჩენილი თავსებადი არც ისე კარგია.
QGIS API- ის გაუმჯობესება: ვერსიებს შორის API– ს თავსებადობის შენარჩუნების ერთ – ერთი პრობლემაა ის, რომ გრძელვადიან პერიოდში უნდა იცხოვროთ თქვენი დიზაინის ვარიანტებთან. QGIS– ში ყველა ღონეს ხმარობს, რომ არ დაარღვიოს API მცირე გამოცემების სერიაში. QGIS ვერსიის 3.0 გამოცემა API– ით, რომელიც არ არის ამჟამინდელი, საშუალებას მოგცემთ "სახლი დავასუფთაოთ" იმ API– ში დაფიქსირებული საკითხების დაფიქსირებით, რომლებთანაც უთანხმოება არსებობს. თქვენ შეგიძლიათ ნახოთ დროებითი სია ცვლილებების შეთავაზება 3.0 API- ისთვის.

როგორ შევცვალოთ 3.0 API- ის შეცვლის მხარდაჭერა

როგორც უკვე აღვნიშნეთ, 3.0 ვერსია დაარღვევს QGIS ვერსიას 2.x და არსებობს შესაძლებლობა, რომ მრავალი დანამატი, არსებული პროგრამა და სხვა კოდი, რომლებიც დაფუძნებულია ამჟამინდელ API- ზე, გატეხავს. რა შეიძლება გაკეთდეს ცვლილებების შესამცირებლად? მათიას კუჰნი, იურგენ ფიშერი, ნიალ დოუსონი, მარტინ დობიასი და სხვა მთავარი დეველოპერები ეძებდნენ გზებს API შესვენების ცვლილებების შემცირების მიზნით, ხოლო განაგრძობდნენ QGIS კოდების ბაზის განვითარებას, რომელიც დაფუძნებული იყო ბიბლიოთეკების შემდეგი თაობაზე და მის შიდა API- ზე. QGIS პროექტის მმართველი კომიტეტის ჩვენი ბოლო შეხვედრის დროს ჩვენ სხვადასხვა შესაძლებლობები მოვახდინეთ. ქვემოთ მოყვანილ ცხრილში შეჯამებულია ის, რაც მადლი კუნმა მადლიერებით შეაჯამა და რომ ნაწილობრივ ვცადეთ ამ სტატიაში ტრანსლიტერაცია იმის მიხედვით, თუ რა გამოქვეყნდა თქვენს ბლოგზე:


QGIS XXL LTR
QGIS 2.16 ??? QGIS 3.0
გამოშვების თარიღი თებერვლის ბოლოს 4 თვის შემდეგ ციკლი 8 თვე?
Notas ძირითადი QGIS- ის Python კოდის განახლება უნდა იყოს Python 3 თავსებადი და PyQt5 თავსებადი (ნაწილობრივი იმპლემენტაცია ძირითადი ფუნქციონირებისთვის, მაგ. კონსოლი, პითონის ძირითადი მოდული და ა.შ.)
QtxNUMX Si

Deprecated Debian Stretch (გამო წელიწადში)

(ვებკით წაშლილი)

დიახ არა
QtxNUMX არა

გამოდის QWebView - ახალი ჩანაცვლება არა ყველა პლატფორმაზე. ასევე QPainter Engine- ის ენატრება.

Si Si
PyQt4 Si Si არა
PyQt5 არა Si Si
Python 2 Si Si არა
Python 3 არა Si Si
API გასუფთავება არა არა Si
შეფუთვა
PyQt5 -> PyQt4
უზრუნველყოფს ~ 90% Backward Compatibility
არა Si Si
საშუალო ორობითი Qt4 დაყრდნობით Qt4 დაყრდნობით Qt5 დაყრდნობით
დაფინანსების პრიორიტეტი პითონი შეფუთვა

არსებობს ორი მნიშვნელოვანი რამ, რათა გვახსოვდეს მათიას წინადადება:

პირველ ფაზაშისამუშაო კეთდება სერია დასრულებას 2.x მხარდაჭერა QT5, PyQt5 გამოყენებით Python 3.0, მხარდამჭერი Qt4, PyQt4 და Python 2.7. ეს გულისხმობს, რომ პირველ ეტაპზე განხორციელებული ყველა ცვლილება შეესაბამება 2- ის ვერსიებს. Python თვისებები იქნება ჩართული დაინერგება ისე, რომ ძველი API PyQt4 მაინც უნდა იქნას გამოყენებული განსაკუთრებით მაშინ, როდესაც შედგენილი წინააღმდეგ QT5, PyQt5, Python 3.0. QGIS- ის გამოყენებით Qt4- ის, PyQt4- ისა და Python 2.7- ის გამოყენებისას არ იქნება შესვენების თავსებადობა.
მეორე ეტაპზეიგი იმუშავებს წარმოების QGIS 3.0, გაჩნდა ახალი API, მთლიანად ამოიღონ Python 2.7, მათ შორის მხარდაჭერა Qt4 და PyQt4. ახალი ფუნქციების python შესვლის პირველი ეტაპი შენარჩუნებული იქნება, იმის გათვალისწინებით, ყველა Python კოდი და განვითარებული 2.x ვერსიები QGIS გაგრძელდება მუშაობა 3.x ვერსიები QGIS. ამ ეტაპზე ასევე მოსალოდნელია ცვლილებების გაცნობა QGIS API- ში, რომელსაც შეუძლია გარკვეული დანამატების ჩავარდნა. მივმართო ამ უზრუნველყოფს ხელმძღვანელობით ა მიგრაციის ცდილობენ ხელი შეუწყოს მიგრაციის ვერსიები 2.x QGIS 3.x QGIS ვერსიები.

Caveat emptor

არსებობს რამდენიმე ხრიკი, რომელიც უნდა დადგეს იმისათვის, რომ უზრუნველყოს, რომ QGIS- ის მიგრაცია ნაკლებად მტკივნეულია.

  • 1. სუნდა აღინიშნოს, რომ მიუხედავად იმისა, რომ ზემოთ მოცემული მიდგომა ცდილობს შეამციროს პითონის სკრიპტინგის მუშაობის მოცულობა დანამატებში, ეს სულაც არ იქნება 100%. სავარაუდოდ, იქნება შემთხვევები, როდესაც კოდი უნდა შეიცვალოს და ყველა შემთხვევაში, სულ მცირე, იგი უნდა გადაიხედოს, რათა უზრუნველყოს, რომ იგი გამართულად ფუნქციონირებს.
    2. არ არსებობს ოფიციალურად დადგენილი ფინანსური რესურსი იმ დეველოპერების გადასახდელად, რომლებიც ნებაყოფლობით ინვესტიციას უკეთებენ ამ მიგრაციის პროცესში. ამის გამო, ძალიან რთული იქნება ზუსტი ვადების მიცემა, თუ რამდენ ხანს გაგრძელდება პროცესის თითოეული ნაწილი. ეს გაურკვევლობა გათვალისწინებული უნდა იყოს დაგეგმვისას. შემოწირულობები, რა თქმა უნდა, მისასალმებელია, რომ ეს მოხდეს.
    3. შეიძლება იქ იყვნენ დეველოპერები და ინსტიტუტები, რომლებიც აფინანსებენ QGIS 2.x სერიის ახალ მახასიათებლებს და ამან შეიძლება გავლენა მოახდინოს თქვენს მუშაობაზე. აუცილებელია ამ პროექტების გეგმებსა და ბიუჯეტებში შეიტანოს გარკვეული თანხა QGIS 3.x პლატფორმაზე გადასასვლელად.
    4. თუ QGIS გუნდი მუშაობს "მთლიან ცვლილებაზე", იქნება შედარებით მოკლე დრო, რომლის განმავლობაშიც QGIS არასტაბილური იქნება და მუდმივად იცვლება QGIS 3.0-ზე მიმდინარე განახლებების გამო.
    4. თუ "ევოლუციური" გზით ვითარდებით, თქვენ გაქვთ რისკი, რომ 3.0 განვითარებას შეიძლება უფრო მეტი დრო დასჭირდეს, თუ თქვენ არ გექნებათ დეველოპერების ერთგული ჯგუფი, რომლებიც მასზე მუშაობენ და მიგრაციისთვის მზად არ ხართ.

    წინადადებები

ყოველივე ზემოთქმულიდან გამომდინარე, შემოთავაზებული ორი მოქმედების ერთ-ერთი ვარიანტია:

წინადადება:

გამოუშვით დროებითი ვერსია 2.16 და შემდეგ დაიწყეთ 3.0 ვერსიაზე მუშაობა პრიორიტეტად, განვითარების ფანჯარა 8 თვის განმავლობაში. 2.16 ვერსიაში შეტანილი ცვლილებები თავსებადია 3.0 ვერსიასთან (იხილეთ python3 / pytq5).

წინადადება:

Lunging ერთხელ 3.0 უფრო გახანგრძლივების ფანჯარა QT5, Python 3.0 და PyQt5 და ვთხოვთ დეველოპერები უნდა გავაკეთოთ მათი მუშაობა 3.0. გაგრძელება 2.x ვერსიებთან რეგულარული ინტერვალებით, სანამ 3.0 მზად არის.

ალტერნატიული წინადადებები

გაქვთ ალტერნატიული წინადადება? QGIS დაინტერესებულია იცოდეს შესაძლო ალტერნატივების შესახებ. თუ გსურთ წარადგინოთ წინადადება, გთხოვთ გაგზავნოთ აქ Tim@qgis.org სათაურით "QGIS 3.0 წინადადება".

ის QGIS დღიური, საიდანაც ეს გამოცემა გამოვიდა.

დატოვე პასუხი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო.

ეს საიტი იყენებს Akismet- ს, რათა შეამციროს სპამი. შეისწავლეთ თქვენი კომენტარის მონაცემები დამუშავებული.