qgis

QGIS 3.0 - כיצד, מתי ומה; זה מרמז

רבים שואלים את עצמנו:

מתי QGIS 3.0 ישוחרר?

בשנה שעברה (2015) צוות הפרויקט החלו לחקור מתי ואיך QGIS 3.0 היה להשתחרר. הם הבטיחו, על פי הודעה מ אניטה גרייזר, שאותם הם עתידים להעביר בבירור למשתמשים ומפתחי התוכניות שלהם לפני השקת QGIS 3.0. לאחרונה הם ניסו לחשוף כמה מהשיקולים לשחרור QGIS 3.0 ובסוף הפוסט יש לנו אפשרות להציג את הרעיונות שלנו.

למה 3.0?

QGis_Logoבדרך כלל גרסה עיקרית שמורה לזמנים בהם נעשה שינוי גדול בממשק ה- API של התוכנה שלך. הפסקה זו אינה החלטה של ​​מה בכך עבור פרויקט QGIS מכיוון שאנחנו מאות אלפי משתמשים התלויים ב- QGIS, הן לשימושנו והן לשירותים הניתנים לצדדים שלישיים.

לעתים יש צורך לשבור את ה- API כדי להתאים לשדרוג הארכיטקטורה עם גישות משופרות, ספריות ותיקונים חדשים להחלטות שהתקבלו בעבר.

מהן ההשלכות של שבירת ה- API?

אחת סיבות מדוע פרה זו של API ב qgis 3.0 היא שזה יהיה השפעה גדולה, אשר יכולה לשבור מאה תוספים מפותחים כי כבר לא יהיו תואם עם ה- API החדש מהחברים האלה צריך לעשות סקירה של ההתפתחויות שלהם כדי להבטיח תאימות עם ה- API החדש.

היקף השינויים הנדרשים תלוי במידה רבה ב:

  • כמה שינויים בממשק ה- API משפיעים על הפונקציונליות הנוכחית.
    בכמה נקודות מחברי התוספים השתמשו בחלקי ה- API שישתנו.
  • מה יהיו השינויים העיקריים עבור 3.0?

ישנם ארבעה תחומים עיקריים שאתה מחפש לשנות ב- 3.0:

 

עדכון Qt4 ל- QT5: זהו הסט הבסיסי של ספריות ש-QGIS בנוי ברמה העליונה, אנחנו מדברים על רמת ה-CORE-פונקציונלית של הפלטפורמה. QT מספקת גם ספריות לביצוע ניהול זיכרון, פעולות קישוריות וניהול גרפיקה. Qt4 (שQGIS מבוסס עליו כרגע) אינו מפותח כרגע על ידי מנהלי ספריית Qt וייתכן שיש להם בעיות פונקציונליות בפלטפורמות מסוימות (למשל OS X) ואף יקל על ניהול גרסאות בינאריות (למשל Debian Testing והמהדורה הבאה של Debian "לִמְתוֹחַ"). לתהליך הבאת QGIS ל-QT5 יש כבר התקדמות חשובה (בעיקר מה שמתיאס קון עשה) שיחד עם מרקו ברנסוצ'י מעשן באנדרואיד "QField" המבוסס כולו על QT5. עם זאת, ישנן מספר מגבלות בהפעלת ה-QT5 החדש בגלל ההשפעה שלו על QGIS - במיוחד עם ווידג'טים של דפדפן אינטרנט (בעיקר בשימוש ב-Composer וגם בכמה מקומות אחרים ב-QGIS).

עדכון PyQt4 ל- PyQt5: אלה השינויים היחסיים לשפת Python עבור Qt שעליו מבוסס ה- API של QGIS Python. נשאל לשנות את ספריית ++ C QT5, צפוי גם להעביר ספריית Python PyQt5 כדי שיוכלו לנצל את היתרונות של ה- API החדש ב Python QT5.
XTUMX עדכון Python 2.7 ל Python נכון לעכשיו הכל פועל על Python 2.7. Python 3 היא הגרסה האחרונה של Python והיא מומלצת על ידי המובילים בפרויקט זה. Python 2 אינו תואם מעט ל- Python 3 (כמעט פרופורציונלי לאי התאמה בין QGIS 2 ל- Qgis 3). מפתחים רבים הפכו את Python Python 3 במידה רבה לאחור לתואם ל- Python 2, אך התאימות לאחור לא כל כך גדולה.
שיפור ה- API של QGIS עצמו: אחת הבעיות בשמירה על תאימות 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 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
תאריך שחרור סוף פברואר 4 חודשים לאחר מכן 2.14 מחזור 8 חודשים?
הערות עדכון קוד python של QGIS הליבה להיות Python 3 תואם תואם PyQt5 (יישום חלקי עבור פונקציונליות מפתח למשל, קונסולת, פיתון הליבה תוספים וכו ')
Qt4 Si

הוצא משימוש ב- Debian Stretch (בשל שנה)

(webkit הוסר)

יש לא
Qt5 לא

מתגעגע QWebView - תחליף חדש לא על כל הפלטפורמות. גם מתגעגע QPainter מנוע.

Si Si
PyQt4 Si Si לא
PyQt5 לא Si Si
פייתון 2 Si Si לא
פייתון 3 לא Si Si
ניקוי API לא לא Si
עטיפות
PyQt5 -> PyQt4
מספק ~ 90% תאימות לאחור
לא Si Si
מיינסטרים בינאריים מבוסס על Qt4 מבוסס על Qt4 מבוסס על Qt5
עדיפות במימון פייתון עטיפות

יש שני דברים חשובים שיש לזכור על הצעתו של מטיאס:

בשלב הראשון, העבודה נעשית בסדרת 2.x כדי להשלים את התמיכה ב- QT5, PyQt5, באמצעות Python 3.0, תמיכה ב- Qt4, PyQt4 ו- Python 2.7. משמעות הדבר היא שכל השינויים שבוצעו בשלב הראשון יהיו תואמים לגרסאות קודמות של 2.x. זה ישלב פונקציות Python יוצגו כך API הישן PyQt4 עדיין יכול לשמש במיוחד בעת הידור נגד QT5, PyQt5, Python 3.0. בעת שימוש QGIS הידור נגד Qt4, PyQt4 ו Python 2.7 לא תהיה תאימות לשבור.
בשלב השני, היית עובד כדי לייצר QGIS 3.0, מציגה את ה- API החדש, זה יהיה לגמרי לחסל Python 2.7, כולל תמיכה Qt4 ו PyQt4. התכונות החדשות פיתון הציג בשלב הראשון יישמרו, תוך התחשבות כי כל קוד פיתון והתפתחויות עבור QNISXX גירסאות של QGIS ימשיך לעבוד על 2.x גירסאות של QGIS. בשלב זה הוא צפוי גם להציג שינויים בממשק ה- API של QGIS שיכול לשבור כמה תוספים. לשם כך, נספק מדריך העברה כדי לנסות להקל על תהליך ההעברה מ- 3.x גירסאות QGIS ל- 2.x גירסאות QGIS.

Caveat רוקן

יש כמה טריקים שיש לשים במקום כדי להבטיח כי המעבר QGIS 3.0 נשמע פחות כואב.

  • 1. שיש לציין כי הגישה המפורטת לעיל אמנם מנסה למזער את כמות העבודה על סקריפטים של פיתון בתוספים, אך זה לא בהכרח יהיה 100%. ככל הנראה יהיו מקרים שבהם צריך לשנות את הקוד ובכל המקרים לפחות, יהיה עליו לשנות אותו כדי להבטיח שהוא ימשיך לתפקד כראוי.
    2. אין שום משאב פיננסי שהוקם רשמית לשלם למפתחים שמשקיעים מרצונם את זמנם בתהליך הגירה זה. מסיבה זו, יהיה קשה מאוד לתת מסגרות זמן מדויקות למשך כמה זמן כל חלק מתהליך. יש לקחת בחשבון אי ודאות זו בתכנון. כמובן שתרומות מוזמנות לעזור להגשים את זה.
    3. יתכנו שם מפתחים ומוסדות שמממנים תכונות חדשות לסדרות QGIS 2.x וזה עשוי להשפיע על עבודתך. יש צורך לכלול בתוכניות ובתקציבים של פרויקטים אלה, הקצאה מסוימת להתמודדות עם המעבר לפלטפורמת QGIS 3.x.
    4. אם צוות QGIS יעבוד על "שינוי כולל", יהיה זמן קצר יחסית שבמהלכו QGIS יהיה לא יציב ומשתנה כל הזמן עקב עדכונים שוטפים ל-QGIS 3.0.
    4. אם אתה מפתח בצורה 'אבולוציונית', אתה מסתכן שפיתוח 3.0 עשוי להימשך זמן רב יותר, אלא אם יש לך קבוצה נאמנה של מפתחים שעובדים על זה ומכינים אותו ליציאה.

    הצעות

לאור כל האמור לעיל, מוצע אחד משני קווי הפעולה:

1 הצעה:

שחרר גרסה 2.16 זמנית ואז התחל לעבוד על גרסה 3.0 כעדיפות, עם חלון פיתוח של 8 חודשים. שינויים שבוצעו בגרסה 2.16 יבקשו להיות תואמים לגרסה 3.0 (ראה python3 / pytq5).

2 הצעה:

השקת 3.0 בו זמנית עם חלון זמן ארוך יותר על QT5, Python 3.0 ו- PyQt5, ולבקש ממפתחים לבצע את עבודתם ב- 3.0. המשך בגרסאות 2.x במרווחי זמן קבועים עד ש- 3.0 מוכן.

הצעות חלופיות

יש לך הצעה חלופית? QGIS מעוניין לדעת על חלופות אפשריות. אם ברצונך להגיש הצעה, אנא שלח אל tim@qgis.org עם הנושא "הצעה QGIS 3.0".

ה בלוג QGIS, שבו יצא לאור.

גולגי אלוורז

סופר, חוקר, מומחה במודלים לניהול קרקעות. הוא השתתף בהמשגה והטמעה של מודלים כגון: מערכת לאומית לניהול נכסים SINAP בהונדורס, מודל ניהול של עיריות משותפות בהונדורס, מודל משולב של ניהול קדסטרים - רישום בניקרגואה, מערכת ניהול הטריטוריה SAT בקולומביה . עורך בלוג הידע Geofumadas מאז 2007 ויוצר האקדמיה AulaGEO הכוללת יותר מ-100 קורסים בנושאי GIS - CAD - BIM - תאומים דיגיטליים.

מאמרים נוספים

השאירו תגובה

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

לחצן חזרה למעלה