Skip to content

Remove EOL platforms Debian 8 and Ubuntu 14.04 #1406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 8, 2021

Conversation

ghoneycutt
Copy link
Contributor

No description provided.

@ghoneycutt ghoneycutt requested a review from a team as a code owner June 28, 2021 20:03
@puppet-community-rangefinder
Copy link

mysql::backup::mysqlbackup is a class

that may have no external impact to Forge modules.

mysql::backup::mysqldump is a class

that may have no external impact to Forge modules.

mysql::backup::xtrabackup is a class

that may have no external impact to Forge modules.

mysql::params is a class

Breaking changes to this file WILL impact these 2 modules (exact match):
Breaking changes to this file MAY impact these 1 modules (near match):

This module is declared in 143 of 576 indexed public Puppetfiles.


These results were generated with Rangefinder, a tool that helps predict the downstream impact of breaking changes to elements used in Puppet modules. You can run this on the command line to get a full report.

Exact matches are those that we can positively identify via namespace and the declaring modules' metadata. Non-namespaced items, such as Puppet 3.x functions, will always be reported as near matches only.

@ghoneycutt
Copy link
Contributor Author

ghoneycutt commented Jun 28, 2021

This PR removes Ubuntu 14.04 and Debian 8 as both are EOL. It also removes references to RedHat 5 which is already not supported by the module.

It adds Ubuntu 20.04 to the metadata as it seems it is already supported in the module with tests and data.

@ghoneycutt
Copy link
Contributor Author

There are other platforms that should be evaluated as they are not listed in the metadata and it is unclear as to which versions of the platform are even supported. Suggest officially removing support for these.

  • FreeBSD
  • OpenBSD
  • Solaris
  • ArchLinux
  • Amazon

@@ -367,7 +367,7 @@ This example shows how to install the MariaDB client and all of the bindings at
Specify the version of the package you want with the `package_ensure` parameter.

```puppet
class {'::mysql::client':
class { 'mysql::client':
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is just style updates I missed on the last pass

@@ -123,28 +123,24 @@
'Suse': {
case $::operatingsystem {
'OpenSuSE': {
if versioncmp( $::operatingsystemmajrelease, '12' ) >= 0 {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

12 is the smallest version we support (we support 12 and 15) so no need for the comparison.

@@ -153,31 +149,13 @@
$config_file = '/etc/my.cnf'
$includedir = '/etc/my.cnf.d'
$datadir = '/var/lib/mysql'
$log_error = $::operatingsystem ? {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already a conditional above, so removing this pattern and adding to the correct block above.

$client_dev_package_name = 'libmysqlclient-devel'
$daemon_dev_package_name = 'mysql-devel'
}

'Debian': {
if $::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '9') >= 0 {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We support Debian 9 and 10 so all Debian is at least version 9 :)

@pmcmaw
Copy link
Contributor

pmcmaw commented Jun 30, 2021

Something to note as you will run into it is that we are currently facing issues testing Debian/Ubuntu. Which is why the Debian tests are not running and there are failures in your Ubuntu tests. 👎 It is something we have ticketed up but just haven't had the bandwidth to get around to yet, we are working on prioritizing and getting it worked on but cannot commit to a date for now. Issue is ticketed here: https://tickets.puppetlabs.com/browse/IAC-1595

@ghoneycutt
Copy link
Contributor Author

@pmcmaw Does this mean this PR is on hold until that ticket is resolved or can we proceed with merging this?

What about these other unsupported platforms that are making the code more complex? Can we remove them?

@ghoneycutt
Copy link
Contributor Author

The errors below are unrelated to this PR and were introduced with commit 8413dbe

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) mysql::password behaves like mysql::password function returns Sensitive with sensitive=true
     # should have a Returnvalue of Datatype Sensitive
     Failure/Error: is_expected.to run.with_params('password', true).and_return(sensitive('*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'))
       expected mysql::password("password", true) to have returned Sensitive("*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19") instead of #<Sensitive [value redacted]>
     Shared Example Group: "mysql::password function" called from ./spec/functions/mysql_password_spec.rb:46
     # ./spec/functions/mysql_password_spec.rb:29:in `block (2 levels) in <top (required)>'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `load'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `<top (required)>'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `load'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `<main>'

  2) mysql::password non-namespaced shim mysql_password behaves like mysql::password function returns Sensitive with sensitive=true
     # should have a Returnvalue of Datatype Sensitive
     Failure/Error: is_expected.to run.with_params('password', true).and_return(sensitive('*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'))
       expected mysql::password("password", true) to have returned Sensitive("*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19") instead of #<Sensitive [value redacted]>
     Shared Example Group: "mysql::password function" called from ./spec/functions/mysql_password_spec.rb:50
     # ./spec/functions/mysql_password_spec.rb:29:in `block (2 levels) in <top (required)>'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `load'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `<top (required)>'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `load'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `<main>'

@alexjfisher
Copy link
Collaborator

There are other platforms that should be evaluated as they are not listed in the metadata and it is unclear as to which versions of the platform are even supported. Suggest officially removing support for these.

  • FreeBSD
  • OpenBSD
  • Solaris
  • ArchLinux
  • Amazon

At least Solaris and Amazon Linux are listed as PE supported agent platforms.

Dunno of the exact history though. But I guess Solaris wasn't supported at the time of #774 ??

I'm also not keen on removing the unofficial support for non EOL OSes like ArchLinux. I imagine @bastelfreak will be less keen still! :)

@pmcmaw
Copy link
Contributor

pmcmaw commented Jun 30, 2021

@ghoneycutt we will proceed, we shouldn't let known issues stop the development of a module.
Also the OSs that you have mentioned, as much as they are not currently supported, if they are compatible and relevant it would do no harm leaving them as people may be using them and happy with them being compatible.

Compatible - It works with the code base, but if something goes wrong Puppet will not provide support
Supported - Officially supported by Puppet and if something goes wrong we are obliged to work on it

@ghoneycutt
Copy link
Contributor Author

@alexjfisher but what versions of Solaris and Amazon? :)

@pmcmaw This approach of Compatible and Supported is not great because it encourages baggage like this module has which makes maintaining it and refactoring it much more difficult and does not provide a way to test that compatibility even works.

All that said.. I wanted to get the conversation around this going and that is happening 🎉

This PR though is ready for merge as it is just removing the EOL platforms Debian 8 and Ubuntu 14.04.

@pmcmaw
Copy link
Contributor

pmcmaw commented Jun 30, 2021

The errors below are unrelated to this PR and were introduced with commit 8413dbe

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) mysql::password behaves like mysql::password function returns Sensitive with sensitive=true
     # should have a Returnvalue of Datatype Sensitive
     Failure/Error: is_expected.to run.with_params('password', true).and_return(sensitive('*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'))
       expected mysql::password("password", true) to have returned Sensitive("*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19") instead of #<Sensitive [value redacted]>
     Shared Example Group: "mysql::password function" called from ./spec/functions/mysql_password_spec.rb:46
     # ./spec/functions/mysql_password_spec.rb:29:in `block (2 levels) in <top (required)>'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `load'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `<top (required)>'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `load'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `<main>'

  2) mysql::password non-namespaced shim mysql_password behaves like mysql::password function returns Sensitive with sensitive=true
     # should have a Returnvalue of Datatype Sensitive
     Failure/Error: is_expected.to run.with_params('password', true).and_return(sensitive('*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'))
       expected mysql::password("password", true) to have returned Sensitive("*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19") instead of #<Sensitive [value redacted]>
     Shared Example Group: "mysql::password function" called from ./spec/functions/mysql_password_spec.rb:50
     # ./spec/functions/mysql_password_spec.rb:29:in `block (2 levels) in <top (required)>'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `load'
     # /opt/puppetlabs/pdk/share/cache/ruby/2.7.0/bin/rspec:23:in `<top (required)>'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `load'
     # /opt/puppetlabs/pdk/private/ruby/2.7.3/bin/bundle:23:in `<main>'

These are fine, they are actually marked as pending so wont affect the test suite.

@ghoneycutt ghoneycutt changed the title WIP - sort out what is actually supported Remove EOL platforms Debian 8 and Ubuntu 14.04 Jun 30, 2021
@ghoneycutt
Copy link
Contributor Author

@pmcmaw The spec tests are failing here instead of being pending as they are locally. The other failing tests are the known issues. We good to merge?

@pmcmaw pmcmaw closed this Jul 1, 2021
@pmcmaw pmcmaw reopened this Jul 1, 2021
@puppet-community-rangefinder
Copy link

mysql::backup::mysqlbackup is a class

that may have no external impact to Forge modules.

mysql::backup::mysqldump is a class

that may have no external impact to Forge modules.

mysql::backup::xtrabackup is a class

that may have no external impact to Forge modules.

mysql::params is a class

Breaking changes to this file WILL impact these 2 modules (exact match):
Breaking changes to this file MAY impact these 1 modules (near match):

This module is declared in 143 of 576 indexed public Puppetfiles.


These results were generated with Rangefinder, a tool that helps predict the downstream impact of breaking changes to elements used in Puppet modules. You can run this on the command line to get a full report.

Exact matches are those that we can positively identify via namespace and the declaring modules' metadata. Non-namespaced items, such as Puppet 3.x functions, will always be reported as near matches only.

@pmcmaw pmcmaw closed this Jul 5, 2021
@pmcmaw pmcmaw reopened this Jul 5, 2021
@puppet-community-rangefinder
Copy link

mysql::backup::mysqlbackup is a class

that may have no external impact to Forge modules.

mysql::backup::mysqldump is a class

that may have no external impact to Forge modules.

mysql::backup::xtrabackup is a class

that may have no external impact to Forge modules.

mysql::params is a class

Breaking changes to this file WILL impact these 2 modules (exact match):
Breaking changes to this file MAY impact these 1 modules (near match):

This module is declared in 143 of 576 indexed public Puppetfiles.


These results were generated with Rangefinder, a tool that helps predict the downstream impact of breaking changes to elements used in Puppet modules. You can run this on the command line to get a full report.

Exact matches are those that we can positively identify via namespace and the declaring modules' metadata. Non-namespaced items, such as Puppet 3.x functions, will always be reported as near matches only.

@pmcmaw
Copy link
Contributor

pmcmaw commented Jul 5, 2021

Would it be possible to remove Ubuntu20 from the metadata.json as currently we don't want it running on CI with the known issues that are currently raised against it.

Im unsure as to why the other Ubuntu OSs are currently failing in this PR as they are passing against main in the nightly run. If you maybe try rebasing? Last nights nightly run: https://github.com/puppetlabs/puppetlabs-mysql/actions/runs/999406897

@ghoneycutt
Copy link
Contributor Author

@pmcmaw I removed Ubuntu 20 from the metadata as you asked and rebased.

@pmcmaw
Copy link
Contributor

pmcmaw commented Jul 5, 2021

Thanks @ghoneycutt I was hoping that rebasing sorted your Ubuntu errors. But it hasn't and last nights nightly ran green on main therefore it suggests there is somewhere in the logic something is going wrong. 👎 Im unable to merge until all of the above OSs are running green.

@ghoneycutt
Copy link
Contributor Author

@pmcmaw all green :)

@pmcmaw
Copy link
Contributor

pmcmaw commented Jul 6, 2021

Im happy with the changes from my end, @alexjfisher just wanting to check if you happy enough for me to merge as I can see you commented earlier in the thread :-)

@ghoneycutt
Copy link
Contributor Author

Alex was just commenting on my proposal for removing OS's that are not officially supported. This is ready for merge.

@pmcmaw pmcmaw merged commit 5454c51 into puppetlabs:main Jul 8, 2021
@ghoneycutt ghoneycutt deleted the eol branch July 8, 2021 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants