QGIS

QGIS 3.0 - Làm thế nào, khi nào và cái gì; nó ngụ ý

Nhiều người tự hỏi mình:

Khi nào QGIS 3.0 sẽ được phát hành?

Năm trước (2015) nhóm dự án đã bắt đầu điều tra khi nào và như thế nào QGIS 3.0 đã được phát hành. Họ hứa, theo một bài báo từ Anita Graser, họ sẽ truyền đạt rõ ràng cho người dùng và nhà phát triển kế hoạch của họ trước khi ra mắt QGIS 3.0. Gần đây, họ đã cố gắng đưa ra một số cân nhắc cho bản phát hành QGIS 3.0 và ở cuối bài đăng, chúng tôi có cơ hội để trình bày ý tưởng của mình.

Tại sao 3.0?

QGis_LogoThông thường, một phiên bản chính được dành riêng cho những thời điểm có thay đổi lớn đối với API phần mềm của bạn. Sự phá vỡ này không phải là một quyết định tầm thường đối với dự án QGIS vì chúng tôi có hàng trăm nghìn người dùng phụ thuộc vào QGIS, cho mục đích sử dụng của chính chúng tôi và các dịch vụ được cung cấp cho bên thứ ba.

Đôi khi phá vỡ API là cần thiết để phù hợp với việc cập nhật các kiến ​​trúc với phương pháp cải thiện, thư viện mới và chỉnh sửa để quyết định thực hiện trong quá khứ.

hậu quả của vi phạm API là gì?

Một lý do tại sao vi phạm này của API trong QGIS 3.0 là nó sẽ có ảnh hưởng lớn, có thể phá vỡ hàng trăm plugin phát triển đó sẽ không còn tương thích với các API mới và các tác giả của những điều này đã làm một đánh giá về sự phát triển của họ để đảm bảo tính tương thích với API mới.

Mức độ thay đổi cần thiết phụ thuộc chủ yếu vào:

  • Nhiều thay đổi API ảnh hưởng đến các chức năng hiện hành.
    Có bao nhiêu điểm plugins tác giả đã sử dụng các bộ phận của API đó sẽ thay đổi.
  • những thay đổi chính để 3.0 là gì?

Có bốn lĩnh vực chính mà đang tìm kiếm sự thay đổi ở 3.0:

 

Qt4 để QT5 cập nhật: Đây là bộ thư viện cơ bản mà QGIS được xây dựng ở cấp cao nhất, chúng tôi nói về cấp CORE-chức năng của nền tảng. QT cũng cung cấp các thư viện để thực hiện quản lý bộ nhớ, hoạt động kết nối và quản lý đồ họa. Qt4 (mà QGIS hiện đang dựa trên) hiện không được phát triển bởi những người duy trì thư viện Qt và có thể có vấn đề về chức năng với một số nền tảng (ví dụ: OS X) và thậm chí giúp dễ dàng quản lý các phiên bản nhị phân hơn (ví dụ: Thử nghiệm Debian và bản phát hành Debian tiếp theo "Kéo dài"). Quá trình đưa QGIS lên QT5 đã có một bước tiến quan trọng (chủ yếu là những gì Matthias Kuhn đã làm) cùng với Marco Bernasocchi khói trên Android "QField" hoàn toàn dựa trên QT5. Tuy nhiên, có một số hạn chế trong việc thiết lập và chạy QT5 mới do ảnh hưởng của nó đến QGIS - đặc biệt là với các widget của trình duyệt web (chủ yếu được sử dụng trong Composer và một số nơi khác trong QGIS).

PyQt4 để PyQt5 cập nhật: Đây là những thay đổi tương đối đối với ngôn ngữ Python cho Qt mà dựa trên API của Python của QGIS. Phát sinh thay đổi thư viện QT5 C ++, cũng dự kiến ​​sẽ chuyển vào thư viện python PyQt5 để họ có thể tận dụng những lợi ích của các API mới bằng Python QT5.
Cập nhật Python Python 2.7 3 để: Hiện tại mọi thứ đều chạy trên Python 2.7. Python 3 là phiên bản mới nhất của python và được những người dẫn đầu dự án đó khuyên dùng. Python 2 hơi không tương thích với Python 3 (gần như tỷ lệ thuận với sự không tương thích giữa QGIS 2 và Qgis 3). Nhiều nhà phát triển đã làm cho python Python 3 tương thích ngược phần lớn với Python 2, nhưng khả năng tương thích ngược không phải là tuyệt vời.
Cải thiện API riêng QGIS: Một trong những vấn đề với việc duy trì khả năng tương thích API giữa các phiên bản là bạn phải sống với các lựa chọn thiết kế của mình trong thời gian dài. Mọi nỗ lực đều được thực hiện trong QGIS để không phá vỡ API trong một loạt các bản phát hành nhỏ. Việc phát hành phiên bản QGIS cho 3.0 với API hiện không được hỗ trợ sẽ cho chúng tôi cơ hội "dọn dẹp" bằng cách sửa những thứ trong API mà chúng tôi không tuân thủ. Bạn có thể xem danh sách tạm thời về 3.0 đề xuất thay đổi đối với API.

Làm thế nào để hỗ trợ thay đổi API 3.0

Như đã đề cập, phiên bản 3.0 sẽ phá vỡ với QGIS phiên bản 2.x và có khả năng nhiều plugin, ứng dụng hiện có và mã khác dựa trên API hiện tại sẽ bị hỏng. Vì vậy, những gì có thể được thực hiện để giảm thiểu các thay đổi? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias và các nhà phát triển hàng đầu khác đã tìm cách giảm thiểu số lần thay đổi lỗi API trong khi tiếp tục cải tiến cơ sở mã QGIS dựa trên thế hệ thư viện tiếp theo và API nội bộ của chính nó. Trong cuộc họp cuối cùng của chúng tôi về Ban chỉ đạo Dự án QGIS, chúng tôi đã tìm hiểu thông tin về các khả năng khác nhau. Bảng sau đây tóm tắt những gì Matthias Kuhn hài lòng đã tóm tắt và chúng tôi đã cố gắng chuyển ngữ một phần trong bài viết này theo những gì Họ công bố trên blog của mình:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Fecha de lanzamiento Cuối tháng Hai tháng 4 2.14 ¿Cycle 8 tháng?
Notas Cập nhật các mã chính QGIS trăn Python 3 để đảm bảo phù hợp và hỗ trợ PyQt5 (thực hiện từng phần cho khóa chức năng ví dụ như giao diện điều khiển, plugins python lõi, vv)
Qt4 Si

Bị phản đối trong Debian Stretch (do trong một năm)

(-webkit loại bỏ)

Không
Qt5 Không

Bỏ lỡ QWebView - thay thế mới không phải trên tất cả các nền tảng. Cũng nhớ QPainter Engine.

Si Si
PyQt4 Si Si Không
PyQt5 Không Si Si
Python 2 Si Si Không
Python 3 Không Si Si
API Cleanup Không Không Si
Máy đóng gói
PyQt5 -> PyQt4
Cung cấp ~ 90% tương thích ngược
Không Si Si
Nhị phân chính Qt4 Dựa Qt4 Dựa Qt5 Dựa
Ưu tiên tài trợ Trăn Python

Có hai điều quan trọng cần ghi nhớ về đề xuất của Matias:

Trong giai đoạn đầuCông việc được thực hiện trong loạt để hoàn thành 2.x hỗ trợ QT5, PyQt5 sử dụng Python 3.0, hỗ trợ Qt4, PyQt4 và Python 2.7. Điều này ngụ ý rằng tất cả những thay đổi được thực hiện trong giai đoạn đầu tiên sẽ tương thích với phiên bản 2.x trước đó. tính năng Python sẽ được kết hợp sẽ được giới thiệu để các API PyQt4 cũ vẫn có thể được sử dụng đặc biệt là khi biên dịch chống lại QT5, PyQt5, Python 3.0. Khi sử dụng QGIS biên dịch với Qt4, PyQt4 và Python 2.7 sẽ không có sự tương thích vỡ.
Trong giai đoạn thứ haiNó sẽ làm việc để sản xuất QGIS 3.0, giới thiệu các API mới, hoàn toàn loại bỏ các Python 2.7, bao gồm hỗ trợ cho Qt4 và PyQt4. Các tính năng mới trong python bước vào giai đoạn đầu tiên sẽ được duy trì, có tính đến tất cả các mã python và phát triển cho các phiên bản 2.x của QGIS tiếp tục làm việc trên các phiên bản 3.x của QGIS. Trong giai đoạn này, bạn cũng sẽ phải giới thiệu các thay đổi đối với API QGIS có thể làm hỏng một số plugin. Để giải quyết điều này sẽ cung cấp di cư hướng dẫn aa để cố gắng tạo điều kiện cho sự di cư của các phiên bản 2.x QGIS 3.x QGIS phiên bản.

Nên biết trước emptor

Có một vài thủ thuật cần được đưa ra để đảm bảo rằng việc chuyển đổi sang QGIS 3.0 sẽ không gây đau đớn.

  • 1. SCần lưu ý rằng mặc dù cách tiếp cận được đề ra ở trên cố gắng giảm thiểu khối lượng công việc về tập lệnh python trong plugin, nhưng điều này không nhất thiết phải là 100%. Rất có thể sẽ có những trường hợp mã phải được điều chỉnh và ít nhất trong mọi trường hợp, nó sẽ phải được sửa lại để đảm bảo rằng nó tiếp tục hoạt động bình thường.
    2. Không có nguồn tài chính chính thức được thiết lập để trả cho các nhà phát triển tự nguyện đầu tư thời gian của họ cho quá trình di chuyển này. Do đó, sẽ rất khó để đưa ra khung thời gian chính xác cho mỗi phần của quy trình sẽ mất bao lâu. Sự không chắc chắn này phải được tính đến khi lập kế hoạch. Tất nhiên, sự đóng góp được hoan nghênh để giúp thực hiện điều này.
    3. Có thể có các nhà phát triển và tổ chức đang tài trợ các tính năng mới cho dòng QGIS 2.x và điều này có thể ảnh hưởng đến công việc của bạn. Cần phải đưa vào kế hoạch và ngân sách của các dự án này một khoản phân bổ nhất định để đối mặt với việc chuyển sang nền tảng QGIS 3.x.
    4. Nếu nhóm QGIS làm việc trên cơ sở "thay đổi toàn bộ", thì sẽ có một thời gian tương đối ngắn trong đó QGIS sẽ không ổn định và thay đổi liên tục do các bản cập nhật liên tục lên QGIS 3.0.
    4. Nếu bạn phát triển theo cách 'tiến hóa', bạn sẽ gặp rủi ro rằng quá trình phát triển 3.0 có thể mất nhiều thời gian hơn trừ khi bạn có một nhóm nhà phát triển trung thành làm việc trên đó và chuẩn bị sẵn sàng cho việc phát triển XNUMX.

    Đề xuất

Trong ánh sáng của tất cả các thông tin trên, một trong hai dòng hành động được đề xuất:

1 Đề xuất:

Phát hành phiên bản tạm thời 2.16 và sau đó bắt đầu làm việc trên phiên bản 3.0 như một ưu tiên, với thời hạn phát triển là 8 tháng. Các thay đổi được thực hiện trong phiên bản 2.16 sẽ tìm cách tương thích với phiên bản 3.0 (xem python3 / pytq5).

2 Đề xuất:

Lunging lần 3.0 với một cửa sổ thời gian gia hạn thêm về QT5, Python 3.0 và PyQt5 và yêu cầu các nhà phát triển để làm công việc của họ trong 3.0. Tiếp tục với các phiên bản 2.x trong khoảng thời gian đều đặn cho đến khi 3.0 đã sẵn sàng.

Đề xuất thay thế

Có một đề xuất thay thế? QGIS muốn biết về các giải pháp thay thế có thể có. Nếu bạn muốn gửi một đề xuất, vui lòng gửi đến tim@qgis.org với chủ đề “Đề xuất QGIS 3.0”.

Nên làm theo các QGIS viết blogBởi đâu đến ấn phẩm này.

Golgi Alvarez

Nhà văn, nhà nghiên cứu, chuyên gia về Mô hình quản lý đất đai. Ông đã tham gia vào việc hình thành và triển khai các mô hình như: Hệ thống quản lý tài sản quốc gia SINAP ở Honduras, Mô hình quản lý các thành phố chung ở Honduras, Mô hình tổng hợp quản lý địa chính - đăng ký ở Nicaragua, Hệ thống quản lý lãnh thổ SAT ở Colombia . Biên tập viên của blog kiến ​​thức Geofumadas từ năm 2007 và là người tạo ra Học viện AulaGEO bao gồm hơn 100 khóa học về các chủ đề GIS - CAD - BIM - Digital Twins.

Bài viết liên quan

Để lại một bình luận

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

Back to top