21st Feb 2020: IAC Team Status Update
The IAC team has been working on a lot of interesting things over the past week. Here’s a brief overview of what we’ve been up to:
Updates to Puppet Modules
We’ve released only one module since last week:
- puppetlabs/java (v6.2.0)
Thanks to @baurmatt for his change to the concat module, adding support for Deferred function in concat fragment.
This week we happily approved two new modules:
Puppet Approved modules are recommended by us for use with Puppet Open Source and Puppet Enterprise and meet our expectations for quality and usability.
New puppet-modulebuilder Gem
Work has started on creating a puppet-modulebuilder gem.
This will carry the actual functionality for
pdk build and allow third-party tools to re-use the same functionality without having to pull in the whole PDK.
We expect a first release early next week.
Follow IAC-552 to get a notification when that happens.
Thanks a lot to Glenn for helping out with the actual porting of the code.
Ongoing Litmus Conversions
This week saw a flurry of PRs (through pdksync) to update all our modules to use the new
use_litmus support in pdk-templates.
This reduces the amount of configuration we need to carry in each module and validates the pdk-templates feature.
As expected, the last remaining modules to convert to Litmus were the ones we didn’t want to touch earlier for good reasons.
- powershell has been merged and is now running acceptance tests on Windows (appveyor), Linux and OS X (travis) in public.
- sqlserver is still resisting, not the least because we found several areas where the previous test suite was ignoring warnings that we now want to address.
- vsphere is progressing. We don’t expect to enable PR-level testing on this one, since it does require access to our internal VCenter.
If you’re interested in porting a module to Litmus, feel free to reach out to us during Office Hours - we’ll be glad to help!
448.03s$ bundle exec rake litmus:acceptance:parallel Running against 3 targets. ./home/travis/build/puppetlabs/puppetlabs-mysql/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113: [BUG] Segmentation fault at 0x000000000b4d76d5 ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
$ bundle exec rake litmus:acceptance:parallel Running against 2 targets. . No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself. Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received The build has been terminated
We’re still working on figuring out what changed recently to trigger these.
Refactoring stdlib to Puppet4 function API
Each modern Puppet 4.x function is just a little faster and just a little safer to use, meaning that as we all port our functions over, compilation times across the ecosystem will get more and more performant. Modern Puppet 4.x functions have improved thread safety, memory management, and load time. Even more importantly, they’re isolated to the environment they’re loaded from.
And as a developer, you’ll see benefits like namespaced function signatures, automatic data type checking, multiple dispatches allowing you to easily handle different kinds of function invocations, and vastly improved code reuse.
If you want to follow along or provide feedback, please avail yourself of IAC-114.