Новости

Что нового в Августе 2024: релизы Go, Puppeteer и других инструментов

Август был насыщен на релизы интересных инструментов и мы спешим рассказать о них в свежем дайджесте: Go 1.23, Magit 4.0, Puppeteer 23, Netplan 1.1 и другие.

Команда is*hosting 3 сен 2024 4 мин
Что нового в Августе 2024: релизы Go, Puppeteer и других инструментов

Начало осени - хороший повод начать что-то новое или обновить привычный инструмент для разработки, администрирования или чего-то другого. Поэтому мы подготовили дайджест интересных релизов августа, которые могут вас заинтересовать.

Go 1.23

Go 1.23

Начнем с самого очевидного на наш взгляд релиза, и это Go 1.23. Последняя версия Go, выпущенная 13 августа 2024 года, распространяется под лицензией BSD с открытым исходным кодом.

Основные изменения в языке заключаются в том, что Go 1.23 делает эксперимент «range-over-func» (Go 1.22) полноценной частью языка. Предложение «range» в цикле «for-range» теперь принимает функции-итераторы следующих типов: func(func() bool); func(func(K) bool); func(func(K, V) bool) - в качестве выражений диапазона.

Добавлен новый пакет iter, который предоставляет базовые операции для организации перечислений последовательностей. Кроме того, в пакеты slices и maps добавлены новые возможности для работы с итераторами.

Go 1.23 включает предварительную поддержку псевдонимов общих типов. Сборка цепочки инструментов с GOEXPERIMENT=aliastypeparams позволяет использовать эту возможность внутри пакета. Однако использование через границы пакетов пока не поддерживается.

Также были внесены следующие изменения в инструменты:

  • Введена телеметрия Go для сбора статистики использования и поломок.
  • В команду go добавлены новые флаги и команды.
  • Улучшена подкоманда go vet и инструмент cmd/cgo.
  • Усовершенствован инструмент трассировки для лучшей обработки частичных трасс.

Помимо прочего, были улучшены некоторые аспекты по части скорости работы, обновлены стандартные библиотеки, внесены изменения в порты и переменные окружения.

Magit 4.0 - текстовый клиент для Git в Emacs

Magit 4.0 - текстовый клиент для Git в Emacs

Magit - это текстовый интерфейс Git с приоритетным вниманием к оптимизации рабочего процесса. Команды вызываются с помощью коротких, мнемонических нажатий клавиш, которые учитывают положение курсора в интерфейсе, чтобы обеспечить контекстно-зависимое поведение.

С помощью Magit вы можете делать практически все, что можно делать с Git в командной строке, но с большей скоростью и с расширенными возможностями. Хотя выход новой версии инструмента, состоящей из 1077 коммитов, потребовал около трех лет, он заслуживает вашего внимания.

А теперь к основным обновлениям в новой версии этого инструмента для разработки:

  • Удалено несколько функций, переменных и значений переменных, которые были устаревшими в прошлых выпусках, включая git-commit-fill-column, magit-section-when, face aliases, magit-branch-rename-push-target, %-sequence в magit-branch-name-format.
  • Удалена библиотека magit-libgit.el, которая была лишь пробным вариантом. Упаковщикам было рекомендовано не включать эту библиотеку в пакет Magit, но многие пренебрегли этим. Поскольку это вызвало проблемы у многих пользователей, её пришлось удалить.
  • Завершён переход на новую реализацию magit-completing-read-multiple.
  • Добавлено много контекстных меню, которые являются отличным способом обнаружения контекстно-зависимых команд.
  • Переписана поддержка Imenu, что привело к появлению нескольких новых функций и значительному сокращению кода.
  • Добавлена поддержка отображения ошибок, возникающих при очистке раздела, которую можно использовать для буферов diff и log.

Добавлены новые команды, инфиксные аргументы, новые хуки, параметры, а также внесены всевозможные улучшения и исправлены ошибки предыдущих версий.

В проект curl официально вошёл проект wcurl

В проект curl официально вошёл проект wcurl

В официальном объявлении Даниэля Стенберга сообщается о добавлении wcurl в проект curl, что делает его третьим инструментом командной строки, разработанным под эгидой curl.

Проект wcurl - это оболочка вокруг curl, позволяющая легко загружать файлы без необходимости запоминать какие-либо параметры. Условно, вам достаточно просто вызвать wcurl со списком URL-адресов, которые вы хотите загрузить, и wcurl выберет подходящие параметры по умолчанию.

Ранее wcurl был отдельным инструментом, но теперь целью автора проекта является расширение сферы применения wcurl за пределы его первоначальной ориентации на Debian. Репозиторий GitHub wcurl был перенесен, обеспечив правильное перенаправление на новый URL, а соавторам и сопровождающим curl предлагается опробовать wcurl и внести свой вклад в его развитие.

Таким образом, wcurl стал третьим инструментом командной строки, в семействе проекта curl. Вторым был trurl, после самого curl.

Библиотека Puppeteer 23

Библиотека Puppeteer 23

Выпущена Puppeteer 23, библиотека с открытым исходным кодом для автоматизации управления веб-браузером. Библиотека написана на TypeScript и JavaScript, исходный код которой доступен на GitHub под лицензией Apache 2.0.

Puppeteer облегчает автоматизацию рутинных операций с браузером и его тестирование. Библиотека позволяет создавать сценарии, выполняющие такие действия, как запуск браузера, открытие определенных страниц, фокусировка на полях поиска, ввод данных, отправка запросов и переход к первому результату поиска. Puppeteer также поддерживает загрузку последней версии браузера, имитацию устройств и работу с формами аутентификации.

Что нового в Puppeteer 23:

  • Добавлена поддержка Firefox, что расширило первоначальную поддержку браузеров на базе Chromium.
  • По умолчанию браузеры запускаются в режиме headless.
  • Для взаимодействия с браузерами Puppeteer использует протокол Chrome DevTools Protocol (CDP) и WebDriver BiDi.

Хочется отдельно отметить возможности WebDriver BiDi в Puppeteer 23:

  • Захват сообщений журнала. Доступен протокол, основанный на событиях, который избавит вас от необходимости опрашивать браузер на предмет новых сообщений журнала.
  • Эмуляция устройств. Наиболее удобная опция для тестирования макета на разных устройствах. Соответственно, WebDriver BiDi позволяет реализовать эмуляцию любых устройств кроссбраузерным способом.
  • Перехват сети. Перехват может быть использован для предотвращения запросов к сторонним сервисам во время тестов, предоставления имитирующих ответ данных, для обработки диалогов аутентификации HTTP и переопределения частей запроса и ответа, например, добавления или удаления заголовков.
  • Предварительная загрузка скриптов. WebDriver BiDi предоставляет сценарии «предварительной загрузки», которые могут быть запущены до загрузки страницы. Он также предоставляет средства для эмиссии пользовательских событий из скриптов.

Хотя Firefox теперь официально поддерживается в Puppeteer и имеет достаточно функциональности для покрытия многих сценариев автоматизации и тестирования, все еще есть некоторые API, которые остаются не поддерживаемыми. Команда планирует заполнить эти пробелы в будущем.

Инструментарий Netplan 1.1

Инструментарий Netplan 1.1

Netplan - это инструмент для простой настройки сети в системе Linux. Вы просто создаете YAML-описание необходимых сетевых интерфейсов и того, для чего каждый из них должен быть настроен. На основе этого описания Netplan сгенерирует всю необходимую конфигурацию для выбранного вами инструмента рендеринга.

Если вас уже заинтересовал этот инструмент, то мы расскажем немного о новом релизе Netplan 1.1, который вышел спустя шесть месяцев и 120 коммитов после прошлой версии:

  • Появилась возможность переопределения логики службы systemd-networkd-wait-online для ожидания определенных внутренних (link-local) и маршрутизируемых сетевых интерфейсов.
  • Внедрена поддержка изменения настроек eswitch (embedded-switch-mode) для сетевых интерфейсов без виртуальных функций (VF) на устройствах SR-IOV (Single Root I/O Virtualization).
  • Теперь поддерживается возможность использования флагов, позволяющих парсеру конфигурации игнорировать определенные неправильные настройки без остановки генерации всей конфигурации бэкенда.
  • Были исправлены проблемы, характерных для ProtonVPN и Microsoft Azure Linux.

Если вы еще не пробовали Netplan или ищете инструмент для работы с сетью, возможно сейчас самое время поработать с чем-то новым.

SeaORM 1.0

SeaORM 1.0

Разработка SeaORM началась почти три года назад с целью создания всеобъемлющего ORM для асинхронной экосистемы Rust. SeaORM стал неотъемлемой частью стека Rust, особенно в таких фреймворках, как Loco, которые обеспечивают тесную интеграцию для упрощения работы разработчиков.

Сегодня это инструмент разработки и проект реляционной ORM-системы (Object-Relational Mapping) с открытым исходным кодом, которая помогает создавать веб-сервисы на Rust, используя динамические возможности языка.

Вот некоторые новые функции и усовершенствования, представленные в первой мажорной версии SeaORM 1.0.:

  • Усовершенствован синтаксис определения схемы с использованием новых помощников схемы.
  • Упрощены сценарии миграции с уменьшенным кодом.
  • Сопоставления типов в экосистеме SeaQL теперь взаимны, что обеспечивает совместимость между SeaQuery и SeaSchema.
  • Типы данных SQLite отображаются на пользовательские типы в соответствии с правилом родства SQLite.
  • Добавлен атрибут «rename_all» для DeriveEntityModel и DeriveActiveEnum. Это позволяет настраивать оболочку атрибутов моделей и перечислений.
  • Множество других улучшений и исправлений.

Что дальше? SeaORM 1.0 в настоящее время построен на SQLx 0.7. В связи с изменениями в SQLx 0.8, SeaORM 1.1 будет выпущен на SQLx 0.8, чтобы избежать незапланированных сбоев в сборке. Также пользователям рекомендуется указать требование тильды (например, «sea-orm = { version = „~1.0“ }»), чтобы предотвратить автоматическое обновление до SeaORM 1.1.

Хорошего месяца и до встречи в новом дайджесте от is*hosting!

VPS

Выбирайте конфигурацию и пользуйтесь всеми преимуществами виртуального приватного сервера.

От $5.00/месяц
Выделенный сервер

Бесперебойная работа, высокая производительность и удобная настройка - все для вас.

От $70.00/месяц