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 ასევე უზრუნველყოფს ბიბლიოთეკებს განახორციელოს momory მართვა, კავშირის ოპერაციების და გრაფიკული მართვა. Qt4 (სადაც QGIS ამჟამად საფუძველზე) ახლა არ მიმდინარეობს მიერ შემუშავებული იმ პასუხისმგებელი QT ბიბლიოთეკა და შეიძლება პრობლემები თვალსაზრისით ფუნქციონირება რამდენიმე პლატფორმების (როგორიცაა OS X) და კიდევ შეუწყობს მართვის ორობითი ვერსიები (მაგალითად Debian Testing და შემდეგი ვერსია Debian «Stretch»). პროცესი შემოტანა QGIS to QT5 უკვე გარღვევა (ძირითადად რა გააკეთა Matthias Kuhn) ერთად Marco Bernasocchi მოწევა Android "QField" ეფუძნება მთლიანად QT5. თუმცა, QGIS- ზე მისი გავლენის გამო ახალი QT5- ის გაშვების შეზღუდვები არსებობს, კერძოდ ვებ ბრაუზერი ვიჯეტებით (ძირითადად გამოიყენება კომპოზიტორში და ასევე 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 3 Python (თითქმის პროპორციული შეუთავსებლობა QGIS იქნება 2 და 3 Qgis ღონისძიება). ბევრი დეველოპერები გააკეთეს Python Python 3- ის მეტწილად შეესაბამება Python 2- ის ადრეულ ვერსიებს, მაგრამ საპირისპირო თავსებადობა არ არის ისეთი კარგი.
QGIS API- ის გაუმჯობესება: ერთ-ერთი პრობლემა, რომელიც ინარჩუნებს API თავსებადობას შორის ვერსიებს შორის, არის ის, რომ თქვენ უნდა იცხოვროთ თქვენი დიზაინის პარამეტრებით გრძელვადიან პერსპექტივაში. QGIS- ში, ყველა ძალისხმევას არ ახორციელებს არა API- ის შემცირება უმნიშვნელო რელიზების სერიის ფარგლებში. QGIS- ის ვერსია 3.0- ისთვის, რომელიც არ შეესაბამება მიმდინარე აპლიკაციას, საშუალებას მისცემს "გაწმენდის სახლს", რომლებშიც შევადგინოთ რამე API- ში, რომლებთანაც არსებობს შეუსაბამობა. თქვენ შეგიძლიათ იხილოთ დროებითი სია ცვლილებების შეთავაზება 3.0 API- ისთვის.

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

როგორც უკვე აღვნიშნეთ, მობილური 3.0 შესვენების QGIS ვერსიას 2.x გამოიწვიოს და არ არსებობს შესაძლებლობა, რომ ბევრი plugins, არსებული პროგრამები და სხვა კოდები ეფუძნება მიმდინარე API მსხვრევა. რა შეიძლება გაკეთდეს ცვლილებების შესამცირებლად? Matthias Kuhn, იურგენ ფიშერი, Nyall Dawson, Martin Dobias და სხვა ძირითადი დეველოპერები უკვე ეძებს გზებს, რათა შეამსუბუქოს ნომერი 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. სe უნდა აღინიშნოს, რომ მიუხედავად იმისა, რომ აქცენტი შეიქმნა, რათა შეამციროს ოდენობით მუშაობა Python სკრიფტინგის plugins, ეს არ არის აუცილებელი 100%. სავარაუდოდ იქნება შემთხვევები, როდესაც კოდექსი უნდა იყოს მორგებული და ყველა შემთხვევაში მაინც სავარაუდოა, რომ გადახედოს, რათა უზრუნველყოს, რომ იგი განაგრძობს ფუნქციონირებას.
    2. არ არსებობს ფორმალურად ჩამოყალიბებული ფინანსური რესურსი, რომ გადაიხადოს დეველოპერები, რომლებიც ნებაყოფლობით განახორციელებენ თავის დროზე ამ მიგრაციის პროცესში. ამის გამო, ძალიან რთული იქნება ზუსტი ვადები, რამდენი ხნის განმავლობაში პროცესის თითოეული ნაწილი მიიღებს. ეს გაურკვევლობა მხედველობაში უნდა იქნეს გათვალისწინებული დაგეგმვაში. რა თქმა უნდა შემოწირულობები მივესალმებით, რათა ეს მოხდეს.
    3. იქ შეიძლება იყოს დეველოპერები და ინსტიტუტები, რომლებიც 2.x QGIS სერიისთვის ახალი ფუნქციების დაფინანსებას ახდენენ და ამან შეიძლება გავლენა მოახდინოს მათ მუშაობაზე. ამ პროექტების გეგმებისა და ბიუჯეტების შემადგენლობაში შედის, ზოგიერთი მათგანისთვის 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- ს, რათა შეამციროს სპამი. შეისწავლეთ თქვენი კომენტარის მონაცემები დამუშავებული.