summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgregor herrmann <gregoa@debian.org>2024-02-09 00:43:21 +0100
committergregor herrmann <gregoa@debian.org>2024-02-09 00:43:21 +0100
commite9195855fa49e6f0bb0c713f2768dff1df5c6942 (patch)
tree83b6d6681e1ec0313cba3563dce89dcdb64967da
parent1622bbeaa6c5b070746c435a9cc9226b43aaf609 (diff)
parentfa315390f2f60aeef6c891aeafae7ebbd3da461e (diff)
New upstream version 1.4.1
-rw-r--r--Build.PL9
-rw-r--r--Changes33
-rw-r--r--LICENSE2
-rw-r--r--LICENSE.md2
-rw-r--r--MANIFEST2
-rw-r--r--META.json9
-rw-r--r--META.yml9
-rw-r--r--README6
-rw-r--r--README.md4
-rwxr-xr-xbin/sqitch13
-rw-r--r--dist/cpanfile5
-rw-r--r--dist/sqitch.spec8
-rw-r--r--inc/Menlo/Sqitch.pm8
-rw-r--r--lib/App/Sqitch.pm4
-rw-r--r--lib/App/Sqitch/Command.pm4
-rw-r--r--lib/App/Sqitch/Command/add.pm6
-rw-r--r--lib/App/Sqitch/Command/bundle.pm4
-rw-r--r--lib/App/Sqitch/Command/check.pm4
-rw-r--r--lib/App/Sqitch/Command/checkout.pm4
-rw-r--r--lib/App/Sqitch/Command/config.pm4
-rw-r--r--lib/App/Sqitch/Command/deploy.pm4
-rw-r--r--lib/App/Sqitch/Command/engine.pm4
-rw-r--r--lib/App/Sqitch/Command/help.pm4
-rw-r--r--lib/App/Sqitch/Command/init.pm4
-rw-r--r--lib/App/Sqitch/Command/log.pm4
-rw-r--r--lib/App/Sqitch/Command/plan.pm4
-rw-r--r--lib/App/Sqitch/Command/rebase.pm4
-rw-r--r--lib/App/Sqitch/Command/revert.pm4
-rw-r--r--lib/App/Sqitch/Command/rework.pm4
-rw-r--r--lib/App/Sqitch/Command/show.pm4
-rw-r--r--lib/App/Sqitch/Command/status.pm4
-rw-r--r--lib/App/Sqitch/Command/tag.pm4
-rw-r--r--lib/App/Sqitch/Command/target.pm4
-rw-r--r--lib/App/Sqitch/Command/upgrade.pm4
-rw-r--r--lib/App/Sqitch/Command/verify.pm4
-rw-r--r--lib/App/Sqitch/Config.pm4
-rw-r--r--lib/App/Sqitch/DateTime.pm4
-rw-r--r--lib/App/Sqitch/Engine.pm31
-rw-r--r--lib/App/Sqitch/Engine/cockroach.pm4
-rw-r--r--lib/App/Sqitch/Engine/exasol.pm4
-rw-r--r--lib/App/Sqitch/Engine/firebird.pm4
-rw-r--r--lib/App/Sqitch/Engine/mysql.pm6
-rw-r--r--lib/App/Sqitch/Engine/oracle.pm4
-rw-r--r--lib/App/Sqitch/Engine/pg.pm4
-rw-r--r--lib/App/Sqitch/Engine/snowflake.pm21
-rw-r--r--lib/App/Sqitch/Engine/sqlite.pm4
-rw-r--r--lib/App/Sqitch/Engine/vertica.pm4
-rw-r--r--lib/App/Sqitch/ItemFormatter.pm4
-rw-r--r--lib/App/Sqitch/Plan.pm4
-rw-r--r--lib/App/Sqitch/Plan/Blank.pm4
-rw-r--r--lib/App/Sqitch/Plan/Change.pm4
-rw-r--r--lib/App/Sqitch/Plan/ChangeList.pm4
-rw-r--r--lib/App/Sqitch/Plan/Depend.pm4
-rw-r--r--lib/App/Sqitch/Plan/Line.pm4
-rw-r--r--lib/App/Sqitch/Plan/LineList.pm4
-rw-r--r--lib/App/Sqitch/Plan/Pragma.pm4
-rw-r--r--lib/App/Sqitch/Plan/Tag.pm4
-rw-r--r--lib/App/Sqitch/Role/ConnectingCommand.pm4
-rw-r--r--lib/App/Sqitch/Role/ContextCommand.pm4
-rw-r--r--lib/App/Sqitch/Role/DBIEngine.pm4
-rw-r--r--lib/App/Sqitch/Role/RevertDeployCommand.pm4
-rw-r--r--lib/App/Sqitch/Role/TargetConfigCommand.pm4
-rw-r--r--lib/App/Sqitch/Target.pm4
-rw-r--r--lib/App/Sqitch/Types.pm4
-rw-r--r--lib/App/Sqitch/X.pm4
-rw-r--r--lib/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mobin30298 -> 30316 bytes
-rw-r--r--lib/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mobin13081 -> 13103 bytes
-rw-r--r--lib/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mobin28072 -> 28091 bytes
-rw-r--r--lib/sqitch-configuration.pod2
-rw-r--r--lib/sqitch-target.pod20
-rw-r--r--lib/sqitch.pod2
-rw-r--r--lib/sqitchtutorial-exasol.pod2
-rw-r--r--lib/sqitchtutorial-firebird.pod2
-rw-r--r--lib/sqitchtutorial-mysql.pod2
-rw-r--r--lib/sqitchtutorial-oracle.pod2
-rw-r--r--lib/sqitchtutorial-snowflake.pod30
-rw-r--r--lib/sqitchtutorial-sqlite.pod2
-rw-r--r--lib/sqitchtutorial-vertica.pod2
-rw-r--r--lib/sqitchtutorial.pod2
-rw-r--r--t/add.t11
-rwxr-xr-xt/engine.t53
-rw-r--r--t/firebird.t2
-rw-r--r--t/mysql.t2
-rw-r--r--t/oracle.t4
-rw-r--r--t/snowflake.t16
-rwxr-xr-xt/sqitch10
86 files changed, 304 insertions, 228 deletions
diff --git a/Build.PL b/Build.PL
index d2185fea..8a4ee167 100644
--- a/Build.PL
+++ b/Build.PL
@@ -1,5 +1,5 @@
-# This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.030.
+# This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.031.
use strict;
use warnings;
@@ -18,7 +18,7 @@ my %module_build_args = (
"\"iovation Inc., David E. Wheeler\""
],
"dist_name" => "App-Sqitch",
- "dist_version" => "v1.4.0",
+ "dist_version" => "v1.4.1",
"license" => "mit",
"module_name" => "App::Sqitch",
"recommends" => {
@@ -82,6 +82,7 @@ my %module_build_args = (
"URI::db" => "0.20",
"User::pwent" => 0,
"constant" => 0,
+ "locale" => 0,
"namespace::autoclean" => "0.16",
"overload" => 0,
"parent" => 0,
@@ -114,7 +115,7 @@ my %module_build_args = (
"Test::MockObject::Extends" => 0,
"Test::More" => "0.94",
"Test::NoWarnings" => "0.083",
- "Test::Warn" => 0,
+ "Test::Warn" => "0.31",
"base" => 0,
"lib" => 0
}
@@ -143,7 +144,7 @@ my %fallback_build_requires = (
"Test::MockObject::Extends" => 0,
"Test::More" => "0.94",
"Test::NoWarnings" => "0.083",
- "Test::Warn" => 0,
+ "Test::Warn" => "0.31",
"base" => 0,
"lib" => 0
);
diff --git a/Changes b/Changes
index b615c0be..140e54c8 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,38 @@
Revision history for Perl extension App::Sqitch
+1.4.1 2024-02-04T16:35:32Z
+ - Removed the quoting of the role and warehouse identifiers that was
+ added to the Snowflake engine in v1.4.0. Turns out Snowflake allows a
+ warehouse to be specified in a different database, in which case dots
+ are valid in the name and should not be quoted! So users must properly
+ quote when necessary, but added notes to `sqitchtutorial-snowflake.pod`
+ on the need to use URI escapes for special characters. Thanks to
+ Patrick Sabo for the find, and to @marc-marketparts for validating
+ that URI encoding works.
+ - Added notes on URL encoding database URLs to `sqitch-target.pod`, the
+ main reference for database URLs in the Sqitch documentation.
+ - Fixed the output of the list of changes to be deployed or reverted to
+ actually require `--verbose` twice, as described in the v1.4.0 changes,
+ and not just once. Thanks to Erik Wienhold for the PR (#785)!
+ - Removed the duplicate change name from the output of the list of
+ changes to be deployed or reverted with `-VV`. Thanks to Erik Wienhold
+ for the PR (#787)!
+ - Fixed invalid template resolution when adding a singe change to
+ multiple engines at once. Thanks to Christian Riedel for the detailed
+ bug report (#795)!
+ - Fixed Oracle and Firebird test failures due to incorrect use of `chmod`.
+ Thanks to Slaven Rezić for the report and the fix (#807)!
+ - Tests now require Test::Warn 0.31 or later, as newline handling issues
+ cause test failures in earlier versions. Thanks to Slaven Rezić for the
+ test reports and for identifying the issue.
+ - Updated the locale configuration to fix issues in more recent versions
+ of Perl, and added tests to ensure that the sqitch CLI executes and
+ properly emits localized messages (except on Windows, where the language
+ codes are incompatible).
+ - Fixed an issue where the MySQL engine failed to recognize the MariaDB
+ `mysql` client installed by Homebrew on macOS. Thanks to Carlos Ramos
+ for the bug report and PR (#791)!
+
1.4.0 2023-08-01T23:37:30Z
- Fixed Snowflake warehouse and role setup to properly quote identifiers
unless they're valid unquoted identifiers or already quoted. Thanks to
diff --git a/LICENSE b/LICENSE
index 3ebe3d3f..b7401056 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-This software is Copyright (c) 2012-2023 by "iovation Inc., David E. Wheeler".
+This software is Copyright (c) 2012-2024 by "iovation Inc., David E. Wheeler".
This is free software, licensed under:
diff --git a/LICENSE.md b/LICENSE.md
index 4caa6933..15cc6b5b 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2012-2023 iovation, Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation, Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/MANIFEST b/MANIFEST
index 58cb53f7..ea954f90 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.030.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.031.
Build.PL
Changes
LICENSE
diff --git a/META.json b/META.json
index 600ffe45..2fe8d5fe 100644
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
"\"iovation Inc., David E. Wheeler\""
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "Dist::Zilla version 6.031, CPAN::Meta::Converter version 2.150010",
"license" : [
"mit"
],
@@ -246,6 +246,7 @@
"URI::db" : "0.20",
"User::pwent" : "0",
"constant" : "0",
+ "locale" : "0",
"namespace::autoclean" : "0.16",
"overload" : "0",
"parent" : "0",
@@ -288,7 +289,7 @@
"Test::MockObject::Extends" : "0",
"Test::More" : "0.94",
"Test::NoWarnings" : "0.083",
- "Test::Warn" : "0",
+ "Test::Warn" : "0.31",
"base" : "0",
"lib" : "0"
}
@@ -304,8 +305,8 @@
"url" : "https://github.com/sqitchers/sqitch/"
}
},
- "version" : "v1.4.0",
- "x_generated_by_perl" : "v5.38.0",
+ "version" : "v1.4.1",
+ "x_generated_by_perl" : "v5.38.2",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.37",
"x_spdx_expression" : "MIT"
}
diff --git a/META.yml b/META.yml
index 3d718062..8352db2e 100644
--- a/META.yml
+++ b/META.yml
@@ -24,13 +24,13 @@ build_requires:
Test::MockObject::Extends: '0'
Test::More: '0.94'
Test::NoWarnings: '0.083'
- Test::Warn: '0'
+ Test::Warn: '0.31'
base: '0'
lib: '0'
configure_requires:
Module::Build: '0.35'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010'
+generated_by: 'Dist::Zilla version 6.031, CPAN::Meta::Converter version 2.150010'
license: mit
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -138,6 +138,7 @@ requires:
URI::db: '0.20'
User::pwent: '0'
constant: '0'
+ locale: '0'
namespace::autoclean: '0.16'
overload: '0'
parent: '0'
@@ -149,7 +150,7 @@ resources:
bugtracker: https://github.com/sqitchers/sqitch/issues/
homepage: https://sqitch.org/
repository: https://github.com/sqitchers/sqitch/
-version: v1.4.0
-x_generated_by_perl: v5.38.0
+version: v1.4.1
+x_generated_by_perl: v5.38.2
x_serialization_backend: 'YAML::Tiny version 1.74'
x_spdx_expression: MIT
diff --git a/README b/README
index a0be753c..fd887402 100644
--- a/README
+++ b/README
@@ -1,13 +1,13 @@
This archive contains the distribution App-Sqitch,
-version v1.4.0:
+version v1.4.1:
Sensible database change management
-This software is Copyright (c) 2012-2023 by "iovation Inc., David E. Wheeler".
+This software is Copyright (c) 2012-2024 by "iovation Inc., David E. Wheeler".
This is free software, licensed under:
The MIT (X11) License
-This README file was generated by Dist::Zilla::Plugin::Readme v6.030.
+This README file was generated by Dist::Zilla::Plugin::Readme v6.031.
diff --git a/README.md b/README.md
index cb465fbf..612c76b5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-App/Sqitch version v1.4.0
+App/Sqitch version v1.4.1
=========================
| Release | Coverage | Database ||
@@ -138,7 +138,7 @@ Linux distributions and Windows, see the [Installation documentation].
License
-------
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/bin/sqitch b/bin/sqitch
index 750e5d23..6b844a4a 100755
--- a/bin/sqitch
+++ b/bin/sqitch
@@ -1,15 +1,6 @@
#!perl -w -CAS
-our $VERSION = 'v1.4.0'; # VERSION
-use POSIX qw(setlocale);
-BEGIN {
- if ($^O eq 'MSWin32') {
- require Win32::Locale;
- setlocale POSIX::LC_ALL, Win32::Locale::get_locale();
- } else {
- setlocale POSIX::LC_ALL, '';
- }
-}
+our $VERSION = 'v1.4.1'; # VERSION
+use locale;
use App::Sqitch;
-
exit App::Sqitch->go;
diff --git a/dist/cpanfile b/dist/cpanfile
index 4e19f017..9dac5897 100644
--- a/dist/cpanfile
+++ b/dist/cpanfile
@@ -1,4 +1,4 @@
-# This file is generated by Dist::Zilla::Plugin::CPANFile v6.030
+# This file is generated by Dist::Zilla::Plugin::CPANFile v6.031
# Do not edit this file directly. To change prereqs, edit the `dist.ini` file.
requires "Algorithm::Backoff::Exponential" => "0.006";
@@ -54,6 +54,7 @@ requires "URI::QueryParam" => "0";
requires "URI::db" => "0.20";
requires "User::pwent" => "0";
requires "constant" => "0";
+requires "locale" => "0";
requires "namespace::autoclean" => "0.16";
requires "overload" => "0";
requires "parent" => "0";
@@ -104,7 +105,7 @@ on 'test' => sub {
requires "Test::MockObject::Extends" => "0";
requires "Test::More" => "0.94";
requires "Test::NoWarnings" => "0.083";
- requires "Test::Warn" => "0";
+ requires "Test::Warn" => "0.31";
requires "base" => "0";
requires "lib" => "0";
};
diff --git a/dist/sqitch.spec b/dist/sqitch.spec
index dc40f81d..9be90f1e 100644
--- a/dist/sqitch.spec
+++ b/dist/sqitch.spec
@@ -1,5 +1,5 @@
Name: sqitch
-Version: 1.4.0
+Version: 1.4.1
Release: 1%{?dist}
Summary: Sensible database change management
License: MIT
@@ -72,7 +72,7 @@ BuildRequires: perl(Test::MockModule) >= 0.17
BuildRequires: perl(Test::MockObject::Extends) >= 1.20180705
BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(Test::NoWarnings) >= 0.083
-BuildRequires: perl(Test::Warn)
+BuildRequires: perl(Test::Warn) >= 0.31
BuildRequires: perl(Throwable) >= 0.200009
BuildRequires: perl(Time::HiRes)
BuildRequires: perl(Try::Tiny)
@@ -309,6 +309,10 @@ also be installed.
# No additional files required.
%changelog
+* Sun Feb 4 2024 David E. Wheeler <david@justatheory.com> 1.4.1-1
+- Upgrade to v1.4.1.
+- Upgrade Test::Warn to 0.31
+
* Mon Aug 1 2023 David E. Wheeler <david@justatheory.com> 1.4.0-1
- Upgrade to v1.4.0.
- Incrmented minimal DBI to 1.631.
diff --git a/inc/Menlo/Sqitch.pm b/inc/Menlo/Sqitch.pm
index 9541f1d3..6f75e74a 100644
--- a/inc/Menlo/Sqitch.pm
+++ b/inc/Menlo/Sqitch.pm
@@ -14,7 +14,6 @@ sub new {
last unless s/^\s+//;
$deps{$_} = 1;
}
- use Data::Dump; ddx \%deps; exit;
shift->SUPER::new(
@_,
_remove => [],
@@ -73,6 +72,8 @@ sub remove_build_dependencies {
# dev/dependency_report.
__DATA__
Build-only dependencies
+ Alien-Build
+ Alien-cmake3
Archive-Tar
Archive-Zip
CPAN
@@ -111,6 +112,7 @@ Build-only dependencies
ExtUtils-MakeMaker
ExtUtils-MakeMaker-CPANfile
ExtUtils-ParseXS
+ FFI-CheckLib
File-Fetch
File-Find-Rule
File-Find-Rule-Perl
@@ -118,6 +120,7 @@ Build-only dependencies
File-Listing
File-ShareDir-Install
File-Slurper
+ File-chdir
File-pushd
HTML-Parser
HTML-Tagset
@@ -145,7 +148,6 @@ Build-only dependencies
Log-Log4perl
Math-Base-Convert
Math-BigInt
- Math-BigRat
Math-Complex
Menlo
Menlo-Legacy
@@ -164,6 +166,7 @@ Build-only dependencies
Number-Compare
Params-Check
Parse-PMFile
+ Path-Tiny
Perl-Tidy
Pod-Coverage
SQL-Statement
@@ -188,6 +191,7 @@ Build-only dependencies
Tie-File
Tie-Handle-Offset
TimeDate
+ Unicode-UTF8
WWW-RobotRules
Win32-ShellQuote
XML-DOM
diff --git a/lib/App/Sqitch.pm b/lib/App/Sqitch.pm
index ad918e54..c4105ab2 100644
--- a/lib/App/Sqitch.pm
+++ b/lib/App/Sqitch.pm
@@ -23,7 +23,7 @@ use IPC::System::Simple 1.17 qw(runx capturex $EXITVAL);
use namespace::autoclean 0.16;
use constant ISWIN => $^O eq 'MSWin32';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
BEGIN {
# Force Locale::TextDomain to encode in UTF-8 and to decode all messages.
@@ -904,7 +904,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command.pm b/lib/App/Sqitch/Command.pm
index 2b868cf5..501a30ce 100644
--- a/lib/App/Sqitch/Command.pm
+++ b/lib/App/Sqitch/Command.pm
@@ -12,7 +12,7 @@ use File::Path qw(make_path);
use Moo;
use App::Sqitch::Types qw(Sqitch Target);
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
use constant ENGINES => qw(
pg
@@ -771,7 +771,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/add.pm b/lib/App/Sqitch/Command/add.pm
index 7bc3df44..01e8608b 100644
--- a/lib/App/Sqitch/Command/add.pm
+++ b/lib/App/Sqitch/Command/add.pm
@@ -17,7 +17,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has change_name => (
is => 'ro',
@@ -121,7 +121,7 @@ sub _config_templates {
sub all_templates {
my ($self, $name) = @_;
my $config = $self->sqitch->config;
- my $tmpl = $self->templates;
+ my $tmpl = { %{ $self->templates } };
# Read all the template directories.
for my $dir (
@@ -543,7 +543,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/bundle.pm b/lib/App/Sqitch/Command/bundle.pm
index 37dad04e..44d7d25b 100644
--- a/lib/App/Sqitch/Command/bundle.pm
+++ b/lib/App/Sqitch/Command/bundle.pm
@@ -17,7 +17,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has from => (
is => 'ro',
@@ -359,7 +359,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/check.pm b/lib/App/Sqitch/Command/check.pm
index 483dbc34..f4fe1972 100644
--- a/lib/App/Sqitch/Command/check.pm
+++ b/lib/App/Sqitch/Command/check.pm
@@ -15,7 +15,7 @@ extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -176,7 +176,7 @@ Matthieu Foucault <matthieu@button.is>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler, Button Inc.
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler, Button Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/checkout.pm b/lib/App/Sqitch/Command/checkout.pm
index c7ba2367..464d3547 100644
--- a/lib/App/Sqitch/Command/checkout.pm
+++ b/lib/App/Sqitch/Command/checkout.pm
@@ -16,7 +16,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::RevertDeployCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has client => (
is => 'ro',
@@ -197,7 +197,7 @@ The Sqitch command-line client.
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Copyright (c) 2012-2013 Ronan Dunklau
diff --git a/lib/App/Sqitch/Command/config.pm b/lib/App/Sqitch/Command/config.pm
index 06a671fb..fe28b716 100644
--- a/lib/App/Sqitch/Command/config.pm
+++ b/lib/App/Sqitch/Command/config.pm
@@ -15,7 +15,7 @@ use Type::Utils qw(enum);
use namespace::autoclean;
extends 'App::Sqitch::Command';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has file => (
is => 'ro',
@@ -642,7 +642,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/deploy.pm b/lib/App/Sqitch/Command/deploy.pm
index 4f1ebd45..6ad1536f 100644
--- a/lib/App/Sqitch/Command/deploy.pm
+++ b/lib/App/Sqitch/Command/deploy.pm
@@ -16,7 +16,7 @@ extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -221,7 +221,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/engine.pm b/lib/App/Sqitch/Command/engine.pm
index 532a4677..1d318e1b 100644
--- a/lib/App/Sqitch/Command/engine.pm
+++ b/lib/App/Sqitch/Command/engine.pm
@@ -18,7 +18,7 @@ use constant extra_target_keys => qw(target);
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::TargetConfigCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub _chk_engine($) {
my $engine = shift;
@@ -315,7 +315,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/help.pm b/lib/App/Sqitch/Command/help.pm
index 0ee2a9cb..f2ef705c 100644
--- a/lib/App/Sqitch/Command/help.pm
+++ b/lib/App/Sqitch/Command/help.pm
@@ -11,7 +11,7 @@ use Pod::Find;
use Moo;
extends 'App::Sqitch::Command';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has guide => (
is => 'ro',
@@ -119,7 +119,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/init.pm b/lib/App/Sqitch/Command/init.pm
index 55843489..2247c01a 100644
--- a/lib/App/Sqitch/Command/init.pm
+++ b/lib/App/Sqitch/Command/init.pm
@@ -17,7 +17,7 @@ use constant extra_target_keys => qw(engine target);
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::TargetConfigCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub execute {
my ( $self, $project ) = @_;
@@ -268,7 +268,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/log.pm b/lib/App/Sqitch/Command/log.pm
index 9e7aac1a..9b4c578f 100644
--- a/lib/App/Sqitch/Command/log.pm
+++ b/lib/App/Sqitch/Command/log.pm
@@ -16,7 +16,7 @@ use Try::Tiny;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
my %FORMATS;
$FORMATS{raw} = <<EOF;
@@ -350,7 +350,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/plan.pm b/lib/App/Sqitch/Command/plan.pm
index 9d8e3767..d8f20ad9 100644
--- a/lib/App/Sqitch/Command/plan.pm
+++ b/lib/App/Sqitch/Command/plan.pm
@@ -14,7 +14,7 @@ use namespace::autoclean;
use Try::Tiny;
extends 'App::Sqitch::Command';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
my %FORMATS;
$FORMATS{raw} = <<EOF;
@@ -332,7 +332,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/rebase.pm b/lib/App/Sqitch/Command/rebase.pm
index 3642d8bb..466991b4 100644
--- a/lib/App/Sqitch/Command/rebase.pm
+++ b/lib/App/Sqitch/Command/rebase.pm
@@ -15,7 +15,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::RevertDeployCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has onto_change => (
is => 'ro',
@@ -175,7 +175,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/revert.pm b/lib/App/Sqitch/Command/revert.pm
index 5324c224..c8b48d43 100644
--- a/lib/App/Sqitch/Command/revert.pm
+++ b/lib/App/Sqitch/Command/revert.pm
@@ -15,7 +15,7 @@ extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -269,7 +269,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/rework.pm b/lib/App/Sqitch/Command/rework.pm
index 09eadd1b..f8856cfc 100644
--- a/lib/App/Sqitch/Command/rework.pm
+++ b/lib/App/Sqitch/Command/rework.pm
@@ -14,7 +14,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has change_name => (
is => 'ro',
@@ -313,7 +313,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/show.pm b/lib/App/Sqitch/Command/show.pm
index 31275365..fa73620f 100644
--- a/lib/App/Sqitch/Command/show.pm
+++ b/lib/App/Sqitch/Command/show.pm
@@ -13,7 +13,7 @@ use App::Sqitch::Types qw(Bool Str);
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -181,7 +181,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/status.pm b/lib/App/Sqitch/Command/status.pm
index 69704653..f97ff8be 100644
--- a/lib/App/Sqitch/Command/status.pm
+++ b/lib/App/Sqitch/Command/status.pm
@@ -16,7 +16,7 @@ extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target_name => (
is => 'ro',
@@ -409,7 +409,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/tag.pm b/lib/App/Sqitch/Command/tag.pm
index 4754cb27..9aad0dac 100644
--- a/lib/App/Sqitch/Command/tag.pm
+++ b/lib/App/Sqitch/Command/tag.pm
@@ -14,7 +14,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has tag_name => (
is => 'ro',
@@ -183,7 +183,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/target.pm b/lib/App/Sqitch/Command/target.pm
index 8e950a89..b97224b2 100644
--- a/lib/App/Sqitch/Command/target.pm
+++ b/lib/App/Sqitch/Command/target.pm
@@ -18,7 +18,7 @@ use constant extra_target_keys => qw(uri);
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::TargetConfigCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub configure {
# No config; target config is actually targets.
@@ -314,7 +314,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/upgrade.pm b/lib/App/Sqitch/Command/upgrade.pm
index 9360ce97..fd44cd62 100644
--- a/lib/App/Sqitch/Command/upgrade.pm
+++ b/lib/App/Sqitch/Command/upgrade.pm
@@ -13,7 +13,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -124,7 +124,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Command/verify.pm b/lib/App/Sqitch/Command/verify.pm
index e0812ead..2922ea33 100644
--- a/lib/App/Sqitch/Command/verify.pm
+++ b/lib/App/Sqitch/Command/verify.pm
@@ -15,7 +15,7 @@ extends 'App::Sqitch::Command';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -182,7 +182,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Config.pm b/lib/App/Sqitch/Config.pm
index 3f2f063f..8297a0c9 100644
--- a/lib/App/Sqitch/Config.pm
+++ b/lib/App/Sqitch/Config.pm
@@ -12,7 +12,7 @@ use utf8;
extends 'Config::GitLike';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has '+confname' => ( default => 'sqitch.conf' );
has '+encoding' => ( default => 'UTF-8' );
@@ -208,7 +208,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/DateTime.pm b/lib/App/Sqitch/DateTime.pm
index 400fbac4..0ea7e4c0 100644
--- a/lib/App/Sqitch/DateTime.pm
+++ b/lib/App/Sqitch/DateTime.pm
@@ -11,7 +11,7 @@ use App::Sqitch::X qw(hurl);
use List::Util qw(first);
use constant ISWIN => $^O eq 'MSWin32';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub as_string_formats {
return qw(
@@ -191,7 +191,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine.pm b/lib/App/Sqitch/Engine.pm
index 482e07bf..8ad1bad9 100644
--- a/lib/App/Sqitch/Engine.pm
+++ b/lib/App/Sqitch/Engine.pm
@@ -15,7 +15,7 @@ use namespace::autoclean;
use constant registry_release => '1.1';
use constant default_lock_timeout => 60;
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has sqitch => (
is => 'ro',
@@ -270,7 +270,7 @@ sub deploy {
);
$sqitch->debug(__ "Will deploy the following changes:");
- foreach my $will_deploy_position ($plan->position .. $to_index) {
+ foreach my $will_deploy_position (($plan->position + 1) .. $to_index) {
$sqitch->debug($plan->change_at($will_deploy_position)->format_name_with_tags);
}
@@ -313,11 +313,10 @@ sub revert {
hurl revert => __('Missing required parameter $prompt_default')
unless defined $prompt_default;
} else {
- warnings::warnif(
- "deprecated",
- "Engine::revert() requires the `prompt` and `prompt_default` arguments.\n"
- . 'Omitting them will become fatal in a future release.',
- );
+ warnings::warnif(deprecated => join ("\n",
+ "Engine::revert() requires the `prompt` and `prompt_default` arguments.",
+ 'Omitting them will become fatal in a future release.',
+ ));
$prompt = !($self->no_prompt // 0);
$prompt_default = $self->prompt_accept // 1;
@@ -370,11 +369,11 @@ sub revert {
change => $change->format_name_with_tags,
destination => $self->destination,
));
- $sqitch->info(__ 'Will revert the following changes:');
- map { $sqitch->info($_) } @change_descriptions;
+ $sqitch->debug(__ 'Will revert the following changes:');
+ map { $sqitch->debug($_) } @change_descriptions;
} else {
- $sqitch->info(__ 'Would revert the following changes:');
- map { $sqitch->info($_) } @change_descriptions;
+ $sqitch->debug(__ 'Would revert the following changes:');
+ map { $sqitch->debug($_) } @change_descriptions;
hurl {
ident => 'revert:confirm',
message => __ 'Nothing reverted',
@@ -400,11 +399,11 @@ sub revert {
'Reverting all changes from {destination}',
destination => $self->destination,
));
- $sqitch->info(__ 'Will revert the following changes:');
- map { $sqitch->info($_) } @change_descriptions;
+ $sqitch->debug(__ 'Will revert the following changes:');
+ map { $sqitch->debug($_) } @change_descriptions;
} else {
- $sqitch->info(__ 'Would revert the following changes:');
- map { $sqitch->info($_) } @change_descriptions;
+ $sqitch->debug(__ 'Would revert the following changes:');
+ map { $sqitch->debug($_) } @change_descriptions;
hurl {
ident => 'revert',
message => __ 'Nothing reverted',
@@ -2760,7 +2759,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/cockroach.pm b/lib/App/Sqitch/Engine/cockroach.pm
index bc3fac1e..ef20c39d 100644
--- a/lib/App/Sqitch/Engine/cockroach.pm
+++ b/lib/App/Sqitch/Engine/cockroach.pm
@@ -6,7 +6,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine::pg';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub key { 'cockroach' }
sub name { 'CockroachDB' }
@@ -71,7 +71,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/exasol.pm b/lib/App/Sqitch/Engine/exasol.pm
index 729a38c0..35f3829f 100644
--- a/lib/App/Sqitch/Engine/exasol.pm
+++ b/lib/App/Sqitch/Engine/exasol.pm
@@ -15,7 +15,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub _dt($) {
require App::Sqitch::DateTime;
@@ -572,7 +572,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/firebird.pm b/lib/App/Sqitch/Engine/firebird.pm
index e63661c3..51090356 100644
--- a/lib/App/Sqitch/Engine/firebird.pm
+++ b/lib/App/Sqitch/Engine/firebird.pm
@@ -18,7 +18,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has registry_uri => (
is => 'ro',
@@ -996,7 +996,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Copyright (c) 2013 Ștefan Suciu
diff --git a/lib/App/Sqitch/Engine/mysql.pm b/lib/App/Sqitch/Engine/mysql.pm
index 415c1081..88d1cea8 100644
--- a/lib/App/Sqitch/Engine/mysql.pm
+++ b/lib/App/Sqitch/Engine/mysql.pm
@@ -16,7 +16,7 @@ use List::MoreUtils qw(firstidx);
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has uri => (
is => 'ro',
@@ -179,7 +179,7 @@ has _mysql => (
# Get Maria to abort properly on error.
my $vinfo = try { $self->sqitch->probe($self->client, '--version') } || '';
if ($vinfo =~ /mariadb/i) {
- my ($version) = $vinfo =~ /Ver\s(\S+)/;
+ my ($version) = $vinfo =~ /(?:Ver|client)\s+(\S+)/;
my ($maj, undef, $pat) = split /[.]/ => $version;
push @ret => '--abort-source-on-error'
if $maj > 5 || ($maj == 5 && $pat >= 66);
@@ -566,7 +566,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/oracle.pm b/lib/App/Sqitch/Engine/oracle.pm
index 3ee7e212..5e96f797 100644
--- a/lib/App/Sqitch/Engine/oracle.pm
+++ b/lib/App/Sqitch/Engine/oracle.pm
@@ -15,7 +15,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
BEGIN {
# We tell the Oracle connector which encoding to use. The last part of the
@@ -822,7 +822,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/pg.pm b/lib/App/Sqitch/Engine/pg.pm
index 50cab47d..8fc2e519 100644
--- a/lib/App/Sqitch/Engine/pg.pm
+++ b/lib/App/Sqitch/Engine/pg.pm
@@ -16,7 +16,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub destination {
my $self = shift;
@@ -554,7 +554,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/snowflake.pm b/lib/App/Sqitch/Engine/snowflake.pm
index 02b3af2e..2ada3b30 100644
--- a/lib/App/Sqitch/Engine/snowflake.pm
+++ b/lib/App/Sqitch/Engine/snowflake.pm
@@ -12,7 +12,7 @@ use App::Sqitch::Types qw(DBH ArrayRef HashRef URIDB Str);
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub key { 'snowflake' }
sub name { 'Snowflake' }
@@ -192,6 +192,8 @@ has dbh => (
my $self = shift;
$self->use_driver;
my $uri = $self->uri;
+ my $wh = $self->warehouse;
+ my $role = $self->role;
DBI->connect($uri->dbi_dsn, $self->username, $self->password, {
PrintError => 0,
RaiseError => 0,
@@ -207,23 +209,22 @@ has dbh => (
Callbacks => {
connected => sub {
my $dbh = shift;
- my $wh = _quote_ident($dbh, $self->warehouse);
my $role = $self->role;
$dbh->do($_) or return for (
- ($role ? ("USE ROLE " . _quote_ident($dbh, $role)) : ()),
+ ($role ? ("USE ROLE $role") : ()),
"ALTER WAREHOUSE $wh RESUME IF SUSPENDED",
"USE WAREHOUSE $wh",
'ALTER SESSION SET TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ',
"ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT='YYYY-MM-DD HH24:MI:SS'",
"ALTER SESSION SET TIMEZONE='UTC'",
);
- $dbh->do('USE SCHEMA ' . _quote_ident($dbh, $self->registry))
+ $dbh->do('USE SCHEMA ' . $self->registry)
or $self->_handle_no_registry($dbh);
return;
},
disconnect => sub {
my $dbh = shift;
- my $wh = _quote_ident($dbh, $self->warehouse);
+ my $wh = $self->warehouse;
$dbh->do("ALTER WAREHOUSE $wh SUSPEND");
return;
},
@@ -232,14 +233,6 @@ has dbh => (
}
);
-sub _quote_ident {
- my ($dbh, $ident) = @_;
- # https://docs.snowflake.com/en/sql-reference/identifiers-syntax
- return $ident if $ident =~ /^[_a-zA-Z][_a-zA-Z0-9\$]*$/;
- return $ident if $ident =~ /^"/ && $ident =~ /"$/;
- return $dbh->quote_identifier($ident);
-}
-
# Need to wait until dbh is defined.
with 'App::Sqitch::Role::DBIEngine';
@@ -725,7 +718,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/sqlite.pm b/lib/App/Sqitch/Engine/sqlite.pm
index e5cb54d8..cbc12d6b 100644
--- a/lib/App/Sqitch/Engine/sqlite.pm
+++ b/lib/App/Sqitch/Engine/sqlite.pm
@@ -15,7 +15,7 @@ use namespace::autoclean;
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has registry_uri => (
is => 'ro',
@@ -288,7 +288,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Engine/vertica.pm b/lib/App/Sqitch/Engine/vertica.pm
index 5ccd181a..835ceed9 100644
--- a/lib/App/Sqitch/Engine/vertica.pm
+++ b/lib/App/Sqitch/Engine/vertica.pm
@@ -12,7 +12,7 @@ use App::Sqitch::Types qw(DBH ArrayRef);
extends 'App::Sqitch::Engine';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub key { 'vertica' }
sub name { 'Vertica' }
@@ -559,7 +559,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/ItemFormatter.pm b/lib/App/Sqitch/ItemFormatter.pm
index d617acfc..d34e36f2 100644
--- a/lib/App/Sqitch/ItemFormatter.pm
+++ b/lib/App/Sqitch/ItemFormatter.pm
@@ -24,7 +24,7 @@ BEGIN {
$ENV{ANSI_COLORS_DISABLED} = 1 unless CAN_OUTPUT_COLOR;
}
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has abbrev => (
is => 'ro',
@@ -582,7 +582,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan.pm b/lib/App/Sqitch/Plan.pm
index c74f5285..bfe26cc4 100644
--- a/lib/App/Sqitch/Plan.pm
+++ b/lib/App/Sqitch/Plan.pm
@@ -18,7 +18,7 @@ use Moo;
use App::Sqitch::Types qw(Str Int HashRef ChangeList LineList Maybe Sqitch URI File Target);
use constant SYNTAX_VERSION => '1.0.0';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
# Like [:punct:], but excluding _. Copied from perlrecharclass.
my $punct = q{-!"#$%&'()*+,./:;<=>?@[\\]^`{|}~};
@@ -1607,7 +1607,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Blank.pm b/lib/App/Sqitch/Plan/Blank.pm
index d52aa304..551599b7 100644
--- a/lib/App/Sqitch/Plan/Blank.pm
+++ b/lib/App/Sqitch/Plan/Blank.pm
@@ -6,7 +6,7 @@ use namespace::autoclean;
use Moo;
extends 'App::Sqitch::Plan::Line';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has '+name' => ( default => '', required => 0 );
@@ -39,7 +39,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Change.pm b/lib/App/Sqitch/Plan/Change.pm
index 4c42fd04..83c361a0 100644
--- a/lib/App/Sqitch/Plan/Change.pm
+++ b/lib/App/Sqitch/Plan/Change.pm
@@ -10,7 +10,7 @@ use App::Sqitch::Plan::Depend;
use Locale::TextDomain qw(App-Sqitch);
extends 'App::Sqitch::Plan::Line';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has _requires => (
is => 'ro',
@@ -647,7 +647,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/ChangeList.pm b/lib/App/Sqitch/Plan/ChangeList.pm
index 2402d3c8..abd81692 100644
--- a/lib/App/Sqitch/Plan/ChangeList.pm
+++ b/lib/App/Sqitch/Plan/ChangeList.pm
@@ -7,7 +7,7 @@ use List::Util;
use Locale::TextDomain qw(App-Sqitch);
use App::Sqitch::X qw(hurl);
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub new {
my $class = shift;
@@ -410,7 +410,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Depend.pm b/lib/App/Sqitch/Plan/Depend.pm
index 16bd8783..6a83ed66 100644
--- a/lib/App/Sqitch/Plan/Depend.pm
+++ b/lib/App/Sqitch/Plan/Depend.pm
@@ -9,7 +9,7 @@ use App::Sqitch::X qw(hurl);
use Locale::TextDomain qw(App-Sqitch);
use namespace::autoclean;
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has conflicts => (
is => 'ro',
@@ -366,7 +366,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Line.pm b/lib/App/Sqitch/Plan/Line.pm
index 0732f1e4..360d1800 100644
--- a/lib/App/Sqitch/Plan/Line.pm
+++ b/lib/App/Sqitch/Plan/Line.pm
@@ -8,7 +8,7 @@ use App::Sqitch::Types qw(Str Plan);
use App::Sqitch::X qw(hurl);
use Locale::TextDomain qw(App-Sqitch);
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has name => (
is => 'ro',
@@ -347,7 +347,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/LineList.pm b/lib/App/Sqitch/Plan/LineList.pm
index 49107359..c63247c6 100644
--- a/lib/App/Sqitch/Plan/LineList.pm
+++ b/lib/App/Sqitch/Plan/LineList.pm
@@ -4,7 +4,7 @@ use 5.010;
use strict;
use utf8;
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub new {
my $class = shift;
@@ -110,7 +110,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Pragma.pm b/lib/App/Sqitch/Plan/Pragma.pm
index a9d4de2d..878f97e7 100644
--- a/lib/App/Sqitch/Plan/Pragma.pm
+++ b/lib/App/Sqitch/Plan/Pragma.pm
@@ -7,7 +7,7 @@ use Moo;
use App::Sqitch::Types qw(Str);
extends 'App::Sqitch::Plan::Line';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has value => (
is => 'ro',
@@ -102,7 +102,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Plan/Tag.pm b/lib/App/Sqitch/Plan/Tag.pm
index 70c18b48..76c11f47 100644
--- a/lib/App/Sqitch/Plan/Tag.pm
+++ b/lib/App/Sqitch/Plan/Tag.pm
@@ -9,7 +9,7 @@ use Encode;
extends 'App::Sqitch::Plan::Line';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
sub format_name {
'@' . shift->name;
@@ -158,7 +158,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Role/ConnectingCommand.pm b/lib/App/Sqitch/Role/ConnectingCommand.pm
index 14d83290..fbe599ef 100644
--- a/lib/App/Sqitch/Role/ConnectingCommand.pm
+++ b/lib/App/Sqitch/Role/ConnectingCommand.pm
@@ -7,7 +7,7 @@ use utf8;
use Moo::Role;
use App::Sqitch::Types qw(ArrayRef);
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
requires 'options';
requires 'configure';
@@ -120,7 +120,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Role/ContextCommand.pm b/lib/App/Sqitch/Role/ContextCommand.pm
index 4795f83f..af2e7a04 100644
--- a/lib/App/Sqitch/Role/ContextCommand.pm
+++ b/lib/App/Sqitch/Role/ContextCommand.pm
@@ -9,7 +9,7 @@ use Path::Class;
use App::Sqitch::Types qw(ArrayRef);
use Locale::TextDomain qw(App-Sqitch); # XXX Until deprecation removed below.
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
requires 'options';
requires 'configure';
@@ -122,7 +122,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Role/DBIEngine.pm b/lib/App/Sqitch/Role/DBIEngine.pm
index 4b427d9d..8629c73c 100644
--- a/lib/App/Sqitch/Role/DBIEngine.pm
+++ b/lib/App/Sqitch/Role/DBIEngine.pm
@@ -11,7 +11,7 @@ use App::Sqitch::X qw(hurl);
use Locale::TextDomain qw(App-Sqitch);
use namespace::autoclean;
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
requires 'dbh';
requires 'sqitch';
@@ -1133,7 +1133,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Role/RevertDeployCommand.pm b/lib/App/Sqitch/Role/RevertDeployCommand.pm
index 74a256e3..b21644b1 100644
--- a/lib/App/Sqitch/Role/RevertDeployCommand.pm
+++ b/lib/App/Sqitch/Role/RevertDeployCommand.pm
@@ -19,7 +19,7 @@ requires 'configure';
with 'App::Sqitch::Role::ContextCommand';
with 'App::Sqitch::Role::ConnectingCommand';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has target => (
is => 'ro',
@@ -287,7 +287,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Role/TargetConfigCommand.pm b/lib/App/Sqitch/Role/TargetConfigCommand.pm
index f24f7910..60eb4e3a 100644
--- a/lib/App/Sqitch/Role/TargetConfigCommand.pm
+++ b/lib/App/Sqitch/Role/TargetConfigCommand.pm
@@ -16,7 +16,7 @@ use File::Path qw(make_path);
use namespace::autoclean;
use constant extra_target_keys => ();
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
requires 'command';
requires 'options';
@@ -530,7 +530,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Target.pm b/lib/App/Sqitch/Target.pm
index dfd82397..da238daf 100644
--- a/lib/App/Sqitch/Target.pm
+++ b/lib/App/Sqitch/Target.pm
@@ -11,7 +11,7 @@ use Path::Class qw(dir file);
use URI::db;
use namespace::autoclean;
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has name => (
is => 'ro',
@@ -842,7 +842,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/Types.pm b/lib/App/Sqitch/Types.pm
index ef3b2a58..30952f3d 100644
--- a/lib/App/Sqitch/Types.pm
+++ b/lib/App/Sqitch/Types.pm
@@ -32,7 +32,7 @@ use App::Sqitch::Config;
use Scalar::Util qw(blessed);
use List::Util qw(first);
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
# Inherit standard types.
BEGIN { extends 'Types::Standard' };
@@ -168,7 +168,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/App/Sqitch/X.pm b/lib/App/Sqitch/X.pm
index 6056be45..e3788647 100644
--- a/lib/App/Sqitch/X.pm
+++ b/lib/App/Sqitch/X.pm
@@ -9,7 +9,7 @@ use Throwable 0.200009;
use Sub::Exporter -setup => [qw(hurl)];
use overload '""' => 'as_string';
-our $VERSION = 'v1.4.0'; # VERSION
+our $VERSION = 'v1.4.1'; # VERSION
has message => (
is => 'ro',
@@ -175,7 +175,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo b/lib/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo
index 0c72b8ef..91051a84 100644
--- a/lib/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo
+++ b/lib/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo
Binary files differ
diff --git a/lib/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo b/lib/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo
index 40653511..09b21f33 100644
--- a/lib/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo
+++ b/lib/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo
Binary files differ
diff --git a/lib/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo b/lib/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo
index 644f3547..ec469606 100644
--- a/lib/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo
+++ b/lib/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo
Binary files differ
diff --git a/lib/sqitch-configuration.pod b/lib/sqitch-configuration.pod
index a9636856..3fe808c8 100644
--- a/lib/sqitch-configuration.pod
+++ b/lib/sqitch-configuration.pod
@@ -368,7 +368,7 @@ The commands that take engine and target URI arguments include:
=item * L<C<verify>|sqitch-verify>
-=item * L<C<verify>|sqitch-upgrade>
+=item * L<C<upgrade>|sqitch-upgrade>
=back
diff --git a/lib/sqitch-target.pod b/lib/sqitch-target.pod
index 3bf9e6da..9d5ba65c 100644
--- a/lib/sqitch-target.pod
+++ b/lib/sqitch-target.pod
@@ -40,7 +40,25 @@ Some examples:
=back
-See the L<DB URI Draft|https://github.com/libwww-perl/uri-db> for details.
+Note that, as with any URI or URL, special characters must be
+L<URL encoded|https://en.wikipedia.org/wiki/URL_encoding>. For example, when
+a username contains a reserved character, such as the C<|> in C<ro|michelle>,
+it must be percent-encoded as C<%7c>:
+
+ db:pg://ro%7Cmichelle@examle.org/inventory
+
+The rules are even more strict for query parameters, as often used by for
+ODBC connections. For example, when using a
+L<Snowflake identifier|https://docs.snowflake.com/en/sql-reference/identifiers-syntax#double-quoted-identifiers>
+with special characters, such as a warehouse name with a C<.>, such as
+C<sqitch.dev>, the identifier must be double-quoted --- and double quote are
+reserved characters in URIs, so must be encoded as C<%22>.
+
+ db:snowflake://example/flipr?Driver=Snowflake;warehouse=%22sqitch.dev%22
+
+See L<URL encoding|https://en.wikipedia.org/wiki/URL_encoding> for details.
+and the L<DB URI Draft|https://github.com/libwww-perl/uri-db> for in-depth
+information on database URIs in general.
=item C<registry>
diff --git a/lib/sqitch.pod b/lib/sqitch.pod
index f81bc41d..729dfa74 100644
--- a/lib/sqitch.pod
+++ b/lib/sqitch.pod
@@ -495,7 +495,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-exasol.pod b/lib/sqitchtutorial-exasol.pod
index 17c50b77..c43ef4d8 100644
--- a/lib/sqitchtutorial-exasol.pod
+++ b/lib/sqitchtutorial-exasol.pod
@@ -1391,7 +1391,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-firebird.pod b/lib/sqitchtutorial-firebird.pod
index 31fe551d..3deb03c6 100644
--- a/lib/sqitchtutorial-firebird.pod
+++ b/lib/sqitchtutorial-firebird.pod
@@ -1243,7 +1243,7 @@ is planned to make managing idempotent reworkings even easier. Stay tuned.
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-mysql.pod b/lib/sqitchtutorial-mysql.pod
index 71bae521..ba5e72fc 100644
--- a/lib/sqitchtutorial-mysql.pod
+++ b/lib/sqitchtutorial-mysql.pod
@@ -1703,7 +1703,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-oracle.pod b/lib/sqitchtutorial-oracle.pod
index 01bbc080..7b73d2bf 100644
--- a/lib/sqitchtutorial-oracle.pod
+++ b/lib/sqitchtutorial-oracle.pod
@@ -1963,7 +1963,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-snowflake.pod b/lib/sqitchtutorial-snowflake.pod
index 4347c4b9..317ac7e3 100644
--- a/lib/sqitchtutorial-snowflake.pod
+++ b/lib/sqitchtutorial-snowflake.pod
@@ -183,7 +183,13 @@ this:
db:snowflake://movera@example/flipr?Driver=Snowflake;warehouse=sqitch
-Note that Sqitch requires a C<warehouse> parameter in order to record its work
+A few notes on the URL format:
+
+=over
+
+=item *
+
+Sqitch requires a C<warehouse> parameter in order to record its work
in the registry. The default warehouse is named C<sqitch>, so you can omit it
from the URI if that's the warehouse you want Sqitch to use (we'll omit it for
the remainder of this tutorial). Otherwise, specify it in the URI. Snowflake
@@ -192,7 +198,25 @@ best to put it in the C<connections> section of the
L<F<.snowsql/config> file|https://docs.snowflake.com/en/user-guide/snowsql-start.html#configuring-default-connection-settings>.
See L<sqitch-authentication> for details.
-We just tell Sqitch to use that URI to deploy the change:
+=item *
+
+This is a proper URI, where special characters must be
+L<URL encoded|https://en.wikipedia.org/wiki/URL_encoding>. For example, when
+a warehouse name or role requires
+L<identifier quoting|https://docs.snowflake.com/en/sql-reference/identifiers-syntax#double-quoted-identifiers>,
+use C<%22> for the quotation marks:
+
+ db:snowflake://movera@example/flipr?Driver=Snowflake;warehouse=%22sqitch.dev%22&role=%22app.sqitch%22
+
+Of course that can be tricky to use on the command line, so there are also
+L<environment variables|sqitch-environment/Snowflake> that can simplify things:
+
+ export SNOWSQL_ROLE='"app.sqitch"'
+ export SNOWSQL_WAREHOUSE='"sqitch.dev"'
+
+=back
+
+Back to the change. We just tell Sqitch to use that URI to deploy it:
> sqitch deploy 'db:snowflake://movera@example/flipr?Driver=Snowflake'
Adding registry tables to db:snowflake://movera@example/flipr?Driver=Snowflake
@@ -1399,7 +1423,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-sqlite.pod b/lib/sqitchtutorial-sqlite.pod
index e59fa713..1c89348c 100644
--- a/lib/sqitchtutorial-sqlite.pod
+++ b/lib/sqitchtutorial-sqlite.pod
@@ -1220,7 +1220,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial-vertica.pod b/lib/sqitchtutorial-vertica.pod
index fb995ca4..0ab02b29 100644
--- a/lib/sqitchtutorial-vertica.pod
+++ b/lib/sqitchtutorial-vertica.pod
@@ -1370,7 +1370,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/sqitchtutorial.pod b/lib/sqitchtutorial.pod
index d7ed13ac..24045d4f 100644
--- a/lib/sqitchtutorial.pod
+++ b/lib/sqitchtutorial.pod
@@ -1677,7 +1677,7 @@ David E. Wheeler <david@justatheory.com>
=head1 License
-Copyright (c) 2012-2023 iovation Inc., David E. Wheeler
+Copyright (c) 2012-2024 iovation Inc., David E. Wheeler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/t/add.t b/t/add.t
index 533cd13e..a98d3ca0 100644
--- a/t/add.t
+++ b/t/add.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
use utf8;
-use Test::More tests => 242;
+use Test::More tests => 243;
#use Test::More 'no_plan';
use App::Sqitch;
use App::Sqitch::Target;
@@ -301,7 +301,14 @@ is_deeply $add->all_templates($tname), {
deploy => file('etc/templates/deploy/pg.tmpl'),
revert => file('etc/templates/revert/pg.tmpl'),
verify => file('etc/templates/verify/pg.tmpl'),
-}, 'Should find all templates in directory';
+}, 'Should find all pg templates in directory';
+
+# Make sure it works for a second name.
+is_deeply $add->all_templates('sqlite'), {
+ deploy => file('etc/templates/deploy/sqlite.tmpl'),
+ revert => file('etc/templates/revert/sqlite.tmpl'),
+ verify => file('etc/templates/verify/sqlite.tmpl'),
+}, 'Should find all sqlite templates in directory';
# Now let it find the templates in the user dir.
$usrdir = dir 'etc';
diff --git a/t/engine.t b/t/engine.t
index ee971371..f7bfa8e8 100755
--- a/t/engine.t
+++ b/t/engine.t
@@ -4,7 +4,7 @@ use strict;
use warnings;
use 5.010;
use utf8;
-use Test::More tests => 775;
+use Test::More tests => 781;
# use Test::More 'no_plan';
use App::Sqitch;
use App::Sqitch::Plan;
@@ -14,7 +14,7 @@ use Test::Exception;
use Test::NoWarnings;
use Test::MockModule;
use Test::MockObject::Extends;
-use Test::Warn qw(warning_is);
+use Test::Warn 0.31 qw(warning_is);
use Time::HiRes qw(sleep);
use Locale::TextDomain qw(App-Sqitch);
use App::Sqitch::X qw(hurl);
@@ -1169,6 +1169,7 @@ is_deeply +MockOutput->get_info, [
], 'Should have emitted deploy announcement and successes';
# Make sure we can deploy everything by change.
+MockOutput->clear;
$latest_change_id = undef;
$plan->reset;
$plan->add( name => 'lolz', note => 'ha ha' );
@@ -1208,6 +1209,15 @@ is_deeply +MockOutput->get_info_literal, [
[' + lolz ..', '.........', ' '],
], 'Should have seen the output of the deploy to the end';
+is_deeply +MockOutput->get_debug, [
+ [__ 'Will deploy the following changes:' ],
+ ['roles'],
+ ['users @alpha'],
+ ['widgets @beta'],
+ ['lolz'],
+], 'Debug output should show what will be deployed';
+
+
# If we deploy again, it should be up-to-date.
$latest_change_id = $changes[-1]->id;
ok $engine->deploy, 'Should return success for deploy to up-to-date DB';
@@ -1928,6 +1938,8 @@ is_deeply $engine->seen, [
is_deeply +MockOutput->get_info, [], 'Nothing should have been output';
# Make sure deprecation warning happens.
+# Test only the first line of the warning. Reason:
+# https://github.com/hanfried/test-warn/issues/9
warning_is { $engine->revert }
"Engine::revert() requires the `prompt` and `prompt_default` arguments.\n",
'Should get warning omitting required arguments';
@@ -2050,6 +2062,7 @@ my @dbchanges;
$params;
} @changes[0..3];
+MockOutput->clear;
MockOutput->ask_yes_no_returns(1);
is $engine->revert(undef, 1, 1), $engine, 'Revert all changes';
is_deeply $engine->seen, [
@@ -2077,12 +2090,14 @@ is_deeply +MockOutput->get_info_literal, [
[' - users @alpha ..', '.', ' '],
[' - roles ..', '........', ' '],
], 'It should have said it was reverting all changes and listed them';
-is_deeply +MockOutput->get_info, [
+is_deeply +MockOutput->get_debug, [
[__ 'Would revert the following changes:'],
['roles'],
['users @alpha'],
['widgets @beta'],
['lolz'],
+], 'Output should show what would be reverted';
+is_deeply +MockOutput->get_info, [
[__ 'ok'],
[__ 'ok'],
[__ 'ok'],
@@ -2114,12 +2129,14 @@ is_deeply +MockOutput->get_info_literal, [
[' - users @alpha ..', '.', ' '],
[' - roles ..', '........', ' '],
], 'It should have said it was reverting all changes and listed them';
-is_deeply +MockOutput->get_info, [
+is_deeply +MockOutput->get_debug, [
[__ 'Would revert the following changes:'],
['roles'],
['users @alpha'],
['widgets @beta'],
['lolz'],
+], 'Output should show what would be reverted';
+is_deeply +MockOutput->get_info, [
[__ 'ok'],
[__ 'ok'],
[__ 'ok'],
@@ -2142,13 +2159,13 @@ is_deeply +MockOutput->get_ask_yes_no, [
destination => $engine->destination,
), 1],
], 'Should have prompt to revert all changes';
-is_deeply +MockOutput->get_info, [
+is_deeply +MockOutput->get_debug, [
[__ 'Would revert the following changes:'],
['roles'],
['users @alpha'],
['widgets @beta'],
['lolz'],
-], 'It should have emitted nothing else';
+], 'Output should show what would be reverted';
# Revert all changes with no prompt.
MockOutput->ask_yes_no_returns(1);
@@ -2180,16 +2197,18 @@ is_deeply +MockOutput->get_info, [
'Reverting all changes from {destination}',
destination => $engine->destination,
)],
- [__ 'Will revert the following changes:'],
- ['roles'],
- ['users @alpha'],
- ['widgets @beta'],
- ['lolz'],
[__ 'ok'],
[__ 'ok'],
[__ 'ok'],
[__ 'ok'],
], 'And the revert successes should be emitted';
+is_deeply +MockOutput->get_debug, [
+ [__ 'Will revert the following changes:'],
+ ['roles'],
+ ['users @alpha'],
+ ['widgets @beta'],
+ ['lolz'],
+], 'Output should show what will be reverted';
# Now just revert to an earlier change.
$offset_change = $dbchanges[1];
@@ -2220,10 +2239,12 @@ is_deeply +MockOutput->get_info_literal, [
[' - lolz ..', '.........', ' '],
[' - widgets @beta ..', '', ' '],
], 'Output should show what it reverts to';
-is_deeply +MockOutput->get_info, [
+is_deeply +MockOutput->get_debug, [
[__ 'Would revert the following changes:'],
['widgets @beta'],
['lolz'],
+], 'Output should show what would be reverted';
+is_deeply +MockOutput->get_info, [
[__ 'ok'],
[__ 'ok'],
], 'And the revert successes should be emitted';
@@ -2249,7 +2270,7 @@ is_deeply +MockOutput->get_ask_yes_no, [
destination => $engine->destination,
), 1],
], 'Should have prompt to revert to @alpha';
-is_deeply +MockOutput->get_info, [
+is_deeply +MockOutput->get_debug, [
[__ 'Would revert the following changes:'],
['widgets @beta'],
['lolz'],
@@ -2282,10 +2303,12 @@ is_deeply +MockOutput->get_info, [
destination => $engine->destination,
change => $dbchanges[-1]->format_name_with_tags,
)],
- [__ 'Will revert the following changes:'],
- ['lolz'],
[__ 'ok'],
], 'And the header and "ok" should be emitted';
+is_deeply +MockOutput->get_debug, [
+ [__ 'Will revert the following changes:'],
+ ['lolz'],
+], 'Output should show what will be reverted';
##############################################################################
# Test change_id_for_depend().
diff --git a/t/firebird.t b/t/firebird.t
index a5759410..f0a04e89 100644
--- a/t/firebird.t
+++ b/t/firebird.t
@@ -377,7 +377,7 @@ FSPEC: {
my $iswin = App::Sqitch::ISWIN || $^O eq 'cygwin';
my $fbsql = $tmp->file('fbsql' . ($iswin ? '.exe' : ''));
$fbsql->touch;
- chmod '0755', $fbsql unless $iswin;
+ chmod 0755, $fbsql unless $iswin;
my $fs_mock = Test::MockModule->new('File::Spec');
$fs_mock->mock(path => sub { $tmp });
diff --git a/t/mysql.t b/t/mysql.t
index 33ce8aed..51354240 100644
--- a/t/mysql.t
+++ b/t/mysql.t
@@ -75,7 +75,7 @@ my @std_opts = (
);
my $vinfo = try { $sqitch->probe($mysql->client, '--version') } || '';
if ($vinfo =~ /mariadb/i) {
- my ($version) = $vinfo =~ /Ver\s(\S+)/;
+ my ($version) = $vinfo =~ /(?:Ver|client)\s+(\S+)/;
my ($maj, undef, $pat) = split /[.]/ => $version;
push @std_opts => '--abort-source-on-error'
if $maj > 5 || ($maj == 5 && $pat >= 66);
diff --git a/t/oracle.t b/t/oracle.t
index 587a1d40..8cfece56 100644
--- a/t/oracle.t
+++ b/t/oracle.t
@@ -156,7 +156,7 @@ ORACLE_HOME: {
my $tmp = Path::Class::Dir->new("$tmpdir");
my $sqlplus = $tmp->file($cli);
$sqlplus->touch;
- chmod '0755', $sqlplus unless $iswin;
+ chmod 0755, $sqlplus unless $iswin;
local $ENV{ORACLE_HOME} = "$tmpdir";
$target = App::Sqitch::Target->new(sqitch => $sqitch);
@@ -168,7 +168,7 @@ ORACLE_HOME: {
$bin->mkpath;
$sqlplus = $bin->file($cli);
$sqlplus->touch;
- chmod '0755', $sqlplus unless $iswin;
+ chmod 0755, $sqlplus unless $iswin;
$target = App::Sqitch::Target->new(sqitch => $sqitch);
isa_ok $ora = $CLASS->new(sqitch => $sqitch, target => $target), $CLASS;
diff --git a/t/snowflake.t b/t/snowflake.t
index e0001ad8..0f957e04 100644
--- a/t/snowflake.t
+++ b/t/snowflake.t
@@ -516,22 +516,6 @@ is $snow->_char2ts($now), $now->as_string(format => 'iso'),
'Should get ISO output from _char2ts';
##############################################################################
-# Test _quote_ident.
-# Mock DBI method.
-sub quote_identifier { qq{"$_[1]"} }
-
-ok my $quote_ident = $CLASS->can('_quote_ident'), 'Should have _quote_ident sub';
-# https://docs.snowflake.com/en/sql-reference/identifiers-syntax#unquoted-identifiers
-for my $ident (qw(foo FOO _xXx _ a id1 My$Thing), "foo") {
- is $quote_ident->(__PACKAGE__, $ident), $ident, "Should not quote “$ident”";
-}
-
-for my $ident (qw(my.thing 1go $foo идентификатор), 'hi there', qq{'thing'}) {
- is $quote_ident->(__PACKAGE__, $ident), quote_identifier(__PACKAGE__, $ident),
- "Should quote “$ident”";
-}
-
-##############################################################################
# Can we do live tests?
my $dbh;
my $id = DBIEngineTest->randstr;
diff --git a/t/sqitch b/t/sqitch
index 350e7fc0..cf9171dc 100755
--- a/t/sqitch
+++ b/t/sqitch
@@ -1,14 +1,6 @@
#!/usr/bin/env perl -CAS
-use POSIX qw(setlocale);
-BEGIN {
- if ($^O eq 'MSWin32') {
- require Win32::Locale;
- setlocale POSIX::LC_ALL, Win32::Locale::get_locale();
- } else {
- setlocale POSIX::LC_ALL, '';
- }
-}
+use locale;
use FindBin;
use lib "$FindBin::Bin/../lib";
use App::Sqitch;