Nowości dla programistów i administratorów systemów

GNOME 3.20 wprowadza wiele nowych funkcji i ulepszeń dla osób pracujących z technologiami GNOME.

Builder

Builder to nowe zintegrowane środowisko programistyczne dla GNOME. Dostarcza ono prosty, potężny i nowoczesny interfejs do budowania programów GNOME. Builder obsługuje uzupełnianie, globalne wyszukiwanie, oraz zawiera przeglądarkę dokumentacji i drzewa symboli.

Wydanie 3.20 wprowadza kilka dużych nowych funkcji, w także wiele pomniejszych ulepszeń. Znacznie rozszerzono opcje budowania programów: można teraz używać Buildera do tworzenia pakietów xdg-app, a także do budowania w środowisku JHBuild. Wszystkie opcje budowania można znaleźć w nowym widoku konfiguracji budowania. Wpis na blogu Christiana Hergerta zawiera więcej informacji.

Wydanie 3.20 zawiera także nowy, wieloprocesowy mechanizm wtyczek. Umożliwia on wtyczkom dodawanie wielu rodzajów funkcjonalności, w tym dodatkowe narzędzia, usługi, systemy budowania, mechanizmy automatycznego uzupełniania, automatycznych wcięć, wyszukiwania projektów, wyszukiwania w projektach, rozwiązywania symboli, obsługę systemów kontroli wersji i wiele więcej. Ten artykuł dostarcza pełną listę możliwości rozszerzania za pomocą nowego systemu wtyczek. Dostępny jest także samouczek pisania wtyczek (część pierwsza, część druga).

Inne ulepszenia programu Builder w wydaniu 3.20:

  • Przeprojektowane preferencje programu, ułatwiające wyszukiwanie odpowiednich ustawień.

  • Nowa wtyczka TODO wyświetlająca listę wszystkich komentarzy TODO, FIXME i XXX w projekcie, umożliwiając przejście do ich położeń.

  • Ulepszenia emulacji edytora Vim dla miłośników edycji w trybach.

  • Wykrywanie i wyróżnianie częstych błędów gettext.

  • ide, nowy program wiersza poleceń, umożliwiający szybkie tworzenie nowych projektów używających standardów społeczności GNOME.

  • Przytrzymanie klawisza Ctrl podczas klikania na zmiennych, typach i funkcjach w językach obsługujących analizę semantyczną powoduje przejście do położenia źródłowego.

  • Początkowa obsługa języka Vala.

  • Szybsze automatyczne uzupełnianie i obsługa wyszukiwania przybliżonego.

  • Można teraz używać Buildera z ccache.

xdg-app

xdg-app to nowy, wieloplatformowy mechanizm budowania i rozpowszechniania programów dla systemu GNU/Linux, którego obsługa w GNOME jest planowana. xdg-app umożliwia nie tylko tworzenie programów działających w wielu dystrybucjach, ale także będzie zawierać kompleksowy model zabezpieczeń, ograniczający programom dostęp do systemu.

3.20 to znaczne wydanie dla xdg-app, który po raz pierwszy oferuje najważniejsze funkcje w stabilnej wersji. Wydanie 3.20 zawiera xdg-app-builder, nowe narzędzie ułatwiające budowanie programów. Alexander Larsson, główny programista xdg-app, napisał pięcioczęściowy samouczek (część pierwsza, część druga, część trzecia, część czwarta, część piąta).

Do wypróbowania instalowania i uruchamiania programów xdg-app dostępny jest zestaw programów GNOME budowanych co noc. Dzięki temu można także testować rozwojowe wersje programów GNOME i zobaczyć możliwość instalowania wielu różnych wersji tego samego programu w tym samym czasie, dostarczaną przez xdg-app. Więcej informacji można znaleźć w samouczku.

Pozostałe znaczne zmiany w wydaniu 3.20:

  • Możliwość tworzenia i rozpowszechniania programu w jednym pliku. Jest to przydatne zwłaszcza podczas używania fizycznych nośników.

  • System uprawnień używany do przechowywania informacji o tym, co jest dozwolone dla programu. Jest to jeden z pierwszych kroków na drodze do systemu ograniczania programów.

  • W pakietach xdg-app można zamieszczać szczegółowe informacje o programie, takie jak opis i zrzuty ekranu, używając międzyplatformowego standardu AppData. Mogą one być używane w sklepach, takich jak Menedżer oprogramowania GNOME.

  • Zaktualizowane i ulepszone środowiska uruchomieniowe GNOME, dostarczające wspólną platformę dla programów. Zawierają one teraz wersje niestabilne, których można używać do instalowania programów budowanych codziennie lub do rozwijania programów. Strona wiki zawiera więcej informacji o dostępnych środowiskach.

GTK+

3.20 to ważne wydanie dla biblioteki GTK+. Przepisano obsługę motywów CSS, zwiększając wydajność, ułatwiając pisanie motywów i tworzenie dynamicznych interfejsów. Motywy GTK+ używają teraz standardowego modelu pudełek CSS, oraz dodano możliwość podawania marginesów i minimalnej wysokości/szerokości. Nie tylko pomaga to osobom znającym już standard CSS, ale jest także bardziej przewidywalne i daje autorom motywów więcej kontroli nad układem i odstępami.

Inne funkcje motywów CSS w wydaniu 3.20:

  • Pełna dokumentacja motywów CSS oraz nazwy elementów, klasy stylów i ich struktura w dokumentacji widżetów.

  • Selektory CSS umożliwiają lepsze korzystanie ze szczegółowości w motywach oraz dają więcej elastyczności i możliwości autorom motywów.

  • Animowanie widżetów używając CSS.

  • Obsługa dodatkowych funkcji CSS, w tym radial-gradient(), rem i calc().

W wyniku tych zmian, istniejące motywy GTK+ muszą zostać zaktualizowane, a wiele właściwości stylów zostało zastąpionych odpowiednikami ze standardu CSS. API dla CSS z wersji 3.20 w przyszłości będzie stabilne (i zgodne z dokumentacja dołączoną do tej wersji).

Motywy CSS to nie jedyny obszar ulepszony w GTK+ 3.20:

  • GtkShortcutsWindow to nowy widżet do wyświetlania przeglądu skrótów klawiszowych i gestów wielopunktowych w programach. Grupy, strony i wbudowane wyszukiwanie ułatwiają znajdywanie odpowiednich skrótów.

  • gtk-query-settings to nowe narzędzie wiersza poleceń do odpytywania ustawień biblioteki GTK+ widoczne dla programu.

  • gtk-builder-tool ma nowe polecenie wyświetlania podglądu plików .ui.

  • 3.20 zawiera pierwsze wydanie gspell, nowej biblioteki sprawdzania pisowni dla programów GTK+. To najlepsza biblioteka tego typu dla GTK+, ułatwiająca dodawanie funkcji sprawdzania pisowni do widżetu GtkTextView. W wydaniu 3.20 biblioteka gspell jest już używana przez edytor tekstu gedit.

  • gtk3-demo zawiera teraz demonstrację rysowania w obcych programach pokazującą, jak nakładać motyw wizualny GTK+ widżetom spoza biblioteki GTK+.

  • Ulepszono zachowanie ustalania rozmiaru GtkWindow podczas używania dekoracji okien po stronie klienta. Oznacza to, że gtk_window_set_default_size() musi być teraz łączone z gtk_window_get_size(): instrukcje zapisywania stanu okna zawierają wskazówki na ten temat.

Inspektor biblioteki GTK+

Inspektor biblioteki GTK+ w wydaniu 3.20 otrzymał liczne aktualizacje:

  • Udoskonalony interfejs użytkownika: panel boczny został zastąpiony rozwijaną listą, aby poświęcić więcej miejsca na treść, oraz wyczyszczono listy i drzewa.

  • Informacje o urządzeniu wyświetlane w karcie „Ogólne”.

  • Wyświetlanie węzłów CSS i powiązanych z nimi informacji o stylu.

  • Możliwość wyróżniania widżetów powodujących zmiany rozmiaru.

WebKitGTK+

Ważne zmiany w wersji 3.20 biblioteki WebKitGTK+:

  • Dokładne przywracanie sesji za pomocą nowych API szeregowania/przywracania.

  • Paski przewijania wyświetlane jako półprzezroczysta nakładka, podobnie do pasków biblioteki GTK+.

  • Obsługa onbeforeunload, umożliwiająca stronom wyświetlanie komunikatów podczas ich opuszczania.

  • Nowe API umożliwiające dostęp do komunikatów w konsoli.

  • Znaczący postęp w stronę izolowania procesów WWW od sieci, co w przyszłości zwiększy bezpieczeństwo WebKitGTK+.

PyGObject

Ulepszenia PyGObject w wydaniu 3.20 obejmują rozszerzoną obsługę GError oraz zwiększoną wydajność wywołań i zamknięć funkcji. Ulepszono także leksykon API PyGObject:

  • Dodano odnośniki do kodu źródłowego C w git.gnome.org.

  • Wiele ulepszeń dokumentacji obejść (w tym Gtk.ListStore i Gtk.TreeModelRow).

  • Ulepszono wyszukiwanie i dodano nowe ustawienia wyszukiwania.

Inne ulepszenia

Inne ulepszenia dla programistów w GNOME 3.20 obejmują:

  • Dodano obsługę DTLS w bibliotece GLib, aby umożliwić obsługę zaszyfrowanego streamowania multimediów.

  • Także w bibliotece GLib, nowe funkcje pomocnicze działań na liczbach całkowitych sprawdzonych pod kątem przepełnienia bufora ułatwiają pisanie bezpiecznego kodu.

  • JSON-GLib, Gom i GtkBuilder mogą być teraz używane z poziomu biblioteki GJS.

  • Tracker ma znacznie ulepszoną obsługę języka SPARQL 1.1 (więcej informacji znajduje się w specyfikacjach języka zapytań i języka aktualizacji). Składnia DELETE {...}, INSERT {...} i WHERE {...} jest teraz obsługiwana, można też używać BIND, oraz dodano wiele wbudowanych funkcji języka SPARQL 1.1.

  • gitg, graficzny klient systemu git dla środowiska GNOME, otrzymał nowy styl listy repozytoriów. Ulepszono także podgląd zatwierdzeń i różnice, dając im nowy wygląd i integrację z motywami systemu (wyglądają więc poprawnie w ciemnym motywie).