» Home » Docs » Release notes » Release notes for 1.1.0
Release notes for 1.1.0
These are the changes in the 1.1.0 release.
We want to thank every contributor who made this release possible. We also welcome Alex Mestiashvili and Arnold Bechtoldt as new contributors.
New features
Pluggable shell detection
The shell detection code has been refactored, so it is easier to extend the list of shells which are recognized and supported by Rex. This also made initial iDrac-over-SSH support possible, and opened up the way for further exotic shells to be included later.
- Only check for iDrac signature if there was an output - Ferenc Erki
- Add initial iDrac shell support - Ferenc Erki
- added code to make shells pluggable. - RexOps/Rex#602 - Jan
Hiding sensitive data in debug output
Sensitive data is now being hidden in debug outputs making their sharing easier and safer. This behaviour can be overridden by setting REX_DEBUG_INSECURE
environment variable to 1.
- added a Rex::Logger::masq() function that can mask sensitive data for logging output. (fix for RexOps/Rex#554) - Jan
Delayed auth settings
It is now possible to set special authentication options with auth for
after the related task or group definition.
- Avoid noisy test output - Ferenc Erki
- added possibility to use auth(for => task) before a task is created - fixed #402 - Jan
- add test for #402 - Jan
Get server group membership
Group membership information for servers are now exposed and can be retrieve directly from the server object with the groups
method. It also has an alias called group
, but it always returns the list of groups a server is member of:
my @groups = connection->server->groups;
- this adds a new method to the server objects called group() and fixed - Jan
Rex::Test
Rex tests are now printing an explicit FAIL or PASS message to indicate overall test results. A new has_dir
test (similar to has_file
) is supported now for easier directory existence checks. A diag method is also available from now on to be used with new test implementations.
- Add has_dir test - Ferenc Erki
- Print explicit PASS or FAIL output upon finishing a test suite - Ferenc Erki
- Add diag method for Rex::Test::Base - Ferenc Erki
Enhancements
General
Rex-1.1.0 contains quite a few general enhancements as well.
Probably the most important of them is that Rex's dependencies are platform-specific now. On Windows it will depend on Net::SSH2 module, while on any other platform on the combination of Net::OpenSSH and Net::SFTP::Foreign. This latter pair of modules were already the preferred ones by default if they were available, but from now each platform will only need their own preferred dependencies to be installed.
The can_run
method has been refactored to support Windows platforms by accepting an optional command to use when checking command availability. This also fixes some test failures on Windows.
Other than the above, there are some minor but very useful changes increasing security and convenience, like creating the target directory before extracting an archive to it, using the correct terms for mount command options, or dropping the --force-yes
option when installing packages on Debian and its derivatives.
- Update task tests #614 - Jan
- Recognize usable SSH modules separately - Ferenc Erki
- Describe platform-specific dependencies - Ferenc Erki
- sudo now inherits from base - Jan
- updated tests to use is() instead of ok(). reference: RexOps/Rex#608 - Jan
- Allow can_run method to accept command to do the check with - Jan
- Check if a command can be run before its execution (fix #514) - Ferenc Erki
- Refactor can_run - Ferenc Erki
- Support can_run command on Windows - Ferenc Erki
- Move can_run to Rex::Interface::Exec - Ferenc Erki
- Add can_run tests - Ferenc Erki
- Create target directory before extracting an archive (fix #600, close #604) - Arnold Bechtoldt
- Add preferred type option for mount command (fix #469) - Ferenc Erki
- Drop potentially dangerous --force-yes option (fix #559) - Ferenc Erki
Documentation
Both POD quality and quantity has been improved by syntax fixes, content updates and generating documentation for new modules to be published here on the website.
- Sort CONTRIBUTORS file - Ferenc Erki
- Update POD (close #598) - Ferenc Erki
- Fix POD - Ferenc Erki
- misc/create_pod.sh: add PkgConf.pm to list of files to PODify - Brian Manning
- Update POD for Rex::Test::Base - Ferenc Erki
- Generate docs for Rex::Test (fix #483) - Ferenc Erki
- Sort modules alphabetically - Ferenc Erki
- update create_pod - Jan
- try to fix title generation - Jan
Resources
It is now easier to work with resources in modules as they can be exported to the main namespace, and they also support more events (created, removed, message).
- added error message - Jan
- added support to export resources to main namespace and added more events - Jan
Rex::Test
The has_stat
test can now handle directories, not just files.
- Reword has_{dir,file} test outputs - Ferenc Erki
- Allow has_stat test to handle directories (fix #582) - Ferenc Erki
Bugfixes
The following bugs/regressions were also fixed during this release cycle:
- Fix dependencies for openssh + pass_auth - Ferenc Erki
- Fix using ~/.ssh/config options without feature flags #615 - Jan
- Fix handling of symbolic links (fix #591, close #592) - Jan
- fixed setting of path environment variable - #583 - Jan
- Fix has_stat test for non-existing UIDs and GIDs - Ferenc Erki
- changed return code to undef if file/dir not found. fix for RexOps/Rex#608 - Jan
- Ensure proper return values for is_{dir,file} functions (fix #584) - Ferenc Erki