The beginning of fall is an excellent time to start something new or update a familiar tool for development, administration, or anything else. That's why we've prepared a roundup of interesting August releases that might interest you.
The most apparent release is probably Go 1.23. The latest version of Go, released on August 13, 2024, is distributed under the BSD open-source license.
The major changes to the language are that Go 1.23 makes the "range-over-func" experiment (Go 1.22) a full-fledged part of the language. The "range" clause in the "for-range" loop now accepts iterator functions of the following types: func(func() bool); func(func(K) bool); func(func(K, V) bool) — as range expressions.
A new iter package provides basic operations for organizing sequence enumerations. The slices and maps packages have also been updated to include new functions for working with iterators.
Go 1.23 includes preliminary support for aliases of common types. Building a toolchain with GOEXPERIMENT=aliastypeparams allows this feature to be used within a package. However, cross-package use still needs to be supported.
In addition, the following changes have been made to the tools:
Some runtime improvements, updates to standard libraries, and changes to ports and environment variables have been made, among other things.
Magit is a text-based Git interface that focuses on workflow optimization. Commands are invoked with short, mnemonic keystrokes that take into account the cursor position in the interface to provide context-sensitive behavior.
Magit lets you do almost everything you can do with Git on the command line, but with more speed and advanced features. Although it took about three years to release a new version of the 1077 commit tool, it deserves your attention.
And now to the major updates in the new version of this dev tool:
The new version of this dev tool also includes new commands, infix arguments, hooks, and parameters, as well as improvements and bug fixes from previous versions.
Daniel Stenberg has officially announced the addition of wcurl to the curl project, making it the third command line tool developed under the curl umbrella.
The wcurl project is a shell around curl that allows you to easily upload files without remembering any parameters. Traditionally, you just call wcurl with a list of URLs you want to download, and wcurl chooses the appropriate defaults.
Previously, wcurl was a standalone tool, but it is now the goal of the project author to expand the scope of wcurl beyond its original Debian focus. The wcurl GitHub repository has been migrated to ensure proper redirection to the new URL, and curl contributors and maintainers are encouraged to try wcurl and contribute to its development.
This made wcurl the third command line dev tool in the curl project family. The second was trurl, after curl itself.
Puppeteer 23, an open-source web browser control automation library, was released in August. The library is written in TypeScript and JavaScript, and its source code is available on GitHub under the Apache 2.0 license.
Puppeteer simplifies automating routine browser tasks and testing. The library lets you create scripts that perform actions like launching the browser, opening specific pages, focusing on search fields, entering data, submitting requests, and navigating to the first search result. Puppeteer also supports loading the latest browser version, device simulation, and handling authentication forms.
What's new in Puppeteer 23:
The WebDriver BiDi capabilities in Puppeteer 23 deserve a special mention:
While Firefox is now officially supported in Puppeteer and has enough functionality to cover many automation and testing scenarios, some APIs are still not supported. The team plans to fill these gaps in the future.
Netplan is a dev tool for easy network configuration on a Linux system. You simply create a YAML description of the required network interfaces and what each of them should be configured for. Based on this description, Netplan will generate all the necessary configurations for the rendering tool of your choice.
If you're already interested in this tool, we'll tell you a bit about the new Netplan 1.1 release, which comes six months and 120 commits after the last version:
Now might be a good time to try something new if you want a networking tool.
SeaORM was developed nearly three years ago with the goal of creating a comprehensive ORM for the asynchronous Rust ecosystem. Since then, it has become an integral part of the Rust stack, especially in frameworks like Loco, which provide tight integration to simplify developers' jobs.
Today, it is an open-source relational ORM (Object-Relational Mapping) dev tool and project that helps you build web services in Rust using the language's dynamic capabilities.
Here are some of the new features and enhancements introduced in the first major release of SeaORM 1.0:
What's next? SeaORM 1.0 is currently being built on SQLx 0.7. Due to changes in SQLx 0.8, SeaORM 1.1 will be released on SQLx 0.8 to avoid unplanned build failures. Users are also encouraged to specify a tilde requirement (e.g., "sea-orm = { version = '~1.0' }") to prevent automatic upgrades to SeaORM 1.1.
Have a great month, and see you in the next is*hosting digest!