Bladeren bron

Declare use 5.040 in every module, script and test

The house standard for a perl that we control is 5.040 or later, with
the strict critic profile that assumes it.  The modules and scripts
said use v5.36.  Twenty-three tests said use strict and no version, so
they ran without the features that the code they test is written in.
use 5.040 turns on strict, so it replaces use strict in those tests.

The 5.040 bundle adds module_true, turns off bareword filehandles, and
imports nothing that clashes with an import here.  Every file still
compiles, and the suite passes as it did.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
troglodyne-bot 1 week geleden
bovenliggende
commit
69698cd401
81 gewijzigde bestanden met toevoegingen van 81 en 81 verwijderingen
  1. 1 1
      bin/build_index.pl
  2. 1 1
      bin/favicon_mongler.pl
  3. 1 1
      bin/migrate.pl
  4. 1 1
      bin/tcms-hostname
  5. 1 1
      bin/tcms-useradd
  6. 1 1
      bin/tcms-vault-key
  7. 1 1
      bin/tcmslogin
  8. 1 1
      bin/totp
  9. 1 1
      lib/TCMS.pm
  10. 1 1
      lib/Theme.pm
  11. 1 1
      lib/Trog/Auth.pm
  12. 1 1
      lib/Trog/Component.pm
  13. 1 1
      lib/Trog/Component/CategoryBar.pm
  14. 1 1
      lib/Trog/Component/EmojiPicker.pm
  15. 1 1
      lib/Trog/Component/FootBar.pm
  16. 1 1
      lib/Trog/Component/Footer.pm
  17. 1 1
      lib/Trog/Component/Header.pm
  18. 1 1
      lib/Trog/Component/HtmlTitle.pm
  19. 1 1
      lib/Trog/Component/LeftBar.pm
  20. 1 1
      lib/Trog/Component/MidTitle.pm
  21. 1 1
      lib/Trog/Component/PostFooter.pm
  22. 1 1
      lib/Trog/Component/PostHeader.pm
  23. 1 1
      lib/Trog/Component/RightBar.pm
  24. 1 1
      lib/Trog/Component/TopBar.pm
  25. 1 1
      lib/Trog/Config.pm
  26. 1 1
      lib/Trog/Data.pm
  27. 1 1
      lib/Trog/Data/DUMMY.pm
  28. 1 1
      lib/Trog/Data/FlatFile.pm
  29. 1 1
      lib/Trog/Data/SQLite.pm
  30. 1 1
      lib/Trog/DataModule.pm
  31. 1 1
      lib/Trog/DataSource.pm
  32. 1 1
      lib/Trog/DataSource/DirIndex.pm
  33. 1 1
      lib/Trog/DataSource/ProvisionedVirt.pm
  34. 1 1
      lib/Trog/DataSource/Virt.pm
  35. 1 1
      lib/Trog/Email.pm
  36. 1 1
      lib/Trog/Enrich/Invoice.pm
  37. 1 1
      lib/Trog/FileHandler.pm
  38. 1 1
      lib/Trog/Log.pm
  39. 1 1
      lib/Trog/Log/DBI.pm
  40. 1 1
      lib/Trog/Log/Metrics.pm
  41. 1 1
      lib/Trog/Log/Syslog.pm
  42. 1 1
      lib/Trog/Renderer.pm
  43. 1 1
      lib/Trog/Renderer/Base.pm
  44. 1 1
      lib/Trog/Renderer/blob.pm
  45. 1 1
      lib/Trog/Renderer/css.pm
  46. 1 1
      lib/Trog/Renderer/email.pm
  47. 1 1
      lib/Trog/Renderer/html.pm
  48. 1 1
      lib/Trog/Renderer/javascript.pm
  49. 1 1
      lib/Trog/Renderer/json.pm
  50. 1 1
      lib/Trog/Renderer/text.pm
  51. 1 1
      lib/Trog/Routes/HTML.pm
  52. 1 1
      lib/Trog/Routes/JSON.pm
  53. 1 1
      lib/Trog/Routes/TXT.pm
  54. 1 1
      lib/Trog/SQLite/TagIndex.pm
  55. 1 1
      lib/Trog/Themes.pm
  56. 1 1
      lib/Trog/Utils.pm
  57. 1 1
      lib/Trog/Vars.pm
  58. 1 1
      lib/Trog/Vault.pm
  59. 1 1
      t/Trog-Auth-libravatar.t
  60. 1 1
      t/Trog-Auth-totp-mandatory.t
  61. 1 1
      t/Trog-Component-page.t
  62. 1 1
      t/Trog-Component.t
  63. 1 1
      t/Trog-Config.t
  64. 1 1
      t/Trog-Data-FlatFile-read.t
  65. 1 1
      t/Trog-Data-SQLite.t
  66. 1 1
      t/Trog-Data.t
  67. 1 1
      t/Trog-DataModule-schema.t
  68. 1 1
      t/Trog-DataSource-DirIndex.t
  69. 1 1
      t/Trog-DataSource-ProvisionedVirt.t
  70. 1 1
      t/Trog-DataSource-Virt.t
  71. 1 1
      t/Trog-DataSource.t
  72. 1 1
      t/Trog-Log-DBI.t
  73. 1 1
      t/Trog-Log-Syslog.t
  74. 1 1
      t/Trog-Routes-HTML-config.t
  75. 1 1
      t/Trog-Routes-HTML-post-wizard-browser.t
  76. 1 1
      t/Trog-Routes-HTML-series-lifecycle-sqlite.t
  77. 1 1
      t/Trog-Routes-HTML-series-lifecycle.t
  78. 1 1
      t/Trog-SQLite-TagIndex.t
  79. 1 1
      t/Trog-Themes-themed-templates.t
  80. 1 1
      t/Trog-Vault.t
  81. 1 1
      t/bin-migrate.t

+ 1 - 1
bin/build_index.pl

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use lib 'lib';

+ 1 - 1
bin/favicon_mongler.pl

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Cwd            ();

+ 1 - 1
bin/migrate.pl

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin;

+ 1 - 1
bin/tcms-hostname

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
bin/tcms-useradd

@@ -2,7 +2,7 @@
 
 package tcms::useradd;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
bin/tcms-vault-key

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
bin/tcmslogin

@@ -2,7 +2,7 @@
 
 package tcms::login;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
bin/totp

@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
lib/TCMS.pm

@@ -1,6 +1,6 @@
 package TCMS;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Carp         qw{confess};

+ 1 - 1
lib/Theme.pm

@@ -1,6 +1,6 @@
 package Theme;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 =head1 Theme

+ 1 - 1
lib/Trog/Auth.pm

@@ -1,6 +1,6 @@
 package Trog::Auth;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
lib/Trog/Component.pm

@@ -1,6 +1,6 @@
 package Trog::Component;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Text::Xslate ();

+ 1 - 1
lib/Trog/Component/CategoryBar.pm

@@ -1,6 +1,6 @@
 package Trog::Component::CategoryBar;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/EmojiPicker.pm

@@ -1,6 +1,6 @@
 package Trog::Component::EmojiPicker;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use File::Slurper ();

+ 1 - 1
lib/Trog/Component/FootBar.pm

@@ -1,6 +1,6 @@
 package Trog::Component::FootBar;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/Footer.pm

@@ -1,6 +1,6 @@
 package Trog::Component::Footer;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/Header.pm

@@ -1,6 +1,6 @@
 package Trog::Component::Header;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/HtmlTitle.pm

@@ -1,6 +1,6 @@
 package Trog::Component::HtmlTitle;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/LeftBar.pm

@@ -1,6 +1,6 @@
 package Trog::Component::LeftBar;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/MidTitle.pm

@@ -1,6 +1,6 @@
 package Trog::Component::MidTitle;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/PostFooter.pm

@@ -1,6 +1,6 @@
 package Trog::Component::PostFooter;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/PostHeader.pm

@@ -1,6 +1,6 @@
 package Trog::Component::PostHeader;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/RightBar.pm

@@ -1,6 +1,6 @@
 package Trog::Component::RightBar;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Component/TopBar.pm

@@ -1,6 +1,6 @@
 package Trog::Component::TopBar;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Component ();

+ 1 - 1
lib/Trog/Config.pm

@@ -1,6 +1,6 @@
 package Trog::Config;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
lib/Trog/Data.pm

@@ -1,6 +1,6 @@
 package Trog::Data;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::Log qw{:all};

+ 1 - 1
lib/Trog/Data/DUMMY.pm

@@ -1,6 +1,6 @@
 package Trog::Data::DUMMY;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Carp qw{confess};

+ 1 - 1
lib/Trog/Data/FlatFile.pm

@@ -1,6 +1,6 @@
 package Trog::Data::FlatFile;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Carp           qw{confess};

+ 1 - 1
lib/Trog/Data/SQLite.pm

@@ -1,6 +1,6 @@
 package Trog::Data::SQLite;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Carp qw{confess};

+ 1 - 1
lib/Trog/DataModule.pm

@@ -1,6 +1,6 @@
 package Trog::DataModule;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
lib/Trog/DataSource.pm

@@ -1,6 +1,6 @@
 package Trog::DataSource;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::DataModule ();

+ 1 - 1
lib/Trog/DataSource/DirIndex.pm

@@ -1,6 +1,6 @@
 package Trog::DataSource::DirIndex;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Cwd            ();

+ 1 - 1
lib/Trog/DataSource/ProvisionedVirt.pm

@@ -1,6 +1,6 @@
 package Trog::DataSource::ProvisionedVirt;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::DataSource::Virt};

+ 1 - 1
lib/Trog/DataSource/Virt.pm

@@ -1,6 +1,6 @@
 package Trog::DataSource::Virt;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use File::Path();

+ 1 - 1
lib/Trog/Email.pm

@@ -1,6 +1,6 @@
 package Trog::Email;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Email::MIME;

+ 1 - 1
lib/Trog/Enrich/Invoice.pm

@@ -1,6 +1,6 @@
 package Trog::Enrich::Invoice;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use List::Util();

+ 1 - 1
lib/Trog/FileHandler.pm

@@ -1,6 +1,6 @@
 package Trog::FileHandler;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use POSIX qw{strftime};

+ 1 - 1
lib/Trog/Log.pm

@@ -1,6 +1,6 @@
 package Trog::Log;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use POSIX qw{strftime};

+ 1 - 1
lib/Trog/Log/DBI.pm

@@ -1,6 +1,6 @@
 package Trog::Log::DBI;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Log::Dispatch::DBI};

+ 1 - 1
lib/Trog/Log/Metrics.pm

@@ -1,6 +1,6 @@
 package Trog::Log::Metrics;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Trog::SQLite;

+ 1 - 1
lib/Trog/Log/Syslog.pm

@@ -1,6 +1,6 @@
 package Trog::Log::Syslog;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Log::Dispatch::Output};

+ 1 - 1
lib/Trog/Renderer.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Carp::Always;

+ 1 - 1
lib/Trog/Renderer/Base.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::Base;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Encode qw{encode_utf8};

+ 1 - 1
lib/Trog/Renderer/blob.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::blob;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 =head1 Trog::Renderer::blob

+ 1 - 1
lib/Trog/Renderer/css.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::css;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::Renderer::Base};

+ 1 - 1
lib/Trog/Renderer/email.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::email;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::Renderer::Base};

+ 1 - 1
lib/Trog/Renderer/html.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::html;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::Renderer::Base};

+ 1 - 1
lib/Trog/Renderer/javascript.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::javascript;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::Renderer::Base};

+ 1 - 1
lib/Trog/Renderer/json.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::json;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use JSON::MaybeXS;

+ 1 - 1
lib/Trog/Renderer/text.pm

@@ -1,6 +1,6 @@
 package Trog::Renderer::text;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use parent qw{Trog::Renderer::Base};

+ 1 - 1
lib/Trog/Routes/HTML.pm

@@ -1,6 +1,6 @@
 package Trog::Routes::HTML;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 no warnings qw{once};

+ 1 - 1
lib/Trog/Routes/JSON.pm

@@ -1,6 +1,6 @@
 package Trog::Routes::JSON;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Clone qw{clone};

+ 1 - 1
lib/Trog/Routes/TXT.pm

@@ -1,6 +1,6 @@
 package Trog::Routes::JSON;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Clone qw{clone};

+ 1 - 1
lib/Trog/SQLite/TagIndex.pm

@@ -1,6 +1,6 @@
 package Trog::SQLite::TagIndex;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use URI::Escape;

+ 1 - 1
lib/Trog/Themes.pm

@@ -1,6 +1,6 @@
 package Trog::Themes;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use FindBin::libs;

+ 1 - 1
lib/Trog/Utils.pm

@@ -1,6 +1,6 @@
 package Trog::Utils;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use UUID;

+ 1 - 1
lib/Trog/Vars.pm

@@ -1,6 +1,6 @@
 package Trog::Vars;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 =head1 Trog::Vars

+ 1 - 1
lib/Trog/Vault.pm

@@ -1,6 +1,6 @@
 package Trog::Vault;
 
-use v5.36;
+use 5.040;
 use re '/aa';
 
 use Crypt::AuthEnc::GCM  ();

+ 1 - 1
t/Trog-Auth-libravatar.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Auth-totp-mandatory.t

@@ -4,7 +4,7 @@
 # in" and "enrolled", which exists because a login is what gets you the QR --
 # and about the fact that there is no longer any way to turn 2fa back off.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-Component-page.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Component.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Config.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Data-FlatFile-read.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Data-SQLite.t

@@ -5,7 +5,7 @@
 # it is whether the two agree -- so most of this file writes one corpus into
 # both models and asserts they return the same posts for the same query.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-Data.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-DataModule-schema.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-DataSource-DirIndex.t

@@ -4,7 +4,7 @@
 # which directories it will agree to look at, because that is the part where
 # getting it wrong hands out the names of files somebody meant to keep.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-DataSource-ProvisionedVirt.t

@@ -4,7 +4,7 @@
 # file is about what has to be true before anything runs.  _spawn is mocked
 # throughout: nothing here forks, and nothing here executes a provisioner.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-DataSource-Virt.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-DataSource.t

@@ -5,7 +5,7 @@
 # datastore and then threw away along with the posts it filtered -- has to be
 # applied to them by somebody.  This is that somebody.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-Log-DBI.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Log-Syslog.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Routes-HTML-config.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Routes-HTML-post-wizard-browser.t

@@ -25,7 +25,7 @@
 # node resolves them from -- its own directory, /usr/local/lib/node_modules, or
 # NODE_PATH.  A global install under nvm is not one of those places.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/Trog-Routes-HTML-series-lifecycle-sqlite.t

@@ -8,7 +8,7 @@
 # Run as a separate process because the model is chosen once, from config, at
 # the point Trog::Data builds it.
 
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Routes-HTML-series-lifecycle.t

@@ -8,7 +8,7 @@
 # Verification goes through Trog::Routes::HTML::index() -- directly, or via
 # series() which delegates to it -- and matches on the returned HTML.
 
-use strict;
+use 5.040;
 use warnings;
 
 # FindBin MUST come first.  $FindBin::Bin is derived from $0, which prove hands

+ 1 - 1
t/Trog-SQLite-TagIndex.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Themes-themed-templates.t

@@ -1,4 +1,4 @@
-use strict;
+use 5.040;
 use warnings;
 
 use Test::More;

+ 1 - 1
t/Trog-Vault.t

@@ -4,7 +4,7 @@
 # both.  Nothing here needs a webserver: what is being tested is that a database
 # on its own is not enough, and that a code is worth one thing.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;

+ 1 - 1
t/bin-migrate.t

@@ -5,7 +5,7 @@
 # the same questions afterwards -- so this builds a corpus through the FlatFile
 # model, migrates, and compares the two models query for query.
 
-use strict;
+use 5.040;
 use warnings;
 
 use FindBin;