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) ואף מאפשרים את ניהול הגרסאות הבינאריות. (למשל בדיקת דביאן והגרסה הבאה של דביאן "מתיחה"). לתהליך הבאת QGIS ל- QT5 יש כבר פריצת דרך חשובה (בעיקר מה שמתיאס קון עשה) שיחד עם מרקו ברנשוצ'י מעשנים באנדרואיד «QField» המבוסס כולו על QT5. עם זאת, יש כמה מגבלות בהשקת ה- QT5 החדש בגלל השפעתו על QGIS - במיוחד עם ווידג'טים של דפדפני אינטרנט (המשמשים בעיקר במלחין וגם במקומות אחרים ב- QGIS).

עדכון PyQt4 ל- PyQt5: אלה השינויים היחסיים לשפת Python עבור Qt שעליו מבוסס ה- API של QGIS Python. נשאל לשנות את ספריית ++ C QT5, צפוי גם להעביר ספריית Python PyQt5 כדי שיוכלו לנצל את היתרונות של ה- API החדש ב Python QT5.
XTUMX עדכון Python 2.7 ל 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 שאנו נמצאים איתו עם nonconformity. אתה יכול לראות רשימה זמנית של שינויים המוצעים עבור ממשק ה- 3.0 API.

כיצד לתמוך בשינוי ה- 3.0 API

כפי שכבר הוזכר, הגרסה 3.0 הפסקה עם גרסת qgis 2.x לגרום ויש את האפשרות כי תוספים רבים, יישומים קיימים קודים אחרים מבוססים על שבירת API הנוכחית. אז מה ניתן לעשות כדי למתן את השינויים? מתיאס קון, יורגן פישר, Nyall דוסון, מרטין Dobias ומפתחים גדולים אחרים כבר מחפשים דרכים להקטין את מספר שבירת API שינויים ועדיין לקידום qgis קוד הבסיס להתבסס על הדור הבא של ספריות ו- API פנימי משלהם. במהלך הפגישה האחרונה שלנו של ועדת ההיגוי של הפרויקט QGIS היה geofumó באמצעות מספר אפשרויות. הטבלה הבאה מסכמת את מה שמתיאס קון סיכם בחביבות ואשר ניסינו בחלקו לתעתק במאמר זה על פי מה פורסם בבלוג שלך:


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 ->
מספק ~ 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. Sיש לציין כי בעוד שהגישה המתוארת לעיל נועדה למזער את כמות העבודה ב- python scripting ב- plugins, זה לא בהכרח יהיה ב- 100%. סביר להניח שיהיו מקרים בהם יש להתאים את הקוד, ובכל מקרה לפחות יש לבדוק אותו על מנת להבטיח שהוא ימשיך לתפקד כראוי.
    2. אין משאבים כספיים רשמית לשלם למפתחים אשר מרצון להשקיע את זמנם בתהליך זה הגירה. בגלל זה, יהיה קשה מאוד לתת זמן מדויק על כמה זמן כל חלק של התהליך ייקח. אי ודאות זו חייבת להילקח בחשבון בתכנון. כמובן תרומות מוזמנים לעזור לגרום לזה לקרות.
    3. אולי יש מפתחים ומוסדות שם בחוץ אשר מממנים תכונות חדשות עבור 2.x QGIS סדרה וזה יכול להשפיע על עבודתם. כלול בתוכניות ובתקציבים של פרויקטים אלה, חלק הקצאת לטפל הגירה לפלטפורמה 3.x של QGIS.
    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, שבו יצא לאור.

השאירו תשובה

כתובת הדוא"ל שלך לא תפורסם.

אתר זה משתמש Akismet כדי להפחית דואר זבל. למד כיצד מעובדים נתוני ההערה שלך.