Hi all, Here are our current plans for the Puppet Platform 8 release due out in February 2023. The work for this effort is contained in https://tickets.puppetlabs.com/browse/PA-4664.
*Ruby 3.2* Ruby 3.2 should be released December 25, 2022 and we plan to vendor that version in puppet-agent packages. Ruby 3.2 has several notable breaking changes that may affect Puppet extensions, such as functions, custom facts, types & providers, report processors, etc: * Ruby 3.2 removes some deprecated classes and constants, see https://github.com/ruby/ruby/blob/v3_2_0_preview3/NEWS.md#compatibility-issues * Ruby 3.2 vendors the ruby/openssl 3.0 gem (ruby bindings for openssl). Several OpenSSL related classes have changed, see https://github.com/ruby/openssl/blob/master/History.md#version-300 * Ruby 3.1 vendors psych 4 (ruby bindings for libyaml), which defaults to safe YAML loading. This means `YAML.load` will not load arbitrary objects or aliases, see https://bugs.ruby-lang.org/issues/17866 Support for Ruby 2.5 and 2.6 will also be dropped. *OpenSSL 3.0* OpenSSL 1.1.1 will reach EOL 2023-09-11, therefore, Puppet 8 will vendor OpenSSL 3.0. See https://www.openssl.org/policies/releasestrat.html *Ruby 3 on Windows* Ruby 3 on Windows initializes the default external encoding to UTF-8. Prior to this, Ruby used an encoding corresponding to the active code page, such as Encoding::CP1252. This change may break custom facts and types/providers that shell out or call ANSI versions of Windows APIs. See https://bugs.ruby-lang.org/issues/13488 and https://tickets.puppetlabs.com/browse/PUP-11348 *Legacy Facts* By default, legacy facts will no longer be collected or sent to puppetserver. Also builtin types and providers will no longer use legacy facts to determine provider suitability <https://puppet.com/docs/puppet/7/provider_development.html#tandp_provider_suitability>. See https://groups.google.com/g/puppet-dev/c/hFIjgvOa5J0/m/-ROWsGTaBgAJ *Unchanged Resource Reporting* By default, puppet agents will no longer report on unchanged resources that were successfully managed and "insync". Doing so will dramatically reduce the amount of data sent to puppetserver and stored in puppetdb in the most common case where nothing has changed. See https://tickets.puppetlabs.com/browse/PUP-11684 *Deferred Functions* The default value for the `preprocess_deferred` setting will be changed to false so that resources with deferred properties follow normal resource relationships and ordering. See https://puppet.com/docs/puppet/7/configuration.html#preprocess-deferred and https://tickets.puppetlabs.com/browse/PUP-11526 *Hiera 3 Gem* The hiera 3 gem will no longer be a dependency of puppet and it will no longer be vendored in puppet-agent packages. Note this won't affect Puppet lookup functionality or modules that call the hiera, hiera_include, etc functions. It should only affect users relying on hiera 3 backends that extend the `Hiera::Backend` class. Anyone affected by this change can manually install the hiera gem using the `puppetserver_gem` provider. See https://tickets.puppetlabs.com/browse/PA-4646 *Java 8* Puppet will drop support for Java 8, as mentioned in https://groups.google.com/g/puppet-dev/c/yg0YjNwhnTg/m/URqRFzanAgAJ *Puppet Modules* In order to test a Puppet module against Puppet 8, you'll need to remove the puppet-modules-gems <https://github.com/puppetlabs/puppet-module-gems> dependencies from your Gemfile. This can be done automatically using "pdk update --template-ref 2.7.0" If you're not using the pdk, then look for future communication about how to migrate your modules in preparation for Puppet 8. Josh -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/ea2798a7-e348-4c6b-803b-1aa82c227687n%40googlegroups.com.