App-Sqitch
view release on metacpan or search on metacpan
Thanks to Slaven ReziÄ for the report (#858)!
- Added some missing German translations, thanks to @0xflotus (#873).
1.5.0 2025-01-08T03:22:40
- Fix improperly nested Pod headers that were incrementing two levels
relative to their parent headers, which messed with the HTML output on
sqitch.org.
- Banned "[" and "]" in names (changes, tags, projects) because they
muck with dependency parsing of the plan file. Thanks to Žiga Leber for
the bug report (#829).
- Updated the IPC methods that interact with engine clients to raise
exception objects rather than strings, for more consistent error
handling throughout.
- Removed duplicate DBI error handling code from engines and tests.
- Fixed an order of operation issue that prevented Sqitch from detecting
Yugabyte before attempting to create an advisory lock, which resulted
in an error for more recent Yugabyte releases. Thanks to Stefano
Ricciardi for the report (#841).
- Removed a wayward mention of the long-deprecated `SQITCH_URI`
environment variable from the Oracle tutorial. Thanks to Austin Hanson
for the report (#845).
- Improved unexpected error output by including any previous exception.
- Changed the "unknown engine" error to a runtime error, rather than
development time, with a localized error message. The error loading
the engine package and the stack trace remain available by using
triple verbosity (`-vvv`). Thanks to Martin Fischer for the report
(#838).
- Changed the default error code from Oracle `sqlplus` from `SQL.SQLCODE`
to `4`, because otherwise the exit code is returned `modulo 256`,
meaning it can end up `0` for success for an SQL error code like
`ORA-01792`. Selected `4` as the replacement to match the behavior of
Exasol and because `FAILURE` maps to exit code `1`, which has in the
past been more akin to a warning. Thanks to @vectro for the report
(#831).
- Added checks for the existence of deploy and revert files when
deploying and reverting. Previously Sqitch deferred such errors to the
CLIs, but they're never called when using `--log-only`. Thanks to
@vectro and Erik Wienhold for the suggestion (#828).
- Fixed a bug where the MySQL engine failed to properly handle target
URIs with no database name. Thanks to Felix Zedén Yverås for the report
(#821).
- Updated the MySQL engine to omit the `checkit()` function when using
binary logging and Sqitch lacks super user permissions. Thanks to Scott
Edwards for the report and to Janosch Peters for the solution (#824).
- Taught the Snowflake engine to detect when the Sqitch user lacks
permission to create a schema and to skip the creation of the registry
schema. Useful for cases when the registry schema was created in
advance. Thanks to Peter Wimsey for the suggestion (#826).
- Switched the MySQL engine from DBD::mysql to DBD::MariaDB for better
compatibility with older versions of the MySQL client library and for
its Unicode improvements. Thanks to Mark Tyrrell for the report and
@tiberiusferreira and Perl Monks `1nickt` and`InfiniteSilence` for the
feedback (#825).
1.4.1 2024-02-04T16:35:32Z
- Removed the quoting of the role and warehouse identifiers that was
added to the Snowflake engine in v1.4.0. Turns out Snowflake allows a
warehouse to be specified in a different database, in which case dots
are valid in the name and should not be quoted! So users must properly
quote when necessary, but added notes to `sqitchtutorial-snowflake.pod`
on the need to use URI escapes for special characters. Thanks to
Patrick Sabo for the find, and to @marc-marketparts for validating
that URI encoding works.
- Added notes on URL encoding database URLs to `sqitch-target.pod`, the
main reference for database URLs in the Sqitch documentation.
- Fixed the output of the list of changes to be deployed or reverted to
actually require `--verbose` twice, as described in the v1.4.0 changes,
and not just once. Thanks to Erik Wienhold for the PR (#785)!
- Removed the duplicate change name from the output of the list of
changes to be deployed or reverted with `-VV`. Thanks to Erik Wienhold
for the PR (#787)!
- Fixed invalid template resolution when adding a singe change to
multiple engines at once. Thanks to Christian Riedel for the detailed
bug report (#795)!
- Fixed Oracle and Firebird test failures due to incorrect use of `chmod`.
Thanks to Slaven ReziÄ for the report and the fix (#807)!
- Tests now require Test::Warn 0.31 or later, as newline handling issues
cause test failures in earlier versions. Thanks to Slaven ReziÄ for the
test reports and for identifying the issue.
- Updated the locale configuration to fix issues in more recent versions
of Perl, and added tests to ensure that the sqitch CLI executes and
properly emits localized messages (except on Windows, where the language
codes are incompatible).
- Fixed an issue where the MySQL engine failed to recognize the MariaDB
`mysql` client installed by Homebrew on macOS. Thanks to Carlos Ramos
for the bug report and PR (#791)!
1.4.0 2023-08-01T23:37:30Z
- Fixed Snowflake warehouse and role setup to properly quote identifiers
unless they're valid unquoted identifiers or already quoted. Thanks to
@marc-marketparts for the report (#685).
- Fixed a bug reworking a change when a rework directory is configured
but not created. Thanks to @jfeaver for the report (#686).
- Output the list of changes to be deployed or reverted when `--verbose`
is specified at least twice. Thanks to @vectro for the PR (#702).
- Fixed the formatting of the log and plan commands to allow empty or `0`
separators in lists of things (such as `%{0}t` for a list of tags).
Thanks to @web-vertalo for the pull request (#703).
- Updated the MySQL Tutorial to use 5.7 features. Thanks to Vlad
Safronov for the PR (#705).
- Deprecated the `no_prompt` and `no_prompt` attributes of
App::Sqitch::Engine in favor of passing booleans to the `revert` and
`verify` methods. The attributes still exist for reverse compatibility,
but now emit warnings and will be removed in the future. Thanks to
Thanks to @vectro for the PR (#704).
- Added a warning for a double extension on the file names created
by the `add` command. Thanks to @blairjordan for the PR (#724)!
- Added the `revert.strict` boolean configuration variable which, when
set to true, requires the specification of a change to revert to. It
also disables the `rebase` and `checkout` commands, though the
`rebase.strict` and `checkout.strict` variables, respectively, may
override it. Use `revert.strict` to prevent accidental reverts in
sensitive environments. Thanks to @vectro for the PR (#719; revised in
#735)!
- Fixed test failures due to a bug fix in the Perl URI module
(libwww-perl/URI#13). Thanks to @bobfang for the report (#744)!
- Fixed test failures due to a change in the generation of DBI DSN by
URI::Oracle introduced by libwww-perl/URI-db#23.
- Added a format option `%F` to `sqitch plan` that prints the path for
the deploy file for each migration in the plan.
- Changed the default location for the Oracle `sqlplus` client when the
( run in 3.023 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )