March is coming to a close and with that comes a new development update!
iRODS 4.3.0 is right around the corner and we're firing on all cylinders to get it over the finish line.
On the server-side of things ...
The irods/irods project structure for 4.3.0 has undergone huge changes in regards to CMake. Each directory contains a CMakeLists.txt file. This change alone improves maintainability and visibility into what makes up a target (e.g. libirods_client.so). This also makes it much easier for newcomers to discover things and understand each component.
The legacy PAM authentication plugin has been ported to the new Authentication Plugin Framework. Although the legacy PAM auth plugin hasn't been merged, the fact that we were able to port it helps build confidence in the auth plugin framework. Our next task is to allow for more dynamic PAM conversations.
The metadata API endpoint has received a new enhancement in that it now supports the admin mode flag. This change is important because it simplifies implementations (e.g. Logical Quotas). There are many times where code needs to manipulate metadata, but doesn't have permission to do so. Getting around this case requires modifying permissions temporarily. With this change, that isn't required anymore. And obviously, we made sure to expose this option to administrators via imeta -M
:-).
Since we're still talking about the server, we're happy to say that the Python Rule Engine Plugin now supports reading and writing binary data into data objects.
Let's talk about what's happened on the client-side now ...
The Python iRODS Client (PRC) has grown several new features. It now supports operations found in ipasswd
, provides utilities for path normalization, and here is the big one ... it supports parallel transfer to and from S3 storage! Even more important than that is the fact that once this version is released, it will likely be the last to support Python 2.
New versions of the Zone Management Tool (ZMT) and C++ REST API were released this month. With them comes support for managing remote zones, remote users, checkfiles (default and custom), specific queries, and passwords.
Outside of servers and clients, the development and testing environments have gained support for new platforms! Support for Ubuntu 20, Debian 11, and AlmaLinux 8 have been added. Given that AlmaLinux 8 is EL8 compatible, we expect 4.3.0 to work with Rocky Linux 8. The development environment also grew the ability to build externals packages. Hopefully, that simplifies the build process for users.
That feels like a good place to end this development update. The full update is just below. Give that a look and we'll see you next month!
Metadata Templates Working Group
New Development Work
Active Development Work
Build and Packaging
Docker-based Testing Environment
Docker-based Development Environment
Background Items
Logical Locking
New RPC API framework
C++ S3 API
iRODS Command Line Interface (CLI)
Parallel Filesystem Integration
SMBRODS project to surface iRODS as SMB
CockroachDB Database Plugin
Cloud Browser
Member Ticketing System
NetCDF microservices
Discussion