From 2830b9fe8d74839feb8ece1ff806fbe5076019e9 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Tue, 1 Aug 2023 20:07:40 -0400 Subject: [PATCH 01/13] Increment to v1.4.1-dev And update the release notes and remove a wayward Data::Dump --- Changes | 2 ++ README.md | 2 +- dist.ini | 2 +- dist/sqitch.spec | 2 +- inc/Menlo/Sqitch.pm | 1 - po/App-Sqitch.pot | 2 +- xt/release.md | 17 +++++++++-------- 7 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Changes b/Changes index b615c0be..6033fa3a 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,7 @@ Revision history for Perl extension App::Sqitch +1.4.1 + 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/README.md b/README.md index cb465fbf..4bf81e1c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -App/Sqitch version v1.4.0 +App/Sqitch version v1.4.1-dev ========================= | Release | Coverage | Database || diff --git a/dist.ini b/dist.ini index 6f61eeb4..262efdd6 100644 --- a/dist.ini +++ b/dist.ini @@ -2,7 +2,7 @@ name = App-Sqitch license = MIT copyright_holder = "iovation Inc., David E. Wheeler" copyright_year = 2012-2023 -version = v1.4.0 +version = v1.4.1-dev [GatherDir] exclude_filename = dist/cpanfile diff --git a/dist/sqitch.spec b/dist/sqitch.spec index dc40f81d..49f292ab 100644 --- a/dist/sqitch.spec +++ b/dist/sqitch.spec @@ -1,5 +1,5 @@ Name: sqitch -Version: 1.4.0 +Version: 1.4.1-dev Release: 1%{?dist} Summary: Sensible database change management License: MIT diff --git a/inc/Menlo/Sqitch.pm b/inc/Menlo/Sqitch.pm index 9541f1d3..74b9cb5d 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 => [], diff --git a/po/App-Sqitch.pot b/po/App-Sqitch.pot index d998166b..a9633904 100644 --- a/po/App-Sqitch.pot +++ b/po/App-Sqitch.pot @@ -6,7 +6,7 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: App-Sqitch v1.4.0\n" +"Project-Id-Version: App-Sqitch v1.4.1-dev\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-30 20:02-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/xt/release.md b/xt/release.md index f7a4171a..e151540c 100644 --- a/xt/release.md +++ b/xt/release.md @@ -2,10 +2,11 @@ Releasing Sqitch ================ Notes on the steps to make a release of Sqitch. In the steps, below, examples -use the `$VERSION` environment variable for consistency. The assumption is that -it's set to the new version being released, e.g., +use the `$VERSION` and `$OLD_VERSION` environment variables for consistency. The +assumption is that they're set to the old and new versions, respectively, e.g., ``` sh +export OLD_VERSION=1.3.1 export VERSION=1.4.0 ``` @@ -101,7 +102,7 @@ to get it out there! the release and that the list of Changes is nicely formatted. It should also appear [on CPAN] a short time later. -* Congratulations, you'e released a new version of Sqitch! Just a few changes +* Congratulations, you've released a new version of Sqitch! Just a few changes left to make. Web Site @@ -119,11 +120,11 @@ To update the Docker image, first preserve the previous release in a branch, then make the updates. * Create a branch for the previous release so that it can still be supported - if necessary. For v1.1.0, for example, do this: + if necessary: ``` sh - git checkout -b v1.1.0-maint - git push origin -u v1.1.0-maint + git checkout -b "v$OLD_VERSION-maint" + git push origin -u "v$OLD_VERSION-maint" ``` * Switch back to the main branch and update it for the new version: @@ -193,8 +194,8 @@ Update the Sqitch Homebrew tap with the new version. ``` * And that's all it takes. If you don't already have the tap with Sqitch - installed, you can tap and install the new version with SQLite support) with - these commands: + installed, you can tap and install the new version (with SQLite support) + with these commands: ``` sh brew tap sqitchers/sqitch From b0fa313382b64649611294432f34a1564e05ed40 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Wed, 16 Aug 2023 18:44:18 -0400 Subject: [PATCH 02/13] Remove identifier quoting from snowflake Added 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. Resolves #685 (again/for real). Also add a brief discussion on URL encoding to `sqitch-target.pod`, the main reference for database URLs in the Sqitch documentation. --- Changes | 10 ++++++++++ lib/App/Sqitch/Engine/snowflake.pm | 17 +++++------------ lib/sqitch-target.pod | 20 +++++++++++++++++++- lib/sqitchtutorial-snowflake.pod | 28 ++++++++++++++++++++++++++-- t/snowflake.t | 16 ---------------- 5 files changed, 60 insertions(+), 31 deletions(-) diff --git a/Changes b/Changes index 6033fa3a..56bbdf67 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,16 @@ Revision history for Perl extension App::Sqitch 1.4.1 + - 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. 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/lib/App/Sqitch/Engine/snowflake.pm b/lib/App/Sqitch/Engine/snowflake.pm index b8f45c07..d195142c 100644 --- a/lib/App/Sqitch/Engine/snowflake.pm +++ b/lib/App/Sqitch/Engine/snowflake.pm @@ -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'; 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 for details. +Note that, as with any URI or URL, special characters must be +L. For example, when +a username contains a reserved character, such as the C<|> in C, +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 +with special characters, such as a warehouse name with a C<.>, such as +C, 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 for details. +and the L for in-depth +information on database URIs in general. =item C diff --git a/lib/sqitchtutorial-snowflake.pod b/lib/sqitchtutorial-snowflake.pod index 4347c4b9..f6694685 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 parameter in order to record its work +A few notes on the URL format: + +=over + +=item * + +Sqitch requires a C parameter in order to record its work in the registry. The default warehouse is named C, 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 section of the L file|https://docs.snowflake.com/en/user-guide/snowsql-start.html#configuring-default-connection-settings>. See L 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. For example, when +a warehouse name or role requires +L, +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 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 diff --git a/t/snowflake.t b/t/snowflake.t index e0001ad8..0f957e04 100644 --- a/t/snowflake.t +++ b/t/snowflake.t @@ -515,22 +515,6 @@ ok my $now = App::Sqitch::DateTime->now, 'Construct a datetime object'; 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; From 7d56f1062970102eb028a61baa8dfd3e832c89ff Mon Sep 17 00:00:00 2001 From: Erik Wienhold Date: Fri, 1 Sep 2023 02:24:44 +0200 Subject: [PATCH 03/13] Fix output verbosity for changes to be reverted Commit 06daffc4 changed the output of deploy and revert to also print the changes to be deployed or reverted. Changes to be deployed are printed for verbosity > 1. But changes to be reverted are printed for verbosity > 0. Fix that and require verbosity > 1 in both cases. --- Changes | 3 +++ lib/App/Sqitch/Engine.pm | 16 ++++++++-------- t/engine.t | 39 +++++++++++++++++++++++++-------------- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/Changes b/Changes index 56bbdf67..e636b59f 100644 --- a/Changes +++ b/Changes @@ -11,6 +11,9 @@ Revision history for Perl extension App::Sqitch 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)! 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/lib/App/Sqitch/Engine.pm b/lib/App/Sqitch/Engine.pm index 89dfab35..af6c901a 100644 --- a/lib/App/Sqitch/Engine.pm +++ b/lib/App/Sqitch/Engine.pm @@ -370,11 +370,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 +400,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', diff --git a/t/engine.t b/t/engine.t index ee971371..95ebfc82 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 => 780; # use Test::More 'no_plan'; use App::Sqitch; use App::Sqitch::Plan; @@ -2050,6 +2050,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 +2078,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 +2117,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 +2147,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 +2185,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 +2227,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 +2258,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 +2291,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(). From 257c8eb75bd7f809f76541b90a9a185cb3668332 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Sat, 2 Sep 2023 19:04:27 -0400 Subject: [PATCH 04/13] Indentation --- Changes | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Changes b/Changes index e636b59f..fbc954bc 100644 --- a/Changes +++ b/Changes @@ -1,19 +1,19 @@ Revision history for Perl extension App::Sqitch 1.4.1 - - 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 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)! 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers From 5724e0a5f35d5d9b7a545fdd4c12ec9f1c6a31fc Mon Sep 17 00:00:00 2001 From: Erik Wienhold Date: Tue, 5 Sep 2023 19:45:54 +0200 Subject: [PATCH 05/13] Fix range of changes printed in deploy debug output The debug output of deploy (added with commit 06daffc4) starts with the currently deployed change or the last planned change if nothing is deployed yet. Fix this by starting with the first change after the current plan position. --- Changes | 3 +++ lib/App/Sqitch/Engine.pm | 2 +- t/engine.t | 12 +++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Changes b/Changes index fbc954bc..bfc80831 100644 --- a/Changes +++ b/Changes @@ -14,6 +14,9 @@ Revision history for Perl extension App::Sqitch - 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)! 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/lib/App/Sqitch/Engine.pm b/lib/App/Sqitch/Engine.pm index af6c901a..0c04a316 100644 --- a/lib/App/Sqitch/Engine.pm +++ b/lib/App/Sqitch/Engine.pm @@ -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); } diff --git a/t/engine.t b/t/engine.t index 95ebfc82..a495dc9b 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 => 780; +use Test::More tests => 781; # use Test::More 'no_plan'; use App::Sqitch; use App::Sqitch::Plan; @@ -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'; From 0702d9acfbbf503bb510769c2244295f964eaf21 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Sat, 21 Oct 2023 16:47:57 -0400 Subject: [PATCH 06/13] Fix multi-engine template resolution When adding a change to multiple engines, Sqitch would randomly pick one engine's templates or the others and create them all for the same engine. In other words, adding a change to both "sqlite" and "pg" targets would result in all change files generated from templates from only one of those engines -- whichever it happened to find first. Due to the use of a hash reference for templates in add.pm. Fix it by making a copy of the hash instead. This leads to duplication of effort when multiple targets use the same engine, but the cost is generally low relative to how often `add` is called -- and likely is measured in milliseconds. Resolves #795. --- .github/workflows/os.yml | 1 + Changes | 3 +++ lib/App/Sqitch/Command/add.pm | 2 +- t/add.t | 11 +++++++++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/os.yml b/.github/workflows/os.yml index ead19a06..6293bb68 100644 --- a/.github/workflows/os.yml +++ b/.github/workflows/os.yml @@ -29,6 +29,7 @@ jobs: with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} + - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends ExtUtils::MakeMaker List::MoreUtils::XS # Remove Locale::TextDomain if https://github.com/gflohr/libintl-perl/issues/7 fixed and released. - if: ${{ matrix.os == 'windows' }} run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Encode Win32::Console::ANSI Win32API::Net Win32::Locale Win32::ShellQuote DateTime::TimeZone::Local::Win32 Locale::TextDomain@1.31 diff --git a/Changes b/Changes index bfc80831..6bd4cc5d 100644 --- a/Changes +++ b/Changes @@ -17,6 +17,9 @@ Revision history for Perl extension App::Sqitch - 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 to multiple + engines at once. Thanks to Christian Riedel for the detailed bug report + (#795)! 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/lib/App/Sqitch/Command/add.pm b/lib/App/Sqitch/Command/add.pm index ccba27dc..2110b94c 100644 --- a/lib/App/Sqitch/Command/add.pm +++ b/lib/App/Sqitch/Command/add.pm @@ -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 ( 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'; From 664813e5140a698bd7619f89e9481156b9e77da0 Mon Sep 17 00:00:00 2001 From: Chris Hatch Date: Sun, 19 Nov 2023 21:37:58 +0700 Subject: [PATCH 07/13] Update sqitch-configuration.pod - fix upgrade link label (#803) --- lib/sqitch-configuration.pod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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|sqitch-verify> -=item * L|sqitch-upgrade> +=item * L|sqitch-upgrade> =back From 7edc5366f1c801ac9f97f9ec0157e5fbdce39aac Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Mon, 18 Dec 2023 09:02:34 -0500 Subject: [PATCH 08/13] Fix test failures due to incorrect use of `chmod` Resolves #807. --- Changes | 2 ++ t/firebird.t | 2 +- t/oracle.t | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index 6bd4cc5d..a3fa86e3 100644 --- a/Changes +++ b/Changes @@ -20,6 +20,8 @@ Revision history for Perl extension App::Sqitch - Fixed invalid template resolution when adding a singe 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)! 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers 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/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; From 4ba34ec65e4a5fe2c55ed5f5c8e37c386fc69074 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Fri, 19 Jan 2024 09:48:40 -0500 Subject: [PATCH 09/13] Require Test::Warn 0.31 Otherwise it chokes on a newline in the message. Also document that we're only testing the first line of a multi-line warning, due to a long-standing bug in Test::Warn. --- Changes | 3 +++ t/engine.t | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index a3fa86e3..e2f29ade 100644 --- a/Changes +++ b/Changes @@ -22,6 +22,9 @@ Revision history for Perl extension App::Sqitch (#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 identifying the issue. 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/t/engine.t b/t/engine.t index a495dc9b..f7bfa8e8 100755 --- a/t/engine.t +++ b/t/engine.t @@ -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); @@ -1938,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'; From 86a33b175cd9071441d3ef0eab51868a1542ac0e Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Fri, 29 Dec 2023 19:00:22 -0500 Subject: [PATCH 10/13] Use locale pragma instead of POSIX::setlocale() The Pragma is more likely to do the right thing, as confirmed by new tests, which fail when using `setlocale` and now succeed with `use locale`. The tests, in `xt/locale`, include compiled locale dictionaries (`*.mo` files) with a single message for the tested languages. This is in contrast to the released locale dictionaries, which are generated at release time but not stored in the repository. Update the `Language-Team` header in the project localization packages in `po` directory to `Sqitch Hackers `. Update the `os.yml` and `perl.yml` workflows, which run all tests including the new locale tests, to install the required locales on Linux and to set the full `runs-on:` image name in the matrix (in response to shogo82148/actions-setup-perl#1699). Also remove the installation of an older version of Locale::TextDomain from those workflows, since gflohr/libintl-perl#7 has been fixed and released. While at it, upgrade to `actions/checkout@v4` in all workflows and use `runner.os` instead of `matrix.os` in conditionals. --- .github/workflows/cockroach.yml | 2 +- .github/workflows/coverage.yml | 2 +- .github/workflows/exasol.yml | 2 +- .github/workflows/firebird.yml | 2 +- .github/workflows/mysql.yml | 2 +- .github/workflows/oracle.yml | 2 +- .github/workflows/os.yml | 18 +++--- .github/workflows/perl.yml | 10 +-- .github/workflows/pg.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/snowflake.yml | 2 +- .github/workflows/sqlite.yml | 2 +- .github/workflows/vertica.yml | 2 +- .github/workflows/yugabyte.yml | 2 +- .gitignore | 3 +- Changes | 4 ++ bin/sqitch | 11 +--- dist.ini | 2 +- dist/cpanfile | 3 +- lib/App/Sqitch/Engine.pm | 9 ++- po/de_DE.po | 2 +- po/fr_FR.po | 2 +- po/it_IT.po | 2 +- t/sqitch | 10 +-- .../de_DE/LC_MESSAGES/App-Sqitch.mo | Bin 0 -> 462 bytes .../fr_FR/LC_MESSAGES/App-Sqitch.mo | Bin 0 -> 465 bytes .../it_IT/LC_MESSAGES/App-Sqitch.mo | Bin 0 -> 460 bytes xt/locale/README.md | 43 +++++++++++++ xt/locale/po/de_DE.po | 12 ++++ xt/locale/po/fr_FR.po | 12 ++++ xt/locale/po/it_IT.po | 12 ++++ xt/locale/test-cli.t | 57 ++++++++++++++++++ 32 files changed, 182 insertions(+), 54 deletions(-) create mode 100644 xt/locale/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo create mode 100644 xt/locale/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo create mode 100644 xt/locale/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo create mode 100644 xt/locale/README.md create mode 100644 xt/locale/po/de_DE.po create mode 100644 xt/locale/po/fr_FR.po create mode 100644 xt/locale/po/it_IT.po create mode 100644 xt/locale/test-cli.t diff --git a/.github/workflows/cockroach.yml b/.github/workflows/cockroach.yml index a6087cac..6466785b 100644 --- a/.github/workflows/cockroach.yml +++ b/.github/workflows/cockroach.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Start CockroachDB run: docker run -d -p 26257:26257 cockroachdb/cockroach:latest-v${{ matrix.version }} start-single-node --insecure - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b433912a..500bc8eb 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -49,7 +49,7 @@ jobs: run: rm -rf /opt/hostedtoolcache - name: Start CockroachDB run: docker run -d -p 26257:26257 cockroachdb/cockroach:latest start-single-node --insecure - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.github/workflows/exasol.yml b/.github/workflows/exasol.yml index d10db9d2..1f33fd39 100644 --- a/.github/workflows/exasol.yml +++ b/.github/workflows/exasol.yml @@ -20,7 +20,7 @@ jobs: ports: [ 8563 ] options: --privileged steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/exasol.sh - name: Setup Perl diff --git a/.github/workflows/firebird.yml b/.github/workflows/firebird.yml index 36a5541a..de7c120e 100644 --- a/.github/workflows/firebird.yml +++ b/.github/workflows/firebird.yml @@ -29,7 +29,7 @@ jobs: ISC_PASSWORD: nix FIREBIRD_DATABASE: sqitchtest.db steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/firebird.sh - name: Setup Perl diff --git a/.github/workflows/mysql.yml b/.github/workflows/mysql.yml index 14cb78ac..03a7beec 100644 --- a/.github/workflows/mysql.yml +++ b/.github/workflows/mysql.yml @@ -39,7 +39,7 @@ jobs: ports: [ 3306 ] options: --health-cmd="healthcheck.sh --innodb_initialized || mysqladmin ping --protocol=tcp" --health-interval=5s --health-timeout=2s --health-retries=3 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/mysql.sh - name: Setup Perl diff --git a/.github/workflows/oracle.yml b/.github/workflows/oracle.yml index 186501eb..ea8487ac 100644 --- a/.github/workflows/oracle.yml +++ b/.github/workflows/oracle.yml @@ -40,7 +40,7 @@ jobs: --health-timeout 10s --health-retries 10 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/oracle.sh - name: Setup Perl diff --git a/.github/workflows/os.yml b/.github/workflows/os.yml index 6293bb68..59bea613 100644 --- a/.github/workflows/os.yml +++ b/.github/workflows/os.yml @@ -12,27 +12,29 @@ jobs: strategy: matrix: include: - - { icon: 🐧, os: ubuntu, name: Linux } - - { icon: 🍎, os: macos, name: macOS } - - { icon: 🪟, os: windows, name: Windows } + - { icon: 🐧, on: ubuntu, name: Linux } + - { icon: 🍎, on: macos, name: macOS } + - { icon: 🪟, on: windows, name: Windows } name: ${{ matrix.icon }} ${{ matrix.name }} - runs-on: ${{ matrix.os }}-latest + runs-on: ${{ matrix.on }}-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - run: perl -V + - if: runner.os == 'Linux' + name: Install Apt Packages + run: sudo apt-get install -qq aspell-en language-pack-fr language-pack-en language-pack-de language-pack-it - name: Cache CPAN Modules uses: actions/cache@v3 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends ExtUtils::MakeMaker List::MoreUtils::XS - # Remove Locale::TextDomain if https://github.com/gflohr/libintl-perl/issues/7 fixed and released. - - if: ${{ matrix.os == 'windows' }} - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Encode Win32::Console::ANSI Win32API::Net Win32::Locale Win32::ShellQuote DateTime::TimeZone::Local::Win32 Locale::TextDomain@1.31 + - if: runner.os == 'Windows' + run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Encode Win32::Console::ANSI Win32API::Net Win32::Locale Win32::ShellQuote DateTime::TimeZone::Local::Win32 - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends --cpanfile dist/cpanfile - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Test::Spelling Test::Pod Test::Pod::Coverage - name: prove diff --git a/.github/workflows/perl.yml b/.github/workflows/perl.yml index 22ddac38..56319729 100644 --- a/.github/workflows/perl.yml +++ b/.github/workflows/perl.yml @@ -19,20 +19,22 @@ jobs: name: 🧅 Perl ${{ matrix.perl }} on ${{ matrix.os[0] }} ${{ matrix.os[1] }} runs-on: ${{ matrix.os[1] }}-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 with: { perl-version: "${{ matrix.perl }}" } - run: perl -V + - if: runner.os == 'Linux' + name: Install Apt Packages + run: sudo apt-get install -qq language-pack-fr language-pack-en language-pack-de language-pack-it - name: Cache CPAN Modules uses: actions/cache@v3 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} - # Remove Locale::TextDomain if https://github.com/gflohr/libintl-perl/issues/7 fixed and released. - - if: ${{ matrix.os[1] == 'windows' }} - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Encode Win32::Console::ANSI Win32API::Net Win32::Locale Win32::ShellQuote DateTime::TimeZone::Local::Win32 Locale::TextDomain@1.31 + - if: runner.os == 'Windows' + run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Encode Win32::Console::ANSI Win32API::Net Win32::Locale Win32::ShellQuote DateTime::TimeZone::Local::Win32 - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends --cpanfile dist/cpanfile - run: cpm install --verbose --show-build-log-on-failure --no-test --with-recommends Test::Spelling Test::Pod Test::Pod::Coverage - name: prove diff --git a/.github/workflows/pg.yml b/.github/workflows/pg.yml index c97c11ba..39a81739 100644 --- a/.github/workflows/pg.yml +++ b/.github/workflows/pg.yml @@ -15,7 +15,7 @@ jobs: name: 🐘 Postgres ${{ matrix.pg }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f5a1c1a..f27f3336 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.github/workflows/snowflake.yml b/.github/workflows/snowflake.yml index 7dc089c5..45ddd26c 100644 --- a/.github/workflows/snowflake.yml +++ b/.github/workflows/snowflake.yml @@ -11,7 +11,7 @@ jobs: name: ❄️ Snowflake runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/snowflake.sh - name: Setup Perl diff --git a/.github/workflows/sqlite.yml b/.github/workflows/sqlite.yml index 4c0b758d..12e1f4c1 100644 --- a/.github/workflows/sqlite.yml +++ b/.github/workflows/sqlite.yml @@ -16,7 +16,7 @@ jobs: name: 💡 SQLite ${{ matrix.sqlite }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.github/workflows/vertica.yml b/.github/workflows/vertica.yml index b524bbd3..5b734dfb 100644 --- a/.github/workflows/vertica.yml +++ b/.github/workflows/vertica.yml @@ -27,7 +27,7 @@ jobs: image: ${{ matrix.image }}:${{ matrix.version }} ports: [ 5433 ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Clients run: .github/ubuntu/vertica.sh - name: Setup Perl diff --git a/.github/workflows/yugabyte.yml b/.github/workflows/yugabyte.yml index 9524be9c..34c886e3 100644 --- a/.github/workflows/yugabyte.yml +++ b/.github/workflows/yugabyte.yml @@ -34,7 +34,7 @@ jobs: uses: jameshartig/yugabyte-db-action@master with: yb_image_tag: "${{ matrix.tag }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Perl id: perl uses: shogo82148/actions-setup-perl@v1 diff --git a/.gitignore b/.gitignore index 8033e00e..a3efe757 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,8 @@ /_rpmbuild /target .build/ -*.mo .al /latest_changes.md /local/ +/LocaleData/ +/lib/LocaleData/ diff --git a/Changes b/Changes index e2f29ade..f45ae341 100644 --- a/Changes +++ b/Changes @@ -25,6 +25,10 @@ Revision history for Perl extension App::Sqitch - 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 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). 1.4.0 2023-08-01T23:37:30Z - Fixed Snowflake warehouse and role setup to properly quote identifiers diff --git a/bin/sqitch b/bin/sqitch index e14a0111..89c77f22 100755 --- a/bin/sqitch +++ b/bin/sqitch @@ -1,15 +1,6 @@ #!perl -w -CAS # 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, ''; - } -} +use locale; use App::Sqitch; - exit App::Sqitch->go; diff --git a/dist.ini b/dist.ini index 262efdd6..890ef97c 100644 --- a/dist.ini +++ b/dist.ini @@ -2,7 +2,7 @@ name = App-Sqitch license = MIT copyright_holder = "iovation Inc., David E. Wheeler" copyright_year = 2012-2023 -version = v1.4.1-dev +version = v1.4.1 [GatherDir] exclude_filename = dist/cpanfile diff --git a/dist/cpanfile b/dist/cpanfile index 4e19f017..4558297b 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"; diff --git a/lib/App/Sqitch/Engine.pm b/lib/App/Sqitch/Engine.pm index 0c04a316..ea408dbf 100644 --- a/lib/App/Sqitch/Engine.pm +++ b/lib/App/Sqitch/Engine.pm @@ -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; diff --git a/po/de_DE.po b/po/de_DE.po index 6eceb8bc..b561564c 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2023-07-30 20:02-0400\n" "PO-Revision-Date: 2012-08-31 17:15-0700\n" "Last-Translator: Thomas Iguchi \n" -"Language-Team: German \n" +"Language-Team: Sqitch Hackers \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/po/fr_FR.po b/po/fr_FR.po index dc2502ea..283ceb1b 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2023-07-30 20:02-0400\n" "PO-Revision-Date: 2012-10-12 11:28-0700\n" "Last-Translator: Arnaud Assad \n" -"Language-Team: French \n" +"Language-Team: Sqitch Hackers \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/po/it_IT.po b/po/it_IT.po index 6b716b1c..14a586a3 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2023-07-30 20:02-0400\n" "PO-Revision-Date: 2017-10-12 10:30+0200\n" "Last-Translator: Luca Ferrari \n" -"Language-Team: Italian \n" +"Language-Team: Sqitch Hackers \n" "Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" 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; diff --git a/xt/locale/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo b/xt/locale/LocaleData/de_DE/LC_MESSAGES/App-Sqitch.mo new file mode 100644 index 0000000000000000000000000000000000000000..3c1b7c0eb2c74ccde6f18676d270304ac5eb2d2f GIT binary patch literal 462 zcmbV|u};G<5QYPSB_lJ#sRI)ZNmNx;Cgr7msmqtyc!VF3bhtA$%L84cRYjj>)lfmVKrlNu*YDP&o zJQEi<)ANZqmc*(wjnk%x6A`!aG|7@Ui(5BgUwRU`lg8JQtowC2mBl?9L&tx+ifVB_ zP}Zs%m9x`{k2u;sJ1laE9Od{Q`ay5dT|Od-;_%2CLc_71CY+n_k#;7v)MgioN;;3U uca@)r_VV65{s^7un!=Xas0`Y-n!@1kuM(g(Fg5Dqy(X>D!6A;Ys)H|tKZk?> literal 0 HcmV?d00001 diff --git a/xt/locale/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo b/xt/locale/LocaleData/fr_FR/LC_MESSAGES/App-Sqitch.mo new file mode 100644 index 0000000000000000000000000000000000000000..5ff3b87c6a093affb019d1b881f29cd0293fda92 GIT binary patch literal 465 zcmbV|!AiqG5Qd}ZB}dO5mRv+|V-iX!v5KG-3oTZS9=wgoG+9k|zLn47 zv{mcbVLxVlhzRfz9`HvnBup~O^-tv|Bn0dtc5Lf)cv%IH*FKPk#95r?fX_D2`; z3TJ9wk*7dBl_XKpl2I(9c9z6x9HmkF&L4mynOV@T1~T?nv9IZCuFKj#y#oOJ)d@f6Nd2!`|u>aTxh0MiXkb_0q6!!e`oVYEb$>vE$bR-&ZVyf|Hskq!RdS4;Ghq?d& literal 0 HcmV?d00001 diff --git a/xt/locale/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo b/xt/locale/LocaleData/it_IT/LC_MESSAGES/App-Sqitch.mo new file mode 100644 index 0000000000000000000000000000000000000000..bbb9aa0994ba0b9c77304efa120c87be950c44b8 GIT binary patch literal 460 zcmbV|K~BRk5JdxmO_r=#SQSeglBlYxP!JLnwNfhz1QzUu#3Y7vrr2%;LL7rLz&*GJ zXJOJH%9@d%#+E%_-~VfCwQwVdO&s@6+J z(`BfP}_Q1lTXP2t7Y|cjo zQBkSF(0pbCwsy!0jW3xhnEqpaJRJ8|pNN9cKPGev+1B%neLMB!_GT4m+!t91#wvGk qm7dD(>RoOBP8r$9jB<@dBD%L6lJ_@NBov\n" +"Language-Team: Sqitch Hackers \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +msgid "\"{command}\" is not a valid command" +msgstr "\"{command}\" ist ein ungültiger Befehl" diff --git a/xt/locale/po/fr_FR.po b/xt/locale/po/fr_FR.po new file mode 100644 index 00000000..17df5618 --- /dev/null +++ b/xt/locale/po/fr_FR.po @@ -0,0 +1,12 @@ +msgid "" +msgstr "" +"Language: fr\n" +"Project-Id-Version: Sqitch 1.4.1\n" +"PO-Revision-Date: 22024-01-06T21:10:06Z\n" +"Last-Translator: Sqitch Hackers \n" +"Language-Team: Sqitch Hackers \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +msgid "\"{command}\" is not a valid command" +msgstr "\"{command}\" n'est pas une commande valide" diff --git a/xt/locale/po/it_IT.po b/xt/locale/po/it_IT.po new file mode 100644 index 00000000..0edd5753 --- /dev/null +++ b/xt/locale/po/it_IT.po @@ -0,0 +1,12 @@ +msgid "" +msgstr "" +"Language: it\n" +"Project-Id-Version: Sqitch 1.4.1\n" +"PO-Revision-Date: 22024-01-06T21:10:06Z\n" +"Last-Translator: Sqitch Hackers \n" +"Language-Team: Sqitch Hackers \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +msgid "\"{command}\" is not a valid command" +msgstr "\"{command}\" non è un comando valido" diff --git a/xt/locale/test-cli.t b/xt/locale/test-cli.t new file mode 100644 index 00000000..ec666b2f --- /dev/null +++ b/xt/locale/test-cli.t @@ -0,0 +1,57 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use Test::More tests => 4; +use File::Spec; +use Capture::Tiny qw(:all); + +# Requires xt/locale/LocaleData; see xt/locale/README.md for details. +my @cli = (qw(-Ilib -CAS -Ixt/locale), File::Spec->catfile(qw(bin sqitch))); + +# Windows has its own locale names for some reason. +# https://stackoverflow.com/q/77771097/79202 +my %lang_for = ( + "en_US" => 'English_United States.1252', + "fr_FR" => 'French_France.1252', + "de_DE" => 'German_Germany.1252', + "it_IT" => 'Italian_Italy.1252', +); + +# Other supported OSes just use the code name. +if ($^O ne 'MSWin32') { + $lang_for{$_} = "$_.UTF-8" for keys %lang_for; +} + +# Each locale must be installed on the local system. Adding a new lang? Also add +# the relevant language-pack-XX package to os.yml and perl.yml. +for my $tc ( + { lang => 'en_US', err => q{"nonesuch" is not a valid command} }, + { lang => 'fr_FR', err => q{"nonesuch" n'est pas une commande valide} }, + { lang => 'de_DE', err => q{"nonesuch" ist ein ungültiger Befehl} }, + { lang => 'it_IT', err => q{"nonesuch" non è un comando valido} }, +) { + subtest $tc->{lang} || 'default' => sub { + local $ENV{LC_ALL} = $lang_for{$tc->{lang}}; + + # Test successful run. + my ($stdout, $stderr, $exit) = capture { system $^X, @cli, 'help' }; + is $exit >> 8, 0, 'Should have exited normally'; + like $stdout, qr/\AUsage\b/, 'Should have usage statement in STDOUT'; + is $stderr, '', 'Should have no STDERR'; + + # Test localized error. + ($stdout, $stderr, $exit) = capture { system $^X, @cli, 'nonesuch' }; + is $exit >> 8, 2, 'Should have exit val 2'; + is $stdout, '', 'Should have no STDOUT'; + TODO: { + # The Windows locales don't translate into the language codes + # recognized by Locale::TextDomain/gettext. Not at all sure how to + # fix this. Some relevant notes in the FAQ: + # https://metacpan.org/dist/libintl-perl/view/lib/Locale/libintlFAQ.pod#How-do-I-switch-languages-or-force-a-certain-language-independently-from-user-settings-read-from-the-environment? + local $TODO = $^O eq 'MSWin32' ? 'localization fails on Windows' : ''; + like $stderr, qr/\A\Q$tc->{err}/, + 'Should have localized error message in STDERR'; + } + }; +} From 2c2da9bf984e429a69ec25e7cc1fd9f0bf237c7a Mon Sep 17 00:00:00 2001 From: Carlos Ramos Date: Mon, 2 Oct 2023 15:04:30 -0600 Subject: [PATCH 11/13] Handle macOS mariadb client --- lib/App/Sqitch/Engine/mysql.pm | 2 +- t/mysql.t | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/App/Sqitch/Engine/mysql.pm b/lib/App/Sqitch/Engine/mysql.pm index 27adb6e9..6025392d 100644 --- a/lib/App/Sqitch/Engine/mysql.pm +++ b/lib/App/Sqitch/Engine/mysql.pm @@ -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); 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); From 47a3d75d7402db1621a1adf3db908c859926d3da Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Sat, 3 Feb 2024 19:39:11 -0500 Subject: [PATCH 12/13] Note mariadb fix Also upgrade actions/cache to v4 to eliminate depreccation warnings from the workflows. --- .github/workflows/cockroach.yml | 2 +- .github/workflows/coverage.yml | 2 +- .github/workflows/exasol.yml | 2 +- .github/workflows/firebird.yml | 2 +- .github/workflows/mysql.yml | 2 +- .github/workflows/oracle.yml | 2 +- .github/workflows/os.yml | 2 +- .github/workflows/perl.yml | 2 +- .github/workflows/pg.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/snowflake.yml | 2 +- .github/workflows/sqlite.yml | 2 +- .github/workflows/vertica.yml | 2 +- .github/workflows/yugabyte.yml | 2 +- Changes | 3 +++ 15 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/workflows/cockroach.yml b/.github/workflows/cockroach.yml index 6466785b..9642410b 100644 --- a/.github/workflows/cockroach.yml +++ b/.github/workflows/cockroach.yml @@ -24,7 +24,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 500bc8eb..042cc800 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -55,7 +55,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/exasol.yml b/.github/workflows/exasol.yml index 1f33fd39..b372107b 100644 --- a/.github/workflows/exasol.yml +++ b/.github/workflows/exasol.yml @@ -28,7 +28,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/firebird.yml b/.github/workflows/firebird.yml index de7c120e..2ba7dd92 100644 --- a/.github/workflows/firebird.yml +++ b/.github/workflows/firebird.yml @@ -37,7 +37,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/mysql.yml b/.github/workflows/mysql.yml index 03a7beec..4510babf 100644 --- a/.github/workflows/mysql.yml +++ b/.github/workflows/mysql.yml @@ -47,7 +47,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/oracle.yml b/.github/workflows/oracle.yml index ea8487ac..9fbff57e 100644 --- a/.github/workflows/oracle.yml +++ b/.github/workflows/oracle.yml @@ -48,7 +48,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/os.yml b/.github/workflows/os.yml index 59bea613..bcfbd40a 100644 --- a/.github/workflows/os.yml +++ b/.github/workflows/os.yml @@ -28,7 +28,7 @@ jobs: name: Install Apt Packages run: sudo apt-get install -qq aspell-en language-pack-fr language-pack-en language-pack-de language-pack-it - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/perl.yml b/.github/workflows/perl.yml index 56319729..ee95e0c5 100644 --- a/.github/workflows/perl.yml +++ b/.github/workflows/perl.yml @@ -29,7 +29,7 @@ jobs: name: Install Apt Packages run: sudo apt-get install -qq language-pack-fr language-pack-en language-pack-de language-pack-it - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/pg.yml b/.github/workflows/pg.yml index 39a81739..b727a78b 100644 --- a/.github/workflows/pg.yml +++ b/.github/workflows/pg.yml @@ -21,7 +21,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f27f3336..1a2548bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/snowflake.yml b/.github/workflows/snowflake.yml index 45ddd26c..cdc0ed9a 100644 --- a/.github/workflows/snowflake.yml +++ b/.github/workflows/snowflake.yml @@ -19,7 +19,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/sqlite.yml b/.github/workflows/sqlite.yml index 12e1f4c1..161a660a 100644 --- a/.github/workflows/sqlite.yml +++ b/.github/workflows/sqlite.yml @@ -22,7 +22,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/vertica.yml b/.github/workflows/vertica.yml index 5b734dfb..1eab0d85 100644 --- a/.github/workflows/vertica.yml +++ b/.github/workflows/vertica.yml @@ -35,7 +35,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/.github/workflows/yugabyte.yml b/.github/workflows/yugabyte.yml index 34c886e3..203a56db 100644 --- a/.github/workflows/yugabyte.yml +++ b/.github/workflows/yugabyte.yml @@ -40,7 +40,7 @@ jobs: uses: shogo82148/actions-setup-perl@v1 with: { perl-version: latest } - name: Cache CPAN Modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: local key: perl-${{ steps.perl.outputs.perl-hash }} diff --git a/Changes b/Changes index f45ae341..1897871b 100644 --- a/Changes +++ b/Changes @@ -29,6 +29,9 @@ Revision history for Perl extension App::Sqitch 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 From 34c8a3b7472ecc1610a7ada37346bf7d267ed834 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Sun, 4 Feb 2024 10:36:33 -0500 Subject: [PATCH 13/13] Prep for and timestamp v1.4.1 release --- Changes | 10 +- LICENSE.md | 2 +- README.md | 4 +- dist.ini | 2 +- dist/cpanfile | 2 +- dist/sqitch.spec | 8 +- inc/Menlo/Sqitch.pm | 7 +- lib/App/Sqitch.pm | 2 +- lib/App/Sqitch/Command.pm | 2 +- lib/App/Sqitch/Command/add.pm | 2 +- lib/App/Sqitch/Command/bundle.pm | 2 +- lib/App/Sqitch/Command/check.pm | 2 +- lib/App/Sqitch/Command/checkout.pm | 2 +- lib/App/Sqitch/Command/config.pm | 2 +- lib/App/Sqitch/Command/deploy.pm | 2 +- lib/App/Sqitch/Command/engine.pm | 2 +- lib/App/Sqitch/Command/help.pm | 2 +- lib/App/Sqitch/Command/init.pm | 2 +- lib/App/Sqitch/Command/log.pm | 2 +- lib/App/Sqitch/Command/plan.pm | 2 +- lib/App/Sqitch/Command/rebase.pm | 2 +- lib/App/Sqitch/Command/revert.pm | 2 +- lib/App/Sqitch/Command/rework.pm | 2 +- lib/App/Sqitch/Command/show.pm | 2 +- lib/App/Sqitch/Command/status.pm | 2 +- lib/App/Sqitch/Command/tag.pm | 2 +- lib/App/Sqitch/Command/target.pm | 2 +- lib/App/Sqitch/Command/upgrade.pm | 2 +- lib/App/Sqitch/Command/verify.pm | 2 +- lib/App/Sqitch/Config.pm | 2 +- lib/App/Sqitch/DateTime.pm | 2 +- lib/App/Sqitch/Engine.pm | 2 +- lib/App/Sqitch/Engine/cockroach.pm | 2 +- lib/App/Sqitch/Engine/exasol.pm | 2 +- lib/App/Sqitch/Engine/firebird.pm | 2 +- lib/App/Sqitch/Engine/mysql.pm | 2 +- lib/App/Sqitch/Engine/oracle.pm | 2 +- lib/App/Sqitch/Engine/pg.pm | 2 +- lib/App/Sqitch/Engine/snowflake.pm | 2 +- lib/App/Sqitch/Engine/sqlite.pm | 2 +- lib/App/Sqitch/Engine/vertica.pm | 2 +- lib/App/Sqitch/ItemFormatter.pm | 2 +- lib/App/Sqitch/Plan.pm | 2 +- lib/App/Sqitch/Plan/Blank.pm | 2 +- lib/App/Sqitch/Plan/Change.pm | 2 +- lib/App/Sqitch/Plan/ChangeList.pm | 2 +- lib/App/Sqitch/Plan/Depend.pm | 2 +- lib/App/Sqitch/Plan/Line.pm | 2 +- lib/App/Sqitch/Plan/LineList.pm | 2 +- lib/App/Sqitch/Plan/Pragma.pm | 2 +- lib/App/Sqitch/Plan/Tag.pm | 2 +- lib/App/Sqitch/Role/ConnectingCommand.pm | 2 +- lib/App/Sqitch/Role/ContextCommand.pm | 2 +- lib/App/Sqitch/Role/DBIEngine.pm | 2 +- lib/App/Sqitch/Role/RevertDeployCommand.pm | 2 +- lib/App/Sqitch/Role/TargetConfigCommand.pm | 2 +- lib/App/Sqitch/Target.pm | 2 +- lib/App/Sqitch/Types.pm | 2 +- lib/App/Sqitch/X.pm | 2 +- lib/sqitch.pod | 2 +- lib/sqitchtutorial-exasol.pod | 2 +- lib/sqitchtutorial-firebird.pod | 2 +- lib/sqitchtutorial-mysql.pod | 2 +- lib/sqitchtutorial-oracle.pod | 2 +- lib/sqitchtutorial-snowflake.pod | 2 +- lib/sqitchtutorial-sqlite.pod | 2 +- lib/sqitchtutorial-vertica.pod | 2 +- lib/sqitchtutorial.pod | 2 +- po/App-Sqitch.pot | 131 ++++++++++----------- po/de_DE.po | 129 ++++++++++---------- po/fr_FR.po | 129 ++++++++++---------- po/it_IT.po | 129 ++++++++++---------- xt/release.md | 2 +- 73 files changed, 341 insertions(+), 336 deletions(-) diff --git a/Changes b/Changes index 1897871b..140e54c8 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,6 @@ Revision history for Perl extension App::Sqitch -1.4.1 +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 @@ -17,14 +17,14 @@ Revision history for Perl extension App::Sqitch - 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 to multiple - engines at once. Thanks to Christian Riedel for the detailed bug report - (#795)! + - 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 identifying the issue. + 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 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/README.md b/README.md index 4bf81e1c..612c76b5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -App/Sqitch version v1.4.1-dev +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/dist.ini b/dist.ini index 890ef97c..e1aca19f 100644 --- a/dist.ini +++ b/dist.ini @@ -1,7 +1,7 @@ name = App-Sqitch license = MIT copyright_holder = "iovation Inc., David E. Wheeler" -copyright_year = 2012-2023 +copyright_year = 2012-2024 version = v1.4.1 [GatherDir] diff --git a/dist/cpanfile b/dist/cpanfile index 4558297b..9dac5897 100644 --- a/dist/cpanfile +++ b/dist/cpanfile @@ -105,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 49f292ab..9be90f1e 100644 --- a/dist/sqitch.spec +++ b/dist/sqitch.spec @@ -1,5 +1,5 @@ Name: sqitch -Version: 1.4.1-dev +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 1.4.1-1 +- Upgrade to v1.4.1. +- Upgrade Test::Warn to 0.31 + * Mon Aug 1 2023 David E. Wheeler 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 74b9cb5d..6f75e74a 100644 --- a/inc/Menlo/Sqitch.pm +++ b/inc/Menlo/Sqitch.pm @@ -72,6 +72,8 @@ sub remove_build_dependencies { # dev/dependency_report. __DATA__ Build-only dependencies + Alien-Build + Alien-cmake3 Archive-Tar Archive-Zip CPAN @@ -110,6 +112,7 @@ Build-only dependencies ExtUtils-MakeMaker ExtUtils-MakeMaker-CPANfile ExtUtils-ParseXS + FFI-CheckLib File-Fetch File-Find-Rule File-Find-Rule-Perl @@ -117,6 +120,7 @@ Build-only dependencies File-Listing File-ShareDir-Install File-Slurper + File-chdir File-pushd HTML-Parser HTML-Tagset @@ -144,7 +148,6 @@ Build-only dependencies Log-Log4perl Math-Base-Convert Math-BigInt - Math-BigRat Math-Complex Menlo Menlo-Legacy @@ -163,6 +166,7 @@ Build-only dependencies Number-Compare Params-Check Parse-PMFile + Path-Tiny Perl-Tidy Pod-Coverage SQL-Statement @@ -187,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 79b50884..95c97746 100644 --- a/lib/App/Sqitch.pm +++ b/lib/App/Sqitch.pm @@ -904,7 +904,7 @@ David E. Wheeler =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 555325ee..95e62818 100644 --- a/lib/App/Sqitch/Command.pm +++ b/lib/App/Sqitch/Command.pm @@ -771,7 +771,7 @@ David E. Wheeler =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 2110b94c..a60b80b6 100644 --- a/lib/App/Sqitch/Command/add.pm +++ b/lib/App/Sqitch/Command/add.pm @@ -543,7 +543,7 @@ David E. Wheeler =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 2a90da87..c15c7eb7 100644 --- a/lib/App/Sqitch/Command/bundle.pm +++ b/lib/App/Sqitch/Command/bundle.pm @@ -359,7 +359,7 @@ David E. Wheeler =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 983eb64c..6f5b82f8 100644 --- a/lib/App/Sqitch/Command/check.pm +++ b/lib/App/Sqitch/Command/check.pm @@ -176,7 +176,7 @@ Matthieu Foucault =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 fc975bc0..26f87ac3 100644 --- a/lib/App/Sqitch/Command/checkout.pm +++ b/lib/App/Sqitch/Command/checkout.pm @@ -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 d40ef4fe..c2e483db 100644 --- a/lib/App/Sqitch/Command/config.pm +++ b/lib/App/Sqitch/Command/config.pm @@ -642,7 +642,7 @@ David E. Wheeler =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 fba561e3..434d68e4 100644 --- a/lib/App/Sqitch/Command/deploy.pm +++ b/lib/App/Sqitch/Command/deploy.pm @@ -221,7 +221,7 @@ David E. Wheeler =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 55756c6e..cc681ddb 100644 --- a/lib/App/Sqitch/Command/engine.pm +++ b/lib/App/Sqitch/Command/engine.pm @@ -315,7 +315,7 @@ David E. Wheeler =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 e6064a11..756893ed 100644 --- a/lib/App/Sqitch/Command/help.pm +++ b/lib/App/Sqitch/Command/help.pm @@ -119,7 +119,7 @@ David E. Wheeler =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 462fd95b..6cbaf5d1 100644 --- a/lib/App/Sqitch/Command/init.pm +++ b/lib/App/Sqitch/Command/init.pm @@ -268,7 +268,7 @@ David E. Wheeler =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 6a6d7a69..fa773726 100644 --- a/lib/App/Sqitch/Command/log.pm +++ b/lib/App/Sqitch/Command/log.pm @@ -350,7 +350,7 @@ David E. Wheeler =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 cfad0867..b5f787fb 100644 --- a/lib/App/Sqitch/Command/plan.pm +++ b/lib/App/Sqitch/Command/plan.pm @@ -332,7 +332,7 @@ David E. Wheeler =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 dabba7bc..8ae4a2d4 100644 --- a/lib/App/Sqitch/Command/rebase.pm +++ b/lib/App/Sqitch/Command/rebase.pm @@ -175,7 +175,7 @@ David E. Wheeler =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 22c41b47..1f82f98c 100644 --- a/lib/App/Sqitch/Command/revert.pm +++ b/lib/App/Sqitch/Command/revert.pm @@ -269,7 +269,7 @@ David E. Wheeler =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 10f6b3a8..1f980cd3 100644 --- a/lib/App/Sqitch/Command/rework.pm +++ b/lib/App/Sqitch/Command/rework.pm @@ -313,7 +313,7 @@ David E. Wheeler =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 11fe8f90..a866a2ec 100644 --- a/lib/App/Sqitch/Command/show.pm +++ b/lib/App/Sqitch/Command/show.pm @@ -181,7 +181,7 @@ David E. Wheeler =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 45a3c832..d0a9aed0 100644 --- a/lib/App/Sqitch/Command/status.pm +++ b/lib/App/Sqitch/Command/status.pm @@ -409,7 +409,7 @@ David E. Wheeler =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 887dba00..155595c4 100644 --- a/lib/App/Sqitch/Command/tag.pm +++ b/lib/App/Sqitch/Command/tag.pm @@ -183,7 +183,7 @@ David E. Wheeler =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 69b28c87..fb71b7b1 100644 --- a/lib/App/Sqitch/Command/target.pm +++ b/lib/App/Sqitch/Command/target.pm @@ -314,7 +314,7 @@ David E. Wheeler =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 df477ce7..5b42a753 100644 --- a/lib/App/Sqitch/Command/upgrade.pm +++ b/lib/App/Sqitch/Command/upgrade.pm @@ -124,7 +124,7 @@ David E. Wheeler =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 5324987d..3ecfa3c6 100644 --- a/lib/App/Sqitch/Command/verify.pm +++ b/lib/App/Sqitch/Command/verify.pm @@ -182,7 +182,7 @@ David E. Wheeler =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 b039a26f..1c89d746 100644 --- a/lib/App/Sqitch/Config.pm +++ b/lib/App/Sqitch/Config.pm @@ -208,7 +208,7 @@ David E. Wheeler =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 39ce7c09..e61edc76 100644 --- a/lib/App/Sqitch/DateTime.pm +++ b/lib/App/Sqitch/DateTime.pm @@ -191,7 +191,7 @@ David E. Wheeler =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 ea408dbf..f6979ad4 100644 --- a/lib/App/Sqitch/Engine.pm +++ b/lib/App/Sqitch/Engine.pm @@ -2759,7 +2759,7 @@ David E. Wheeler =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 4e8b4859..4f71be59 100644 --- a/lib/App/Sqitch/Engine/cockroach.pm +++ b/lib/App/Sqitch/Engine/cockroach.pm @@ -71,7 +71,7 @@ David E. Wheeler =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 f5d9bb7e..d8c14eab 100644 --- a/lib/App/Sqitch/Engine/exasol.pm +++ b/lib/App/Sqitch/Engine/exasol.pm @@ -572,7 +572,7 @@ David E. Wheeler =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 a141bf42..b0ec6bd9 100644 --- a/lib/App/Sqitch/Engine/firebird.pm +++ b/lib/App/Sqitch/Engine/firebird.pm @@ -996,7 +996,7 @@ David E. Wheeler =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 6025392d..50167326 100644 --- a/lib/App/Sqitch/Engine/mysql.pm +++ b/lib/App/Sqitch/Engine/mysql.pm @@ -566,7 +566,7 @@ David E. Wheeler =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 e4022949..5cd82b8e 100644 --- a/lib/App/Sqitch/Engine/oracle.pm +++ b/lib/App/Sqitch/Engine/oracle.pm @@ -822,7 +822,7 @@ David E. Wheeler =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 9a7ad2bf..1317b83a 100644 --- a/lib/App/Sqitch/Engine/pg.pm +++ b/lib/App/Sqitch/Engine/pg.pm @@ -554,7 +554,7 @@ David E. Wheeler =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 d195142c..ee8151ff 100644 --- a/lib/App/Sqitch/Engine/snowflake.pm +++ b/lib/App/Sqitch/Engine/snowflake.pm @@ -718,7 +718,7 @@ David E. Wheeler =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 228fb8f4..c5926ebb 100644 --- a/lib/App/Sqitch/Engine/sqlite.pm +++ b/lib/App/Sqitch/Engine/sqlite.pm @@ -288,7 +288,7 @@ David E. Wheeler =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 7ac2e485..35bea7b3 100644 --- a/lib/App/Sqitch/Engine/vertica.pm +++ b/lib/App/Sqitch/Engine/vertica.pm @@ -559,7 +559,7 @@ David E. Wheeler =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 86510b24..bbb8381f 100644 --- a/lib/App/Sqitch/ItemFormatter.pm +++ b/lib/App/Sqitch/ItemFormatter.pm @@ -582,7 +582,7 @@ David E. Wheeler =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 ce7fb419..d17860fc 100644 --- a/lib/App/Sqitch/Plan.pm +++ b/lib/App/Sqitch/Plan.pm @@ -1607,7 +1607,7 @@ David E. Wheeler =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 0c05d274..9234584b 100644 --- a/lib/App/Sqitch/Plan/Blank.pm +++ b/lib/App/Sqitch/Plan/Blank.pm @@ -39,7 +39,7 @@ David E. Wheeler =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 d3aef0b7..7cdad2da 100644 --- a/lib/App/Sqitch/Plan/Change.pm +++ b/lib/App/Sqitch/Plan/Change.pm @@ -647,7 +647,7 @@ David E. Wheeler =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 04b93526..a29f35f6 100644 --- a/lib/App/Sqitch/Plan/ChangeList.pm +++ b/lib/App/Sqitch/Plan/ChangeList.pm @@ -410,7 +410,7 @@ David E. Wheeler =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 faf98646..4c5a3e93 100644 --- a/lib/App/Sqitch/Plan/Depend.pm +++ b/lib/App/Sqitch/Plan/Depend.pm @@ -366,7 +366,7 @@ David E. Wheeler =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 3a1f519b..23215456 100644 --- a/lib/App/Sqitch/Plan/Line.pm +++ b/lib/App/Sqitch/Plan/Line.pm @@ -347,7 +347,7 @@ David E. Wheeler =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 c806fffe..82ac930b 100644 --- a/lib/App/Sqitch/Plan/LineList.pm +++ b/lib/App/Sqitch/Plan/LineList.pm @@ -110,7 +110,7 @@ David E. Wheeler =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 0f9d3cd0..88d402f1 100644 --- a/lib/App/Sqitch/Plan/Pragma.pm +++ b/lib/App/Sqitch/Plan/Pragma.pm @@ -102,7 +102,7 @@ David E. Wheeler =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 356a9e0a..4e9d6a21 100644 --- a/lib/App/Sqitch/Plan/Tag.pm +++ b/lib/App/Sqitch/Plan/Tag.pm @@ -158,7 +158,7 @@ David E. Wheeler =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 70bff56d..8a17013d 100644 --- a/lib/App/Sqitch/Role/ConnectingCommand.pm +++ b/lib/App/Sqitch/Role/ConnectingCommand.pm @@ -120,7 +120,7 @@ David E. Wheeler =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 a8cc523b..075cb2dd 100644 --- a/lib/App/Sqitch/Role/ContextCommand.pm +++ b/lib/App/Sqitch/Role/ContextCommand.pm @@ -122,7 +122,7 @@ David E. Wheeler =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 42bc38ad..e09fc4df 100644 --- a/lib/App/Sqitch/Role/DBIEngine.pm +++ b/lib/App/Sqitch/Role/DBIEngine.pm @@ -1133,7 +1133,7 @@ David E. Wheeler =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 b71b682b..8d4215d5 100644 --- a/lib/App/Sqitch/Role/RevertDeployCommand.pm +++ b/lib/App/Sqitch/Role/RevertDeployCommand.pm @@ -287,7 +287,7 @@ David E. Wheeler =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 64acaa5f..4b9d4396 100644 --- a/lib/App/Sqitch/Role/TargetConfigCommand.pm +++ b/lib/App/Sqitch/Role/TargetConfigCommand.pm @@ -530,7 +530,7 @@ David E. Wheeler =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 c3af1912..2d3410da 100644 --- a/lib/App/Sqitch/Target.pm +++ b/lib/App/Sqitch/Target.pm @@ -842,7 +842,7 @@ David E. Wheeler =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 d9cda3c4..58bdba43 100644 --- a/lib/App/Sqitch/Types.pm +++ b/lib/App/Sqitch/Types.pm @@ -168,7 +168,7 @@ David E. Wheeler =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 12172983..8221998a 100644 --- a/lib/App/Sqitch/X.pm +++ b/lib/App/Sqitch/X.pm @@ -175,7 +175,7 @@ David E. Wheeler =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/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 =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 =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 =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 =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 f6694685..317ac7e3 100644 --- a/lib/sqitchtutorial-snowflake.pod +++ b/lib/sqitchtutorial-snowflake.pod @@ -1423,7 +1423,7 @@ David E. Wheeler =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 =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 =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 =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/po/App-Sqitch.pot b/po/App-Sqitch.pot index a9633904..084b93cc 100644 --- a/po/App-Sqitch.pot +++ b/po/App-Sqitch.pot @@ -1,14 +1,14 @@ # Sqitch Localization Messages -# Copyright (c) 2012-2023 "iovation Inc., David E. Wheeler" +# Copyright (c) 2012-2024 "iovation Inc., David E. Wheeler" # This file is distributed under the same license as the App-Sqitch package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: App-Sqitch v1.4.1-dev\n" +"Project-Id-Version: App-Sqitch v1.4.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-30 20:02-0400\n" +"POT-Creation-Date: 2024-02-04 10:23-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -520,8 +520,8 @@ msgstr "" msgid ", " msgstr "" -#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:453 -#: lib/App/Sqitch/Engine.pm:1288 +#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:452 +#: lib/App/Sqitch/Engine.pm:1287 msgid "No changes deployed" msgstr "" @@ -591,7 +591,7 @@ msgstr "" msgid "Nothing to deploy (up-to-date)" msgstr "" -#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:608 +#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:607 msgid "Undeployed change:" msgid_plural "Undeployed changes:" msgstr[0] "" @@ -670,7 +670,7 @@ msgstr "" msgid "Nothing to deploy (empty plan)" msgstr "" -#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:348 +#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:347 #: lib/App/Sqitch/Plan.pm:749 lib/App/Sqitch/Plan/ChangeList.pm:121 #, perl-brace-format msgid "Unknown change: \"{change}\"" @@ -713,156 +713,156 @@ msgstr "" msgid "Missing required parameter $prompt_default" msgstr "" -#: lib/App/Sqitch/Engine.pm:342 +#: lib/App/Sqitch/Engine.pm:341 #, perl-brace-format msgid "Change not deployed: \"{change}\"" msgstr "" -#: lib/App/Sqitch/Engine.pm:359 +#: lib/App/Sqitch/Engine.pm:358 #, perl-brace-format msgid "No changes deployed since: \"{change}\"" msgstr "" -#: lib/App/Sqitch/Engine.pm:369 +#: lib/App/Sqitch/Engine.pm:368 #, perl-brace-format msgid "Reverting changes to {change} from {destination}" msgstr "" -#: lib/App/Sqitch/Engine.pm:373 lib/App/Sqitch/Engine.pm:403 +#: lib/App/Sqitch/Engine.pm:372 lib/App/Sqitch/Engine.pm:402 msgid "Will revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:376 lib/App/Sqitch/Engine.pm:406 +#: lib/App/Sqitch/Engine.pm:375 lib/App/Sqitch/Engine.pm:405 msgid "Would revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:380 lib/App/Sqitch/Engine.pm:410 +#: lib/App/Sqitch/Engine.pm:379 lib/App/Sqitch/Engine.pm:409 msgid "Nothing reverted" msgstr "" -#: lib/App/Sqitch/Engine.pm:383 +#: lib/App/Sqitch/Engine.pm:382 #, perl-brace-format msgid "Revert changes to {change} from {destination}?" msgstr "" -#: lib/App/Sqitch/Engine.pm:392 +#: lib/App/Sqitch/Engine.pm:391 msgid "Nothing to revert (nothing deployed)" msgstr "" -#: lib/App/Sqitch/Engine.pm:400 +#: lib/App/Sqitch/Engine.pm:399 #, perl-brace-format msgid "Reverting all changes from {destination}" msgstr "" -#: lib/App/Sqitch/Engine.pm:413 +#: lib/App/Sqitch/Engine.pm:412 #, perl-brace-format msgid "Revert all changes from {destination}?" msgstr "" -#: lib/App/Sqitch/Engine.pm:447 +#: lib/App/Sqitch/Engine.pm:446 #, perl-brace-format msgid "Verifying {destination}" msgstr "" -#: lib/App/Sqitch/Engine.pm:454 +#: lib/App/Sqitch/Engine.pm:453 msgid "Nothing to verify (no planned or deployed changes)" msgstr "" -#: lib/App/Sqitch/Engine.pm:461 +#: lib/App/Sqitch/Engine.pm:460 msgid "There are deployed changes, but none planned!" msgstr "" -#: lib/App/Sqitch/Engine.pm:474 +#: lib/App/Sqitch/Engine.pm:473 msgid "Verify Summary Report" msgstr "" -#: lib/App/Sqitch/Engine.pm:477 +#: lib/App/Sqitch/Engine.pm:476 #, perl-brace-format msgid "Changes: {number}" msgstr "" -#: lib/App/Sqitch/Engine.pm:478 +#: lib/App/Sqitch/Engine.pm:477 #, perl-brace-format msgid "Errors: {number}" msgstr "" -#: lib/App/Sqitch/Engine.pm:479 +#: lib/App/Sqitch/Engine.pm:478 msgid "Verify failed" msgstr "" -#: lib/App/Sqitch/Engine.pm:484 +#: lib/App/Sqitch/Engine.pm:483 msgid "Verify successful" msgstr "" -#: lib/App/Sqitch/Engine.pm:513 +#: lib/App/Sqitch/Engine.pm:512 #, perl-brace-format msgid "Change \"{change}\" has not been deployed" msgstr "" -#: lib/App/Sqitch/Engine.pm:516 +#: lib/App/Sqitch/Engine.pm:515 #, perl-brace-format msgid "Cannot find \"{change}\" in the database or the plan" msgstr "" -#: lib/App/Sqitch/Engine.pm:523 +#: lib/App/Sqitch/Engine.pm:522 #, perl-brace-format msgid "Change \"{change}\" is deployed, but not planned" msgstr "" -#: lib/App/Sqitch/Engine.pm:567 +#: lib/App/Sqitch/Engine.pm:566 msgid "Out of order" msgstr "" -#: lib/App/Sqitch/Engine.pm:573 +#: lib/App/Sqitch/Engine.pm:572 msgid "Not present in the plan" msgstr "" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:596 -#: lib/App/Sqitch/Engine.pm:1068 lib/App/Sqitch/Engine.pm:1098 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:595 +#: lib/App/Sqitch/Engine.pm:1067 lib/App/Sqitch/Engine.pm:1097 msgid "not ok" msgstr "" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:1046 -#: lib/App/Sqitch/Engine.pm:1088 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:1045 +#: lib/App/Sqitch/Engine.pm:1087 msgid "ok" msgstr "" -#: lib/App/Sqitch/Engine.pm:598 +#: lib/App/Sqitch/Engine.pm:597 msgid "Not deployed" msgstr "" -#: lib/App/Sqitch/Engine.pm:630 +#: lib/App/Sqitch/Engine.pm:629 #, perl-brace-format msgid "Verify script \"{script}\" failed." msgstr "" -#: lib/App/Sqitch/Engine.pm:639 +#: lib/App/Sqitch/Engine.pm:638 #, perl-brace-format msgid "Verify script {file} does not exist" msgstr "" -#: lib/App/Sqitch/Engine.pm:681 +#: lib/App/Sqitch/Engine.pm:680 #, perl-brace-format msgid "Conflicts with previously deployed change: {changes}" msgid_plural "Conflicts with previously deployed changes: {changes}" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:688 +#: lib/App/Sqitch/Engine.pm:687 #, perl-brace-format msgid "Missing required change: {changes}" msgid_plural "Missing required changes: {changes}" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:700 +#: lib/App/Sqitch/Engine.pm:699 #, perl-brace-format msgid "Change \"{changes}\" has already been deployed" msgid_plural "Changes have already been deployed: {changes}" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:723 +#: lib/App/Sqitch/Engine.pm:722 #, perl-brace-format msgid "Change \"{change}\" required by currently deployed change: {changes}" msgid_plural "" @@ -870,120 +870,120 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:746 +#: lib/App/Sqitch/Engine.pm:745 #, perl-brace-format msgid "Invalid dependency: {dependency}" msgstr "" -#: lib/App/Sqitch/Engine.pm:882 lib/App/Sqitch/Plan/ChangeList.pm:88 +#: lib/App/Sqitch/Engine.pm:881 lib/App/Sqitch/Plan/ChangeList.pm:88 #, perl-brace-format msgid "" "Change \"{change}\" is ambiguous. Please specify a tag-qualified change:" msgstr "" -#: lib/App/Sqitch/Engine.pm:897 +#: lib/App/Sqitch/Engine.pm:896 msgid "Change Lookup Failed" msgstr "" -#: lib/App/Sqitch/Engine.pm:918 +#: lib/App/Sqitch/Engine.pm:917 #, perl-brace-format msgid "Reverting to {change}" msgstr "" -#: lib/App/Sqitch/Engine.pm:919 +#: lib/App/Sqitch/Engine.pm:918 msgid "Reverting all changes" msgstr "" -#: lib/App/Sqitch/Engine.pm:927 +#: lib/App/Sqitch/Engine.pm:926 msgid "The schema will need to be manually repaired" msgstr "" -#: lib/App/Sqitch/Engine.pm:931 lib/App/Sqitch/Engine.pm:1062 +#: lib/App/Sqitch/Engine.pm:930 lib/App/Sqitch/Engine.pm:1061 msgid "Deploy failed" msgstr "" -#: lib/App/Sqitch/Engine.pm:991 +#: lib/App/Sqitch/Engine.pm:990 #, perl-brace-format msgid "Cannot find change {id} ({change}) in {file}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1113 +#: lib/App/Sqitch/Engine.pm:1112 #, perl-brace-format msgid "" "Blocked by another instance of Sqitch working on {dest}; waiting {secs} " "seconds..." msgstr "" -#: lib/App/Sqitch/Engine.pm:1123 +#: lib/App/Sqitch/Engine.pm:1122 #, perl-brace-format msgid "" "Timed out waiting {secs} seconds for another instance of Sqitch to finish " "work on {dest}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1182 +#: lib/App/Sqitch/Engine.pm:1181 #, perl-brace-format msgid "No registry found in {destination}. Have you ever deployed?" msgstr "" -#: lib/App/Sqitch/Engine.pm:1187 +#: lib/App/Sqitch/Engine.pm:1186 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " "Sqitch" msgstr "" -#: lib/App/Sqitch/Engine.pm:1193 +#: lib/App/Sqitch/Engine.pm:1192 #, perl-brace-format msgid "" "Registry is at version {old} but latest is {new}. Please run the \"upgrade\" " "command" msgstr "" -#: lib/App/Sqitch/Engine.pm:1208 +#: lib/App/Sqitch/Engine.pm:1207 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " "Sqitch." msgstr "" -#: lib/App/Sqitch/Engine.pm:1223 +#: lib/App/Sqitch/Engine.pm:1222 #, perl-brace-format msgid "Cannot upgrade to {version}: Cannot find upgrade script \"{file}\"" msgstr "" -#: lib/App/Sqitch/Engine.pm:1230 +#: lib/App/Sqitch/Engine.pm:1229 #, perl-brace-format msgid "Upgrading the Sqitch registry from {old} to {new}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1237 +#: lib/App/Sqitch/Engine.pm:1236 #, perl-brace-format msgid "From {old} to {new}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1282 +#: lib/App/Sqitch/Engine.pm:1281 #, perl-brace-format msgid "Checking {destination}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1289 +#: lib/App/Sqitch/Engine.pm:1288 msgid "Nothing to check (no planned or deployed changes)" msgstr "" -#: lib/App/Sqitch/Engine.pm:1302 +#: lib/App/Sqitch/Engine.pm:1301 #, perl-brace-format msgid "Script signatures diverge at change {change}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1310 +#: lib/App/Sqitch/Engine.pm:1309 #, perl-brace-format msgid "Failed one check" msgid_plural "Failed {count} checks" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:1318 +#: lib/App/Sqitch/Engine.pm:1317 msgid "Check successful" msgstr "" @@ -1011,8 +1011,7 @@ msgstr "" msgid "{command} unexpectedly failed; exit value = {exitval}" msgstr "" -#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/mysql.pm:274 -#: lib/App/Sqitch/Engine/sqlite.pm:158 +#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/sqlite.pm:158 #, perl-brace-format msgid "Sqitch database {database} already initialized" msgstr "" @@ -1060,7 +1059,7 @@ msgstr "" msgid "Database name missing in URI \"{uri}\"" msgstr "" -#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:310 +#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:303 #: lib/App/Sqitch/Engine/vertica.pm:139 #, perl-brace-format msgid "Sqitch schema \"{schema}\" already exists" diff --git a/po/de_DE.po b/po/de_DE.po index b561564c..c39cab92 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -1,5 +1,5 @@ # Sqitch German Localization Messages -# Copyright (c) 2012-2023 iovation Inc., David E. Wheeler +# Copyright (c) 2012-2024 iovation Inc., David E. Wheeler # This file is distributed under the same license as the App-Sqitch package. # Thomas Iguchi , 2019. # @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Sqitch 0.932\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-30 20:02-0400\n" +"POT-Creation-Date: 2024-02-04 10:23-0500\n" "PO-Revision-Date: 2012-08-31 17:15-0700\n" "Last-Translator: Thomas Iguchi \n" "Language-Team: Sqitch Hackers \n" @@ -548,8 +548,8 @@ msgstr "Verwende --project um ein bestimmtes Projekt anzugeben: {projects}" msgid ", " msgstr ", " -#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:453 -#: lib/App/Sqitch/Engine.pm:1288 +#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:452 +#: lib/App/Sqitch/Engine.pm:1287 msgid "No changes deployed" msgstr "Keine Änderungen angewendet" @@ -623,7 +623,7 @@ msgstr "" msgid "Nothing to deploy (up-to-date)" msgstr "Nichts anzuwenden (auf neuestem Stand)" -#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:608 +#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:607 msgid "Undeployed change:" msgid_plural "Undeployed changes:" msgstr[0] "Rückgängig gemachte Änderung:" @@ -710,7 +710,7 @@ msgstr "{driver} benötigt, um {engine} zu benutzen" msgid "Nothing to deploy (empty plan)" msgstr "Nichts anzuwenden (leerer Plan)" -#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:348 +#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:347 #: lib/App/Sqitch/Plan.pm:749 lib/App/Sqitch/Plan/ChangeList.pm:121 #, perl-brace-format msgid "Unknown change: \"{change}\"" @@ -755,156 +755,156 @@ msgstr "Unbekannter Anwendungsmodus: \"{mode}\"" msgid "Missing required parameter $prompt_default" msgstr "" -#: lib/App/Sqitch/Engine.pm:342 +#: lib/App/Sqitch/Engine.pm:341 #, perl-brace-format msgid "Change not deployed: \"{change}\"" msgstr "Änderung nicht angewandt: \"{change}\"" -#: lib/App/Sqitch/Engine.pm:359 +#: lib/App/Sqitch/Engine.pm:358 #, perl-brace-format msgid "No changes deployed since: \"{change}\"" msgstr "Keine Änderungen seit \"{change}\" angewandt" -#: lib/App/Sqitch/Engine.pm:369 +#: lib/App/Sqitch/Engine.pm:368 #, perl-brace-format msgid "Reverting changes to {change} from {destination}" msgstr "Kehre Änderungen an {destination} um nach {change}" -#: lib/App/Sqitch/Engine.pm:373 lib/App/Sqitch/Engine.pm:403 +#: lib/App/Sqitch/Engine.pm:372 lib/App/Sqitch/Engine.pm:402 msgid "Will revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:376 lib/App/Sqitch/Engine.pm:406 +#: lib/App/Sqitch/Engine.pm:375 lib/App/Sqitch/Engine.pm:405 msgid "Would revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:380 lib/App/Sqitch/Engine.pm:410 +#: lib/App/Sqitch/Engine.pm:379 lib/App/Sqitch/Engine.pm:409 msgid "Nothing reverted" msgstr "Nichts rückgängig gemacht" -#: lib/App/Sqitch/Engine.pm:383 +#: lib/App/Sqitch/Engine.pm:382 #, perl-brace-format msgid "Revert changes to {change} from {destination}?" msgstr "Änderungen von {change} nach {destination} wieder rückgängig machen?" -#: lib/App/Sqitch/Engine.pm:392 +#: lib/App/Sqitch/Engine.pm:391 msgid "Nothing to revert (nothing deployed)" msgstr "Nichts rückgängig zu machen (keine Änderungen angewandt)" -#: lib/App/Sqitch/Engine.pm:400 +#: lib/App/Sqitch/Engine.pm:399 #, perl-brace-format msgid "Reverting all changes from {destination}" msgstr "Kehre alle Änderungen an {destination} um" -#: lib/App/Sqitch/Engine.pm:413 +#: lib/App/Sqitch/Engine.pm:412 #, perl-brace-format msgid "Revert all changes from {destination}?" msgstr "Alle Änderungen an {destination} rückgängig machen?" -#: lib/App/Sqitch/Engine.pm:447 +#: lib/App/Sqitch/Engine.pm:446 #, perl-brace-format msgid "Verifying {destination}" msgstr "Verifiziere {destination}" -#: lib/App/Sqitch/Engine.pm:454 +#: lib/App/Sqitch/Engine.pm:453 msgid "Nothing to verify (no planned or deployed changes)" msgstr "Nichts zu verifizieren (keine geplanten oder angewandten Änderungen)" -#: lib/App/Sqitch/Engine.pm:461 +#: lib/App/Sqitch/Engine.pm:460 msgid "There are deployed changes, but none planned!" msgstr "Angewandte Änderungen gefunden die ungeplant sind!" -#: lib/App/Sqitch/Engine.pm:474 +#: lib/App/Sqitch/Engine.pm:473 msgid "Verify Summary Report" msgstr "Verifizierungsreport" -#: lib/App/Sqitch/Engine.pm:477 +#: lib/App/Sqitch/Engine.pm:476 #, perl-brace-format msgid "Changes: {number}" msgstr "Änderungen: {number}" -#: lib/App/Sqitch/Engine.pm:478 +#: lib/App/Sqitch/Engine.pm:477 #, perl-brace-format msgid "Errors: {number}" msgstr "Fehler: {number}" -#: lib/App/Sqitch/Engine.pm:479 +#: lib/App/Sqitch/Engine.pm:478 msgid "Verify failed" msgstr "Verifizierung fehlgeschlagen" -#: lib/App/Sqitch/Engine.pm:484 +#: lib/App/Sqitch/Engine.pm:483 msgid "Verify successful" msgstr "Erfolgreich verifiziert" -#: lib/App/Sqitch/Engine.pm:513 +#: lib/App/Sqitch/Engine.pm:512 #, perl-brace-format msgid "Change \"{change}\" has not been deployed" msgstr "Änderung \"{change}\" wurde noch nicht angewendet" -#: lib/App/Sqitch/Engine.pm:516 +#: lib/App/Sqitch/Engine.pm:515 #, perl-brace-format msgid "Cannot find \"{change}\" in the database or the plan" msgstr "Kann \"{change}\" weder in der Datenbank noch im Plan finden" -#: lib/App/Sqitch/Engine.pm:523 +#: lib/App/Sqitch/Engine.pm:522 #, perl-brace-format msgid "Change \"{change}\" is deployed, but not planned" msgstr "Änderung \"{change}\" wurde angewendet, allerdings nicht geplant" -#: lib/App/Sqitch/Engine.pm:567 +#: lib/App/Sqitch/Engine.pm:566 msgid "Out of order" msgstr "Ungültige Reihenfolge" -#: lib/App/Sqitch/Engine.pm:573 +#: lib/App/Sqitch/Engine.pm:572 msgid "Not present in the plan" msgstr "Im Plan nicht vorhanden" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:596 -#: lib/App/Sqitch/Engine.pm:1068 lib/App/Sqitch/Engine.pm:1098 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:595 +#: lib/App/Sqitch/Engine.pm:1067 lib/App/Sqitch/Engine.pm:1097 msgid "not ok" msgstr "nicht OK" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:1046 -#: lib/App/Sqitch/Engine.pm:1088 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:1045 +#: lib/App/Sqitch/Engine.pm:1087 msgid "ok" msgstr "OK" -#: lib/App/Sqitch/Engine.pm:598 +#: lib/App/Sqitch/Engine.pm:597 msgid "Not deployed" msgstr "Nicht angewendet" -#: lib/App/Sqitch/Engine.pm:630 +#: lib/App/Sqitch/Engine.pm:629 #, perl-brace-format msgid "Verify script \"{script}\" failed." msgstr "Verifizierungsskript {script} fehlgeschlagen." -#: lib/App/Sqitch/Engine.pm:639 +#: lib/App/Sqitch/Engine.pm:638 #, perl-brace-format msgid "Verify script {file} does not exist" msgstr "Verifizierungsskript {file} existiert nicht" -#: lib/App/Sqitch/Engine.pm:681 +#: lib/App/Sqitch/Engine.pm:680 #, perl-brace-format msgid "Conflicts with previously deployed change: {changes}" msgid_plural "Conflicts with previously deployed changes: {changes}" msgstr[0] "Konflikte mit zuvor angewendeter Änderung: {changes}" msgstr[1] "Konflikte mit zuvor angewendeten Änderungen: {changes}" -#: lib/App/Sqitch/Engine.pm:688 +#: lib/App/Sqitch/Engine.pm:687 #, perl-brace-format msgid "Missing required change: {changes}" msgid_plural "Missing required changes: {changes}" msgstr[0] "Fehlende benötigte Änderung: {changes}" msgstr[1] "Fehlende benötigte Änderungen: {changes}" -#: lib/App/Sqitch/Engine.pm:700 +#: lib/App/Sqitch/Engine.pm:699 #, perl-brace-format msgid "Change \"{changes}\" has already been deployed" msgid_plural "Changes have already been deployed: {changes}" msgstr[0] "Änderung \"{changes}\" wurde bereits angewendet" msgstr[1] "Änderungen wurden bereits angewendet: {changes}" -#: lib/App/Sqitch/Engine.pm:723 +#: lib/App/Sqitch/Engine.pm:722 #, perl-brace-format msgid "Change \"{change}\" required by currently deployed change: {changes}" msgid_plural "" @@ -916,66 +916,66 @@ msgstr[1] "" "Änderung \"{change}\" wird erfordert von gerade angewendeten Änderungen: " "{changes}" -#: lib/App/Sqitch/Engine.pm:746 +#: lib/App/Sqitch/Engine.pm:745 #, perl-brace-format msgid "Invalid dependency: {dependency}" msgstr "Ungültige Abhängigkeit: {dependency}" -#: lib/App/Sqitch/Engine.pm:882 lib/App/Sqitch/Plan/ChangeList.pm:88 +#: lib/App/Sqitch/Engine.pm:881 lib/App/Sqitch/Plan/ChangeList.pm:88 #, perl-brace-format msgid "" "Change \"{change}\" is ambiguous. Please specify a tag-qualified change:" msgstr "" "Änderung \"{change}\" ist mehrdeutig. Bitte gib ein Tag für die Änderung an:" -#: lib/App/Sqitch/Engine.pm:897 +#: lib/App/Sqitch/Engine.pm:896 msgid "Change Lookup Failed" msgstr "Suche nach Änderung gescheitert" -#: lib/App/Sqitch/Engine.pm:918 +#: lib/App/Sqitch/Engine.pm:917 #, perl-brace-format msgid "Reverting to {change}" msgstr "Mache Änderungen rückgänging bis nach {change}" -#: lib/App/Sqitch/Engine.pm:919 +#: lib/App/Sqitch/Engine.pm:918 msgid "Reverting all changes" msgstr "Kehre sämtliche Änderungen um" -#: lib/App/Sqitch/Engine.pm:927 +#: lib/App/Sqitch/Engine.pm:926 msgid "The schema will need to be manually repaired" msgstr "Das Schema muss manuell repariert werden" -#: lib/App/Sqitch/Engine.pm:931 lib/App/Sqitch/Engine.pm:1062 +#: lib/App/Sqitch/Engine.pm:930 lib/App/Sqitch/Engine.pm:1061 msgid "Deploy failed" msgstr "Anwendung der Änderung(en) fehlgeschlagen" -#: lib/App/Sqitch/Engine.pm:991 +#: lib/App/Sqitch/Engine.pm:990 #, perl-brace-format msgid "Cannot find change {id} ({change}) in {file}" msgstr "Kann Änderung {id} ({change}) in {file} nicht finden" -#: lib/App/Sqitch/Engine.pm:1113 +#: lib/App/Sqitch/Engine.pm:1112 #, perl-brace-format msgid "" "Blocked by another instance of Sqitch working on {dest}; waiting {secs} " "seconds..." msgstr "" -#: lib/App/Sqitch/Engine.pm:1123 +#: lib/App/Sqitch/Engine.pm:1122 #, perl-brace-format msgid "" "Timed out waiting {secs} seconds for another instance of Sqitch to finish " "work on {dest}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1182 +#: lib/App/Sqitch/Engine.pm:1181 #, perl-brace-format msgid "No registry found in {destination}. Have you ever deployed?" msgstr "" "Registry nicht gefunden in {destination}. Wurde Sqitch jemals darauf " "ausgeführt?" -#: lib/App/Sqitch/Engine.pm:1187 +#: lib/App/Sqitch/Engine.pm:1186 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " @@ -984,7 +984,7 @@ msgstr "" "Aktuelle Registry-Version ist {old} allerdings ist {new} die neueste " "bekannte Version. Bitte aktualisiere Sqitch" -#: lib/App/Sqitch/Engine.pm:1193 +#: lib/App/Sqitch/Engine.pm:1192 #, perl-brace-format msgid "" "Registry is at version {old} but latest is {new}. Please run the \"upgrade\" " @@ -993,7 +993,7 @@ msgstr "" "Registry ist derzeit auf Version {old} aber neueste Version ist {new}. Bitte " "führe den \"upgrade\"-Befehl aus" -#: lib/App/Sqitch/Engine.pm:1208 +#: lib/App/Sqitch/Engine.pm:1207 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " @@ -1002,46 +1002,46 @@ msgstr "" "Aktuelle Registry-Version ist {old} allerdings ist {new} die neueste " "bekannte Version. Bitte aktualisiere Sqitch" -#: lib/App/Sqitch/Engine.pm:1223 +#: lib/App/Sqitch/Engine.pm:1222 #, perl-brace-format msgid "Cannot upgrade to {version}: Cannot find upgrade script \"{file}\"" msgstr "" "Kann nicht nach {version} aktualisieren: Upgrade-Skript \"{file}\" nicht " "gefunden" -#: lib/App/Sqitch/Engine.pm:1230 +#: lib/App/Sqitch/Engine.pm:1229 #, perl-brace-format msgid "Upgrading the Sqitch registry from {old} to {new}" msgstr "Aktualisiere die Sqitch-Registry von {old} nach {new}" -#: lib/App/Sqitch/Engine.pm:1237 +#: lib/App/Sqitch/Engine.pm:1236 #, perl-brace-format msgid "From {old} to {new}" msgstr "Von {old} nach {new}" -#: lib/App/Sqitch/Engine.pm:1282 +#: lib/App/Sqitch/Engine.pm:1281 #, fuzzy, perl-brace-format msgid "Checking {destination}" msgstr "Verifiziere {destination}" -#: lib/App/Sqitch/Engine.pm:1289 +#: lib/App/Sqitch/Engine.pm:1288 #, fuzzy msgid "Nothing to check (no planned or deployed changes)" msgstr "Nichts zu verifizieren (keine geplanten oder angewandten Änderungen)" -#: lib/App/Sqitch/Engine.pm:1302 +#: lib/App/Sqitch/Engine.pm:1301 #, fuzzy, perl-brace-format msgid "Script signatures diverge at change {change}" msgstr "Fehlende benötigte Änderung: {changes}" -#: lib/App/Sqitch/Engine.pm:1310 +#: lib/App/Sqitch/Engine.pm:1309 #, perl-brace-format msgid "Failed one check" msgid_plural "Failed {count} checks" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:1318 +#: lib/App/Sqitch/Engine.pm:1317 #, fuzzy msgid "Check successful" msgstr "Erfolgreich verifiziert" @@ -1071,8 +1071,7 @@ msgstr "" msgid "{command} unexpectedly failed; exit value = {exitval}" msgstr "{command} unerwartet gescheitert. Rückgabewert = {exitval}" -#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/mysql.pm:274 -#: lib/App/Sqitch/Engine/sqlite.pm:158 +#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/sqlite.pm:158 #, perl-brace-format msgid "Sqitch database {database} already initialized" msgstr "Sqitch-Datenbank {database} ist bereits initialisiert" @@ -1124,7 +1123,7 @@ msgstr "" msgid "Database name missing in URI \"{uri}\"" msgstr "Name der Datenbank fehlt in URI \"{uri}\"" -#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:310 +#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:303 #: lib/App/Sqitch/Engine/vertica.pm:139 #, perl-brace-format msgid "Sqitch schema \"{schema}\" already exists" diff --git a/po/fr_FR.po b/po/fr_FR.po index 283ceb1b..f1e46674 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -1,5 +1,5 @@ # Sqitch French Localization Messages -# Copyright (c) 2012-2023 iovation Inc., David E. Wheeler +# Copyright (c) 2012-2024 iovation Inc., David E. Wheeler # This file is distributed under the same license as the App-Sqitch package. # Arnaud Assad , 2012. # @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Sqitch 0.932\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-30 20:02-0400\n" +"POT-Creation-Date: 2024-02-04 10:23-0500\n" "PO-Revision-Date: 2012-10-12 11:28-0700\n" "Last-Translator: Arnaud Assad \n" "Language-Team: Sqitch Hackers \n" @@ -532,8 +532,8 @@ msgstr "" msgid ", " msgstr ", " -#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:453 -#: lib/App/Sqitch/Engine.pm:1288 +#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:452 +#: lib/App/Sqitch/Engine.pm:1287 msgid "No changes deployed" msgstr "Pas de changements déployés" @@ -604,7 +604,7 @@ msgstr "Assurez-vous d'être connecté à la bonne base de données pour ce proj msgid "Nothing to deploy (up-to-date)" msgstr "Rien à déployer (à jour)" -#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:608 +#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:607 msgid "Undeployed change:" msgid_plural "Undeployed changes:" msgstr[0] "Changement non déployé :" @@ -684,7 +684,7 @@ msgstr "Module DBD::Pg requis pour gérer PostgreSQL" msgid "Nothing to deploy (empty plan)" msgstr "Rien à déployer (plan vide)" -#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:348 +#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:347 #: lib/App/Sqitch/Plan.pm:749 lib/App/Sqitch/Plan/ChangeList.pm:121 #, perl-brace-format msgid "Unknown change: \"{change}\"" @@ -729,163 +729,163 @@ msgstr "Mode de déploiement inconnu : \"{mode}\"" msgid "Missing required parameter $prompt_default" msgstr "" -#: lib/App/Sqitch/Engine.pm:342 +#: lib/App/Sqitch/Engine.pm:341 #, fuzzy, perl-brace-format msgid "Change not deployed: \"{change}\"" msgstr "Cible non déployée : \"{target}\"" -#: lib/App/Sqitch/Engine.pm:359 +#: lib/App/Sqitch/Engine.pm:358 #, fuzzy, perl-brace-format msgid "No changes deployed since: \"{change}\"" msgstr "Cible non déployée : \"{target}\"" -#: lib/App/Sqitch/Engine.pm:369 +#: lib/App/Sqitch/Engine.pm:368 #, fuzzy, perl-brace-format msgid "Reverting changes to {change} from {destination}" msgstr "Annulation des changements de {destination} à {target}" -#: lib/App/Sqitch/Engine.pm:373 lib/App/Sqitch/Engine.pm:403 +#: lib/App/Sqitch/Engine.pm:372 lib/App/Sqitch/Engine.pm:402 msgid "Will revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:376 lib/App/Sqitch/Engine.pm:406 +#: lib/App/Sqitch/Engine.pm:375 lib/App/Sqitch/Engine.pm:405 msgid "Would revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:380 lib/App/Sqitch/Engine.pm:410 +#: lib/App/Sqitch/Engine.pm:379 lib/App/Sqitch/Engine.pm:409 #, fuzzy msgid "Nothing reverted" msgstr "Rien à annuler (rien de déployé)" -#: lib/App/Sqitch/Engine.pm:383 +#: lib/App/Sqitch/Engine.pm:382 #, fuzzy, perl-brace-format msgid "Revert changes to {change} from {destination}?" msgstr "Annulation des changements de {destination} à {target}" -#: lib/App/Sqitch/Engine.pm:392 +#: lib/App/Sqitch/Engine.pm:391 msgid "Nothing to revert (nothing deployed)" msgstr "Rien à annuler (rien de déployé)" -#: lib/App/Sqitch/Engine.pm:400 +#: lib/App/Sqitch/Engine.pm:399 #, perl-brace-format msgid "Reverting all changes from {destination}" msgstr "Annulation de tous les changements de {destination}" -#: lib/App/Sqitch/Engine.pm:413 +#: lib/App/Sqitch/Engine.pm:412 #, fuzzy, perl-brace-format msgid "Revert all changes from {destination}?" msgstr "Annulation de tous les changements de {destination}" -#: lib/App/Sqitch/Engine.pm:447 +#: lib/App/Sqitch/Engine.pm:446 #, fuzzy, perl-brace-format msgid "Verifying {destination}" msgstr "Déploiement des changements vers {destination}" -#: lib/App/Sqitch/Engine.pm:454 +#: lib/App/Sqitch/Engine.pm:453 #, fuzzy msgid "Nothing to verify (no planned or deployed changes)" msgstr "Rien à annuler (rien de déployé)" -#: lib/App/Sqitch/Engine.pm:461 +#: lib/App/Sqitch/Engine.pm:460 msgid "There are deployed changes, but none planned!" msgstr "" -#: lib/App/Sqitch/Engine.pm:474 +#: lib/App/Sqitch/Engine.pm:473 msgid "Verify Summary Report" msgstr "" -#: lib/App/Sqitch/Engine.pm:477 +#: lib/App/Sqitch/Engine.pm:476 #, fuzzy, perl-brace-format msgid "Changes: {number}" msgstr "Changement : {change_id}" -#: lib/App/Sqitch/Engine.pm:478 +#: lib/App/Sqitch/Engine.pm:477 #, perl-brace-format msgid "Errors: {number}" msgstr "" -#: lib/App/Sqitch/Engine.pm:479 +#: lib/App/Sqitch/Engine.pm:478 #, fuzzy msgid "Verify failed" msgstr "Echec du déploiement" -#: lib/App/Sqitch/Engine.pm:484 +#: lib/App/Sqitch/Engine.pm:483 msgid "Verify successful" msgstr "" -#: lib/App/Sqitch/Engine.pm:513 +#: lib/App/Sqitch/Engine.pm:512 #, perl-brace-format msgid "Change \"{change}\" has not been deployed" msgstr "" -#: lib/App/Sqitch/Engine.pm:516 +#: lib/App/Sqitch/Engine.pm:515 #, fuzzy, perl-brace-format msgid "Cannot find \"{change}\" in the database or the plan" msgstr "Impossible de trouver {target} dans le plan" -#: lib/App/Sqitch/Engine.pm:523 +#: lib/App/Sqitch/Engine.pm:522 #, fuzzy, perl-brace-format msgid "Change \"{change}\" is deployed, but not planned" msgstr "" "Le changement \"{change}\" duplique une déclaration précédente à la ligne " "{line}" -#: lib/App/Sqitch/Engine.pm:567 +#: lib/App/Sqitch/Engine.pm:566 msgid "Out of order" msgstr "" -#: lib/App/Sqitch/Engine.pm:573 +#: lib/App/Sqitch/Engine.pm:572 #, fuzzy msgid "Not present in the plan" msgstr "Impossible de trouver {target} dans le plan" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:596 -#: lib/App/Sqitch/Engine.pm:1068 lib/App/Sqitch/Engine.pm:1098 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:595 +#: lib/App/Sqitch/Engine.pm:1067 lib/App/Sqitch/Engine.pm:1097 msgid "not ok" msgstr "" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:1046 -#: lib/App/Sqitch/Engine.pm:1088 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:1045 +#: lib/App/Sqitch/Engine.pm:1087 msgid "ok" msgstr "" -#: lib/App/Sqitch/Engine.pm:598 +#: lib/App/Sqitch/Engine.pm:597 #, fuzzy msgid "Not deployed" msgstr "Pas de changements déployés" -#: lib/App/Sqitch/Engine.pm:630 +#: lib/App/Sqitch/Engine.pm:629 #, perl-brace-format msgid "Verify script \"{script}\" failed." msgstr "" -#: lib/App/Sqitch/Engine.pm:639 +#: lib/App/Sqitch/Engine.pm:638 #, fuzzy, perl-brace-format msgid "Verify script {file} does not exist" msgstr "Le fichier de plan {file} n'existe pas" -#: lib/App/Sqitch/Engine.pm:681 +#: lib/App/Sqitch/Engine.pm:680 #, perl-brace-format msgid "Conflicts with previously deployed change: {changes}" msgid_plural "Conflicts with previously deployed changes: {changes}" msgstr[0] "Conflits avec le changement déployé précédemment : {changes}" msgstr[1] "Conflits avec les changements déployés précédemment : {changes}" -#: lib/App/Sqitch/Engine.pm:688 +#: lib/App/Sqitch/Engine.pm:687 #, perl-brace-format msgid "Missing required change: {changes}" msgid_plural "Missing required changes: {changes}" msgstr[0] "Changement requis manquant : {changes}" msgstr[1] "Changements requis manquant : {changes}" -#: lib/App/Sqitch/Engine.pm:700 +#: lib/App/Sqitch/Engine.pm:699 #, perl-brace-format msgid "Change \"{changes}\" has already been deployed" msgid_plural "Changes have already been deployed: {changes}" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:723 +#: lib/App/Sqitch/Engine.pm:722 #, fuzzy, perl-brace-format msgid "Change \"{change}\" required by currently deployed change: {changes}" msgid_plural "" @@ -893,121 +893,121 @@ msgid_plural "" msgstr[0] "Requis par le changement actuellement déployé : {changes}" msgstr[1] "Requis par les changements actuellement déployés : {changes}" -#: lib/App/Sqitch/Engine.pm:746 +#: lib/App/Sqitch/Engine.pm:745 #, perl-brace-format msgid "Invalid dependency: {dependency}" msgstr "Dépendance invalide {dependency}" -#: lib/App/Sqitch/Engine.pm:882 lib/App/Sqitch/Plan/ChangeList.pm:88 +#: lib/App/Sqitch/Engine.pm:881 lib/App/Sqitch/Plan/ChangeList.pm:88 #, perl-brace-format msgid "" "Change \"{change}\" is ambiguous. Please specify a tag-qualified change:" msgstr "" -#: lib/App/Sqitch/Engine.pm:897 +#: lib/App/Sqitch/Engine.pm:896 msgid "Change Lookup Failed" msgstr "" -#: lib/App/Sqitch/Engine.pm:918 +#: lib/App/Sqitch/Engine.pm:917 #, fuzzy, perl-brace-format msgid "Reverting to {change}" msgstr "Annulation et retour vers {target}" -#: lib/App/Sqitch/Engine.pm:919 +#: lib/App/Sqitch/Engine.pm:918 msgid "Reverting all changes" msgstr "Annulation de tous les changements" -#: lib/App/Sqitch/Engine.pm:927 +#: lib/App/Sqitch/Engine.pm:926 msgid "The schema will need to be manually repaired" msgstr "Le schéma devra être réparé manuellement" -#: lib/App/Sqitch/Engine.pm:931 lib/App/Sqitch/Engine.pm:1062 +#: lib/App/Sqitch/Engine.pm:930 lib/App/Sqitch/Engine.pm:1061 msgid "Deploy failed" msgstr "Echec du déploiement" -#: lib/App/Sqitch/Engine.pm:991 +#: lib/App/Sqitch/Engine.pm:990 #, fuzzy, perl-brace-format msgid "Cannot find change {id} ({change}) in {file}" msgstr "Impossible de trouver ce changement dans {file}" -#: lib/App/Sqitch/Engine.pm:1113 +#: lib/App/Sqitch/Engine.pm:1112 #, perl-brace-format msgid "" "Blocked by another instance of Sqitch working on {dest}; waiting {secs} " "seconds..." msgstr "" -#: lib/App/Sqitch/Engine.pm:1123 +#: lib/App/Sqitch/Engine.pm:1122 #, perl-brace-format msgid "" "Timed out waiting {secs} seconds for another instance of Sqitch to finish " "work on {dest}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1182 +#: lib/App/Sqitch/Engine.pm:1181 #, perl-brace-format msgid "No registry found in {destination}. Have you ever deployed?" msgstr "" -#: lib/App/Sqitch/Engine.pm:1187 +#: lib/App/Sqitch/Engine.pm:1186 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " "Sqitch" msgstr "" -#: lib/App/Sqitch/Engine.pm:1193 +#: lib/App/Sqitch/Engine.pm:1192 #, perl-brace-format msgid "" "Registry is at version {old} but latest is {new}. Please run the \"upgrade\" " "command" msgstr "" -#: lib/App/Sqitch/Engine.pm:1208 +#: lib/App/Sqitch/Engine.pm:1207 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " "Sqitch." msgstr "" -#: lib/App/Sqitch/Engine.pm:1223 +#: lib/App/Sqitch/Engine.pm:1222 #, perl-brace-format msgid "Cannot upgrade to {version}: Cannot find upgrade script \"{file}\"" msgstr "" -#: lib/App/Sqitch/Engine.pm:1230 +#: lib/App/Sqitch/Engine.pm:1229 #, fuzzy, perl-brace-format msgid "Upgrading the Sqitch registry from {old} to {new}" msgstr "Ajout des tables de metadonnées à {destination}" -#: lib/App/Sqitch/Engine.pm:1237 +#: lib/App/Sqitch/Engine.pm:1236 #, perl-brace-format msgid "From {old} to {new}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1282 +#: lib/App/Sqitch/Engine.pm:1281 #, fuzzy, perl-brace-format msgid "Checking {destination}" msgstr "Déploiement des changements vers {destination}" -#: lib/App/Sqitch/Engine.pm:1289 +#: lib/App/Sqitch/Engine.pm:1288 #, fuzzy msgid "Nothing to check (no planned or deployed changes)" msgstr "Rien à annuler (rien de déployé)" -#: lib/App/Sqitch/Engine.pm:1302 +#: lib/App/Sqitch/Engine.pm:1301 #, fuzzy, perl-brace-format msgid "Script signatures diverge at change {change}" msgstr "Changement requis manquant : {changes}" -#: lib/App/Sqitch/Engine.pm:1310 +#: lib/App/Sqitch/Engine.pm:1309 #, perl-brace-format msgid "Failed one check" msgid_plural "Failed {count} checks" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:1318 +#: lib/App/Sqitch/Engine.pm:1317 msgid "Check successful" msgstr "" @@ -1035,8 +1035,7 @@ msgstr "Impossible d'ouvrir {file} : {error}" msgid "{command} unexpectedly failed; exit value = {exitval}" msgstr "{command} a retourné de manière inattendue la valeur {exitval}" -#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/mysql.pm:274 -#: lib/App/Sqitch/Engine/sqlite.pm:158 +#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/sqlite.pm:158 #, perl-brace-format msgid "Sqitch database {database} already initialized" msgstr "" @@ -1086,7 +1085,7 @@ msgstr "" msgid "Database name missing in URI \"{uri}\"" msgstr "" -#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:310 +#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:303 #: lib/App/Sqitch/Engine/vertica.pm:139 #, perl-brace-format msgid "Sqitch schema \"{schema}\" already exists" diff --git a/po/it_IT.po b/po/it_IT.po index 14a586a3..ac07588a 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -1,5 +1,5 @@ # Sqitch Italian Localization Messages -# Copyright (c) 2012-2023 iovation Inc., David E. Wheeler +# Copyright (c) 2012-2024 iovation Inc., David E. Wheeler # This file is distributed under the same license as the App-Sqitch package. # Luca Ferrari , 2017 # @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: App-Sqitch 0.9996\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-30 20:02-0400\n" +"POT-Creation-Date: 2024-02-04 10:23-0500\n" "PO-Revision-Date: 2017-10-12 10:30+0200\n" "Last-Translator: Luca Ferrari \n" "Language-Team: Sqitch Hackers \n" @@ -539,8 +539,8 @@ msgstr "Usa --project per selezionare quale progetto interrogare: {projects}" msgid ", " msgstr ", " -#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:453 -#: lib/App/Sqitch/Engine.pm:1288 +#: lib/App/Sqitch/Command/status.pm:138 lib/App/Sqitch/Engine.pm:452 +#: lib/App/Sqitch/Engine.pm:1287 msgid "No changes deployed" msgstr "Nessuna modifica implementata" @@ -612,7 +612,7 @@ msgstr "" msgid "Nothing to deploy (up-to-date)" msgstr "Niente da implementare (tutto già aggiornato)" -#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:608 +#: lib/App/Sqitch/Command/status.pm:311 lib/App/Sqitch/Engine.pm:607 msgid "Undeployed change:" msgid_plural "Undeployed changes:" msgstr[0] "Modifica rimosse dalla implementazione:" @@ -696,7 +696,7 @@ msgstr "{driver} è necessario per gestire {engine}" msgid "Nothing to deploy (empty plan)" msgstr "Niente da implementare (piano di esecuzione vuoto)" -#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:348 +#: lib/App/Sqitch/Engine.pm:221 lib/App/Sqitch/Engine.pm:347 #: lib/App/Sqitch/Plan.pm:749 lib/App/Sqitch/Plan/ChangeList.pm:121 #, perl-brace-format msgid "Unknown change: \"{change}\"" @@ -739,135 +739,135 @@ msgstr "Modalità di implementazione \"{mode}\" sconosciuta" msgid "Missing required parameter $prompt_default" msgstr "" -#: lib/App/Sqitch/Engine.pm:342 +#: lib/App/Sqitch/Engine.pm:341 #, perl-brace-format msgid "Change not deployed: \"{change}\"" msgstr "Modifica non implementata: \"{change}\"" -#: lib/App/Sqitch/Engine.pm:359 +#: lib/App/Sqitch/Engine.pm:358 #, perl-brace-format msgid "No changes deployed since: \"{change}\"" msgstr "Nessuna modifica implementata da: \"{change}\"" -#: lib/App/Sqitch/Engine.pm:369 +#: lib/App/Sqitch/Engine.pm:368 #, perl-brace-format msgid "Reverting changes to {change} from {destination}" msgstr "Annullo modifiche da {destination} a {change}" -#: lib/App/Sqitch/Engine.pm:373 lib/App/Sqitch/Engine.pm:403 +#: lib/App/Sqitch/Engine.pm:372 lib/App/Sqitch/Engine.pm:402 msgid "Will revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:376 lib/App/Sqitch/Engine.pm:406 +#: lib/App/Sqitch/Engine.pm:375 lib/App/Sqitch/Engine.pm:405 msgid "Would revert the following changes:" msgstr "" -#: lib/App/Sqitch/Engine.pm:380 lib/App/Sqitch/Engine.pm:410 +#: lib/App/Sqitch/Engine.pm:379 lib/App/Sqitch/Engine.pm:409 msgid "Nothing reverted" msgstr "Niente è stato annullato" -#: lib/App/Sqitch/Engine.pm:383 +#: lib/App/Sqitch/Engine.pm:382 #, perl-brace-format msgid "Revert changes to {change} from {destination}?" msgstr "Annullo modifiche da {destination} a {change}" -#: lib/App/Sqitch/Engine.pm:392 +#: lib/App/Sqitch/Engine.pm:391 msgid "Nothing to revert (nothing deployed)" msgstr "Niente da annullare (niente da implementare)" -#: lib/App/Sqitch/Engine.pm:400 +#: lib/App/Sqitch/Engine.pm:399 #, perl-brace-format msgid "Reverting all changes from {destination}" msgstr "Annullo tutte le modifiche da {destination}" -#: lib/App/Sqitch/Engine.pm:413 +#: lib/App/Sqitch/Engine.pm:412 #, perl-brace-format msgid "Revert all changes from {destination}?" msgstr "Annullo tutte le modifiche da {destination}?" -#: lib/App/Sqitch/Engine.pm:447 +#: lib/App/Sqitch/Engine.pm:446 #, perl-brace-format msgid "Verifying {destination}" msgstr "Veifico {destination}" -#: lib/App/Sqitch/Engine.pm:454 +#: lib/App/Sqitch/Engine.pm:453 msgid "Nothing to verify (no planned or deployed changes)" msgstr "Niente da verificare (nessuna modifica pianificata o implementata)" -#: lib/App/Sqitch/Engine.pm:461 +#: lib/App/Sqitch/Engine.pm:460 msgid "There are deployed changes, but none planned!" msgstr "Ci sono modifiche implementate, ma nessuna pianificata!" -#: lib/App/Sqitch/Engine.pm:474 +#: lib/App/Sqitch/Engine.pm:473 msgid "Verify Summary Report" msgstr "Report Sommario di verifica" -#: lib/App/Sqitch/Engine.pm:477 +#: lib/App/Sqitch/Engine.pm:476 #, perl-brace-format msgid "Changes: {number}" msgstr "Modifiche: {number}" -#: lib/App/Sqitch/Engine.pm:478 +#: lib/App/Sqitch/Engine.pm:477 #, perl-brace-format msgid "Errors: {number}" msgstr "Errori: {number}" -#: lib/App/Sqitch/Engine.pm:479 +#: lib/App/Sqitch/Engine.pm:478 msgid "Verify failed" msgstr "Verifica fallita" -#: lib/App/Sqitch/Engine.pm:484 +#: lib/App/Sqitch/Engine.pm:483 msgid "Verify successful" msgstr "Verifica riuscita" -#: lib/App/Sqitch/Engine.pm:513 +#: lib/App/Sqitch/Engine.pm:512 #, perl-brace-format msgid "Change \"{change}\" has not been deployed" msgstr "Modifica \"{change}\" non implementata" -#: lib/App/Sqitch/Engine.pm:516 +#: lib/App/Sqitch/Engine.pm:515 #, perl-brace-format msgid "Cannot find \"{change}\" in the database or the plan" msgstr "Non posso trovare \"{change}\" nel database o nel piano di esecuzione" -#: lib/App/Sqitch/Engine.pm:523 +#: lib/App/Sqitch/Engine.pm:522 #, perl-brace-format msgid "Change \"{change}\" is deployed, but not planned" msgstr "La modifica \"{change}\" è implementata ma non pianificata" -#: lib/App/Sqitch/Engine.pm:567 +#: lib/App/Sqitch/Engine.pm:566 msgid "Out of order" msgstr "Fuori servizio" -#: lib/App/Sqitch/Engine.pm:573 +#: lib/App/Sqitch/Engine.pm:572 msgid "Not present in the plan" msgstr "Non presente nel piano di esecuzione" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:596 -#: lib/App/Sqitch/Engine.pm:1068 lib/App/Sqitch/Engine.pm:1098 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:595 +#: lib/App/Sqitch/Engine.pm:1067 lib/App/Sqitch/Engine.pm:1097 msgid "not ok" msgstr "Non OK" -#: lib/App/Sqitch/Engine.pm:584 lib/App/Sqitch/Engine.pm:1046 -#: lib/App/Sqitch/Engine.pm:1088 +#: lib/App/Sqitch/Engine.pm:583 lib/App/Sqitch/Engine.pm:1045 +#: lib/App/Sqitch/Engine.pm:1087 msgid "ok" msgstr "OK" -#: lib/App/Sqitch/Engine.pm:598 +#: lib/App/Sqitch/Engine.pm:597 msgid "Not deployed" msgstr "Non implementato" -#: lib/App/Sqitch/Engine.pm:630 +#: lib/App/Sqitch/Engine.pm:629 #, perl-brace-format msgid "Verify script \"{script}\" failed." msgstr "Script di verifica \"{script}\" fallito" -#: lib/App/Sqitch/Engine.pm:639 +#: lib/App/Sqitch/Engine.pm:638 #, perl-brace-format msgid "Verify script {file} does not exist" msgstr "Lo script di verifica {file} non esiste" -#: lib/App/Sqitch/Engine.pm:681 +#: lib/App/Sqitch/Engine.pm:680 #, perl-brace-format msgid "Conflicts with previously deployed change: {changes}" msgid_plural "Conflicts with previously deployed changes: {changes}" @@ -876,21 +876,21 @@ msgstr[0] "" msgstr[1] "" "Ci sono conflitti con le modifiche precededentemente implementate: {changes}" -#: lib/App/Sqitch/Engine.pm:688 +#: lib/App/Sqitch/Engine.pm:687 #, perl-brace-format msgid "Missing required change: {changes}" msgid_plural "Missing required changes: {changes}" msgstr[0] "Modifica richiesta non trovata: {changes}" msgstr[1] "Modifiche richieste non trovate: {changes}" -#: lib/App/Sqitch/Engine.pm:700 +#: lib/App/Sqitch/Engine.pm:699 #, perl-brace-format msgid "Change \"{changes}\" has already been deployed" msgid_plural "Changes have already been deployed: {changes}" msgstr[0] "La modifica \"{changes}\" è già stata implementata" msgstr[1] "Le modifiche \"{changes}\" sono già state implementate" -#: lib/App/Sqitch/Engine.pm:723 +#: lib/App/Sqitch/Engine.pm:722 #, perl-brace-format msgid "Change \"{change}\" required by currently deployed change: {changes}" msgid_plural "" @@ -902,66 +902,66 @@ msgstr[1] "" "La modifica \"{change}\" è richiesta dalle modifiche correntemente " "implementate: {changes}" -#: lib/App/Sqitch/Engine.pm:746 +#: lib/App/Sqitch/Engine.pm:745 #, perl-brace-format msgid "Invalid dependency: {dependency}" msgstr "Dipendenza {dependency} non valida" -#: lib/App/Sqitch/Engine.pm:882 lib/App/Sqitch/Plan/ChangeList.pm:88 +#: lib/App/Sqitch/Engine.pm:881 lib/App/Sqitch/Plan/ChangeList.pm:88 #, perl-brace-format msgid "" "Change \"{change}\" is ambiguous. Please specify a tag-qualified change:" msgstr "" "La modifica \"{change}\" è ambigua. Per favore indica la modifica con un tag." -#: lib/App/Sqitch/Engine.pm:897 +#: lib/App/Sqitch/Engine.pm:896 msgid "Change Lookup Failed" msgstr "Recupero della modifica fallito" -#: lib/App/Sqitch/Engine.pm:918 +#: lib/App/Sqitch/Engine.pm:917 #, perl-brace-format msgid "Reverting to {change}" msgstr "Ritorno a {change}" -#: lib/App/Sqitch/Engine.pm:919 +#: lib/App/Sqitch/Engine.pm:918 msgid "Reverting all changes" msgstr "Annullo tutte le modifiche" -#: lib/App/Sqitch/Engine.pm:927 +#: lib/App/Sqitch/Engine.pm:926 msgid "The schema will need to be manually repaired" msgstr "Lo schema richiede una riparazione manuale." -#: lib/App/Sqitch/Engine.pm:931 lib/App/Sqitch/Engine.pm:1062 +#: lib/App/Sqitch/Engine.pm:930 lib/App/Sqitch/Engine.pm:1061 msgid "Deploy failed" msgstr "Implementazione fallita" -#: lib/App/Sqitch/Engine.pm:991 +#: lib/App/Sqitch/Engine.pm:990 #, perl-brace-format msgid "Cannot find change {id} ({change}) in {file}" msgstr "Non trovo la modifica {id} ({change}) in {file}" -#: lib/App/Sqitch/Engine.pm:1113 +#: lib/App/Sqitch/Engine.pm:1112 #, perl-brace-format msgid "" "Blocked by another instance of Sqitch working on {dest}; waiting {secs} " "seconds..." msgstr "" -#: lib/App/Sqitch/Engine.pm:1123 +#: lib/App/Sqitch/Engine.pm:1122 #, perl-brace-format msgid "" "Timed out waiting {secs} seconds for another instance of Sqitch to finish " "work on {dest}" msgstr "" -#: lib/App/Sqitch/Engine.pm:1182 +#: lib/App/Sqitch/Engine.pm:1181 #, perl-brace-format msgid "No registry found in {destination}. Have you ever deployed?" msgstr "" "Nessun registro trovato in {destination}. E' mai stata fatta una " "implementazione prima?" -#: lib/App/Sqitch/Engine.pm:1187 +#: lib/App/Sqitch/Engine.pm:1186 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " @@ -970,7 +970,7 @@ msgstr "" "La versione di registro è {old} ma {new} è la più recente conosciuta. Per " "favore aggiorna Sqitch." -#: lib/App/Sqitch/Engine.pm:1193 +#: lib/App/Sqitch/Engine.pm:1192 #, perl-brace-format msgid "" "Registry is at version {old} but latest is {new}. Please run the \"upgrade\" " @@ -979,7 +979,7 @@ msgstr "" "La versione di registro è {old} ma {new} è la più recente conosciuta. Per " "favore esegui il comando \"upgrade\"." -#: lib/App/Sqitch/Engine.pm:1208 +#: lib/App/Sqitch/Engine.pm:1207 #, perl-brace-format msgid "" "Registry version is {old} but {new} is the latest known. Please upgrade " @@ -988,46 +988,46 @@ msgstr "" "La versione di registro è {old} ma {new} è la più recente conosciuta. Per " "favore aggiorna Sqitch." -#: lib/App/Sqitch/Engine.pm:1223 +#: lib/App/Sqitch/Engine.pm:1222 #, perl-brace-format msgid "Cannot upgrade to {version}: Cannot find upgrade script \"{file}\"" msgstr "" "Non posso aggiornare a {version}: non trovo lo script \"{file}\" per " "l'aggiornamento" -#: lib/App/Sqitch/Engine.pm:1230 +#: lib/App/Sqitch/Engine.pm:1229 #, fuzzy, perl-brace-format msgid "Upgrading the Sqitch registry from {old} to {new}" msgstr "Aggiorno il registro {registry} alla versione {version}" -#: lib/App/Sqitch/Engine.pm:1237 +#: lib/App/Sqitch/Engine.pm:1236 #, perl-brace-format msgid "From {old} to {new}" msgstr "Da {old} a {new}" -#: lib/App/Sqitch/Engine.pm:1282 +#: lib/App/Sqitch/Engine.pm:1281 #, fuzzy, perl-brace-format msgid "Checking {destination}" msgstr "Veifico {destination}" -#: lib/App/Sqitch/Engine.pm:1289 +#: lib/App/Sqitch/Engine.pm:1288 #, fuzzy msgid "Nothing to check (no planned or deployed changes)" msgstr "Niente da verificare (nessuna modifica pianificata o implementata)" -#: lib/App/Sqitch/Engine.pm:1302 +#: lib/App/Sqitch/Engine.pm:1301 #, fuzzy, perl-brace-format msgid "Script signatures diverge at change {change}" msgstr "Modifica richiesta non trovata: {changes}" -#: lib/App/Sqitch/Engine.pm:1310 +#: lib/App/Sqitch/Engine.pm:1309 #, perl-brace-format msgid "Failed one check" msgid_plural "Failed {count} checks" msgstr[0] "" msgstr[1] "" -#: lib/App/Sqitch/Engine.pm:1318 +#: lib/App/Sqitch/Engine.pm:1317 #, fuzzy msgid "Check successful" msgstr "Verifica riuscita" @@ -1056,8 +1056,7 @@ msgstr "Non posso creare un link simbolico da {file} a {alias}: {error}" msgid "{command} unexpectedly failed; exit value = {exitval}" msgstr "Il comando {command} ha restituito un exit value inatteso {exitval}" -#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/mysql.pm:274 -#: lib/App/Sqitch/Engine/sqlite.pm:158 +#: lib/App/Sqitch/Engine/firebird.pm:208 lib/App/Sqitch/Engine/sqlite.pm:158 #, perl-brace-format msgid "Sqitch database {database} already initialized" msgstr "Database Sqitch già inizialiatto su {database}" @@ -1109,7 +1108,7 @@ msgstr "" msgid "Database name missing in URI \"{uri}\"" msgstr "Il nome di database non è specificato nell'URI {uri}" -#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:310 +#: lib/App/Sqitch/Engine/pg.pm:213 lib/App/Sqitch/Engine/snowflake.pm:303 #: lib/App/Sqitch/Engine/vertica.pm:139 #, perl-brace-format msgid "Sqitch schema \"{schema}\" already exists" diff --git a/xt/release.md b/xt/release.md index e151540c..d8a50a44 100644 --- a/xt/release.md +++ b/xt/release.md @@ -41,7 +41,7 @@ First, update the sources so that everything is up-to-date. * Update copyright dates if a year has turned over since the last release: ``` sh - grep -ril copyright . | xargs perl -i -pe "s/-2023/-$(date +%Y)/g" + grep -ril copyright . | xargs perl -i -pe "s/-2024/-$(date +%Y)/g" ``` * Make a build and run `xt/dependency_report`: