Начало осени - хороший повод начать что-то новое или обновить привычный инструмент для разработки, администрирования или чего-то другого. Поэтому мы подготовили дайджест интересных релизов августа, которые могут вас заинтересовать.
Начнем с самого очевидного на наш взгляд релиза, и это 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 позволяет использовать эту возможность внутри пакета. Однако использование через границы пакетов пока не поддерживается.
Также были внесены следующие изменения в инструменты:
Помимо прочего, были улучшены некоторые аспекты по части скорости работы, обновлены стандартные библиотеки, внесены изменения в порты и переменные окружения.
Magit - это текстовый интерфейс Git с приоритетным вниманием к оптимизации рабочего процесса. Команды вызываются с помощью коротких, мнемонических нажатий клавиш, которые учитывают положение курсора в интерфейсе, чтобы обеспечить контекстно-зависимое поведение.
С помощью Magit вы можете делать практически все, что можно делать с Git в командной строке, но с большей скоростью и с расширенными возможностями. Хотя выход новой версии инструмента, состоящей из 1077 коммитов, потребовал около трех лет, он заслуживает вашего внимания.
А теперь к основным обновлениям в новой версии этого инструмента для разработки:
Добавлены новые команды, инфиксные аргументы, новые хуки, параметры, а также внесены всевозможные улучшения и исправлены ошибки предыдущих версий.
В официальном объявлении Даниэля Стенберга сообщается о добавлении wcurl в проект curl, что делает его третьим инструментом командной строки, разработанным под эгидой curl.
Проект wcurl - это оболочка вокруг curl, позволяющая легко загружать файлы без необходимости запоминать какие-либо параметры. Условно, вам достаточно просто вызвать wcurl со списком URL-адресов, которые вы хотите загрузить, и wcurl выберет подходящие параметры по умолчанию.
Ранее wcurl был отдельным инструментом, но теперь целью автора проекта является расширение сферы применения wcurl за пределы его первоначальной ориентации на Debian. Репозиторий GitHub wcurl был перенесен, обеспечив правильное перенаправление на новый URL, а соавторам и сопровождающим curl предлагается опробовать wcurl и внести свой вклад в его развитие.
Таким образом, wcurl стал третьим инструментом командной строки, в семействе проекта curl. Вторым был trurl, после самого curl.
Выпущена Puppeteer 23, библиотека с открытым исходным кодом для автоматизации управления веб-браузером. Библиотека написана на TypeScript и JavaScript, исходный код которой доступен на GitHub под лицензией Apache 2.0.
Puppeteer облегчает автоматизацию рутинных операций с браузером и его тестирование. Библиотека позволяет создавать сценарии, выполняющие такие действия, как запуск браузера, открытие определенных страниц, фокусировка на полях поиска, ввод данных, отправка запросов и переход к первому результату поиска. Puppeteer также поддерживает загрузку последней версии браузера, имитацию устройств и работу с формами аутентификации.
Что нового в Puppeteer 23:
Хочется отдельно отметить возможности WebDriver BiDi в Puppeteer 23:
Хотя Firefox теперь официально поддерживается в Puppeteer и имеет достаточно функциональности для покрытия многих сценариев автоматизации и тестирования, все еще есть некоторые API, которые остаются не поддерживаемыми. Команда планирует заполнить эти пробелы в будущем.
Netplan - это инструмент для простой настройки сети в системе Linux. Вы просто создаете YAML-описание необходимых сетевых интерфейсов и того, для чего каждый из них должен быть настроен. На основе этого описания Netplan сгенерирует всю необходимую конфигурацию для выбранного вами инструмента рендеринга.
Если вас уже заинтересовал этот инструмент, то мы расскажем немного о новом релизе Netplan 1.1, который вышел спустя шесть месяцев и 120 коммитов после прошлой версии:
Если вы еще не пробовали Netplan или ищете инструмент для работы с сетью, возможно сейчас самое время поработать с чем-то новым.
Разработка SeaORM началась почти три года назад с целью создания всеобъемлющего ORM для асинхронной экосистемы Rust. SeaORM стал неотъемлемой частью стека Rust, особенно в таких фреймворках, как Loco, которые обеспечивают тесную интеграцию для упрощения работы разработчиков.
Сегодня это инструмент разработки и проект реляционной ORM-системы (Object-Relational Mapping) с открытым исходным кодом, которая помогает создавать веб-сервисы на Rust, используя динамические возможности языка.
Вот некоторые новые функции и усовершенствования, представленные в первой мажорной версии SeaORM 1.0.:
Что дальше? 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!