- updated to 1.5.2 see /usr/share/doc/packages/perl-App-Sqitch/Changes 1.5.2 2025-04-29T15:13:35Z - Added missing German translations, thanks to @0xflotus for the PR (#873)! - Fixed bug where the location of reworked script files did not respect the `deploy_dir`, `revert_dir`, or `verify_dir` options. Thanks to Neil Freeman for the report (#875)! - Updated the MySQL engine's installation of the `checkit()` function so that it no longer depends on permission-checking, since the current user may not have such permission. It instead attempts to create the function and ignores a failure due to a lack of permission. Thanks to Alastair Douglas for the report and solution (#874)! - Added missing CockroachDB templates. Thanks to @Peterbyte for the report (#878)! - Removed support for the `SNOWSQL_PORT` environment variable, which has long been deprecated by Snowflake and likely never did anything. - Fixed the quoting of the role and schema names on connecting to Snowflake, which was silently failing and thus not properly using the registry schema, which lead to a failure to find the registry. Broken in v1.5.1. - Added redaction of passwords from Snowflake URL query parameters in the display URL. Any query parameter matching `pwd` will now appear as "REDACTED". - Expanded the documentation of Snowflake key pair authentication in `sqitch-authentication.pod` to recommend setting sensitive ODBC parameters in an `odbc.ini` file rather than connection URL query parameters. - Switched to key pair authentication in the Snowflake CI workflows. - Fixed another test failure with some Firebird configurations and improved diagnostic output when an engine cannot be integration-tested. OBS-URL: https://build.opensuse.org/request/show/1278755 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-App-Sqitch?expand=0&rev=10
1620 lines
98 KiB
Plaintext
1620 lines
98 KiB
Plaintext
-------------------------------------------------------------------
|
|
Wed Apr 30 05:33:54 UTC 2025 - Tina Müller <timueller+perl@suse.de>
|
|
|
|
- updated to 1.5.2
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
1.5.2 2025-04-29T15:13:35Z
|
|
- Added missing German translations, thanks to @0xflotus for the PR
|
|
(#873)!
|
|
- Fixed bug where the location of reworked script files did not respect
|
|
the `deploy_dir`, `revert_dir`, or `verify_dir` options. Thanks to Neil
|
|
Freeman for the report (#875)!
|
|
- Updated the MySQL engine's installation of the `checkit()` function so
|
|
that it no longer depends on permission-checking, since the current
|
|
user may not have such permission. It instead attempts to create the
|
|
function and ignores a failure due to a lack of permission. Thanks to
|
|
Alastair Douglas for the report and solution (#874)!
|
|
- Added missing CockroachDB templates. Thanks to @Peterbyte for the
|
|
report (#878)!
|
|
- Removed support for the `SNOWSQL_PORT` environment variable, which has
|
|
long been deprecated by Snowflake and likely never did anything.
|
|
- Fixed the quoting of the role and schema names on connecting to
|
|
Snowflake, which was silently failing and thus not properly using the
|
|
registry schema, which lead to a failure to find the registry. Broken
|
|
in v1.5.1.
|
|
- Added redaction of passwords from Snowflake URL query parameters in the
|
|
display URL. Any query parameter matching `pwd` will now appear as
|
|
"REDACTED".
|
|
- Expanded the documentation of Snowflake key pair authentication in
|
|
`sqitch-authentication.pod` to recommend setting sensitive ODBC
|
|
parameters in an `odbc.ini` file rather than connection URL query
|
|
parameters.
|
|
- Switched to key pair authentication in the Snowflake CI workflows.
|
|
- Fixed another test failure with some Firebird configurations and
|
|
improved diagnostic output when an engine cannot be integration-tested.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 17 05:33:32 UTC 2025 - Tina Müller <timueller+perl@suse.de>
|
|
|
|
- updated to 1.5.1 (v1.5.1)
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
1.5.1 2025-03-16T26:55:17Z
|
|
- Fixed a bug introduced in v1.5.0 where the MySQL engine connected to
|
|
the target database instead of the registry database. Thanks to
|
|
@tiberiusferreira for the report (#862)!
|
|
- Fixed test failures with some Exasol and Firebird configurations.
|
|
Thanks to Slaven Rezić for the report (#858)!
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 8 05:31:07 UTC 2025 - Tina Müller <timueller+perl@suse.de>
|
|
|
|
- updated to 1.5.0 (v1.5.0)
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
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).
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Feb 5 03:06:17 UTC 2024 - Tina Müller <timueller+perl@suse.de>
|
|
|
|
- updated to 1.4.1
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
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)!
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Aug 2 03:06:14 UTC 2023 - Tina Müller <timueller+perl@suse.de>
|
|
|
|
- updated to 1.4.0
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
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
|
|
`ORACLE_HOME` environment variable is set. It now returns either
|
|
`$ORACLE_HOME/bin/sqlplus` or `$ORACLE_HOME/sqlplus` if it exists
|
|
and is executable (and ends in `.exe` on Windows). Otherwise it simply
|
|
returns `sqlplus` as before, assuming it will be found in the path.
|
|
Thanks to @vectro for the suggestion (#747).
|
|
- Increased the required version of DBI to 1.631 or higher and removed
|
|
a MySQL engine workaround for older versions.
|
|
- Added detection of a missing registry schema on connect and conditions
|
|
to avoid querying it when it does not exist. Fixes an issue where
|
|
Sqitch might find a project record in the current schema instead of the
|
|
expected registry schema. Thanks to @vectro for the report and
|
|
investigation (#668)!
|
|
- Fixed Snowflake and MySQL to properly raise errors on session query
|
|
failures immediately after connection.
|
|
- Fixed the handling of unique violations for deploy script hash
|
|
uniqueness so that it no longer returns a database error but properly
|
|
reports the issue in a more human-friendly error message. Thanks to
|
|
Stefan Badenhorst for the reminder (#630).
|
|
- Updated the registry SQL scripts for Vertica to always enable primary
|
|
key and unique constraints. Unique constraints are now enabled for
|
|
all database engines except Exasol and Snowflake.
|
|
- Dropped support for Vertica 7.1, as unique constraint enforcement was
|
|
not added until Vertica 7.2.
|
|
- Increased minimum SQLite versions to 3.8.6, when unique constraint
|
|
enforcement was added.
|
|
- Removed remaining uses of the smartmatch operator, thus eliminating
|
|
the Perl 5.38 warnings about its deprecation. (#769)
|
|
- Added Cockroach to the list of valid engines recognized in command-line
|
|
arguments (and a test to ensure new engines won't be omitted in the
|
|
future). Thanks to @NOBLES5E for the spot (#772)!
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 13 08:11:48 UTC 2022 - Dirk Stoecker <opensuse@dstoecker.de>
|
|
|
|
- updated to 1.3.1
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
1.3.1 2022-10-01T18:49:30Z
|
|
- Fixed a bug introduced in v1.3.0 where the Postgres engine would
|
|
always pass the port to `psql`, thus ignoring the `PGPORT` environment
|
|
variable. Thanks to Cam Feenstra for the spot (#675)!
|
|
- Fixed test failures on OSes where the local time zone cannot be
|
|
determined. Thanks to Slaven Rezić for the test reports, and to
|
|
Dave Rolsky for the solution (#672).
|
|
- Updated the MySQL deploy/revert lock to be specific to the target
|
|
database. This allows multiple instances of Sqitch to run at the
|
|
same time on the same server as long as they're connecting to different
|
|
databases. Thanks to Dmytro Kh for the report and discussion of the
|
|
options (#670).
|
|
- Fixed test failures where DBD::Mem was not installed. Likely only
|
|
occurred on some CPAN Testers nodes. Thanks to Slaven Rezić for those
|
|
(#673).
|
|
- Banned the backslash character (`\`) in change and tag names. It would
|
|
be ignored on Unix-style systems, but create unexpected subdirectories
|
|
on Windows systems.
|
|
- Banned the slash character (`/`) in tag names. They're still allowed
|
|
in change names to enable script organization, but can wreak havoc
|
|
when used in tag names. Thanks to @ewie for the report (#680)!
|
|
1.3.0 2022-08-12T22:09:13Z
|
|
- Fixed an issue when testing Firebird on a host with Firebird installed
|
|
but no `isql`, and when using a local Firebird (e.g., the Engine12
|
|
provider), which allows only one connection at a time. Thanks to Slaven
|
|
Rezić for the the reproducible configuration (#597).
|
|
- Tweaked the Postgres engine to support Yugabyte. The only unsupported
|
|
features are explicit locks, so users need to manually ensure that only
|
|
one instance of Sqitch is updating the cluster at a time.
|
|
- Added support for CockroachDB. Almost exactly the same as for Postgres,
|
|
so the new App::Sqitch::Engine::cockroach class extends
|
|
App::Sqitch::Engine::pg to make a few changes. The SQL files with
|
|
the registry DDL varies in a few ways, so they're separate.
|
|
- Now require URI::db v0.20 for Cockroach and Yugabyte URI support.
|
|
- Dropped support for MySQL 5.0.
|
|
- Added explicit sorting for aggregated lists (such as the tags associated
|
|
with a commit) to the MySQL, Exasol, Snowflake, and Postgres (8.4 and
|
|
higher) engines.
|
|
- Fixed slow deploys on MariaDB thanks to fractional timestamp support
|
|
added in 5.03.05. Thanks to @rbrigot for the PR (#658)!
|
|
- Fixed a bug where destination locking failed on the first deploy to
|
|
MySQL. Bug introduced along with destination locking in v1.2.0.
|
|
Thanks Tom Bloor the report and to Alberto Simões for the help
|
|
replicating the issue (#601).
|
|
- Removed the `sqitch engine update-config` action, originally added for
|
|
compatibility reasons in 2014, and the prompt to use it was removed as
|
|
of 0.9999 in 2019.
|
|
- Fixed a warning when searching for the Firebird client on Windows.
|
|
1.2.1 2021-12-05T19:59:45Z
|
|
- Updated all the live engine tests, aside from Oracle, to test with
|
|
unique registry names, so as to avoid conflicts when multiple
|
|
instances are being tested at once. Thanks to Slaven Rezić for the
|
|
report (#597).
|
|
- Removed `local` directory from the distribution, accidentally included
|
|
in v1.2.0. Thanks to gregor herrmann for the report (#600).
|
|
1.2.0 2021-11-20T22:45:00Z
|
|
- Fixed partitioned search for deployed changes on Oracle and Exasol to
|
|
correctly support plans with more than 250 changes. Thanks to @Nicqu
|
|
for the report (#521).
|
|
- DBI connections to the registry will now be set to trace level one
|
|
when a verbosity level of three or higher is passed to Sqitch
|
|
(i.e., `sqitch -vvv`). Thanks to @wkoszek for the suggestion (#155).
|
|
- Renamed the "master" branch to "main" and updated all relevant
|
|
references.
|
|
- Fixed the parsing of the Snowflake account name from the target URL
|
|
to that it no longer strips out the region and cloud platform parts.
|
|
Also deprecated the use of the region, host, and port config and
|
|
environment variables. This is to comply with the new account name
|
|
format. Thanks to @ldsingh00 for the report (#544).
|
|
- The checkout command will now show a usage statement when no branch
|
|
name is passed to it, rather than a series of warnings and a Git error.
|
|
Thanks to François Beausoleil for the report (#561).
|
|
- The checkout command now works when operating on a Sqitch project in
|
|
a subdirectory of a Git project. Thanks to François Beausoleil for the
|
|
report and suggested fix (#560).
|
|
- Fixed a failing bundle test when a top directory was configured in the
|
|
user or system configuration. Thanks to @CodingMinds for the spot
|
|
(#587).
|
|
- Added support to the Exasol engine for the `AUTHMETHOD` query parameter
|
|
(to allow Open ID authentication) and the `SSLCERTIFICATE=SSL_VERIFY_NONE`
|
|
query parameter to disable SSL verification. Thanks to Torsten Glunde
|
|
for the report (#588).
|
|
- Fixed "Use of uninitialized value $engine in concatenation" error when
|
|
Sqitch is unable to determine the engine when writing a plan file. Only
|
|
happens in the rare case that the core.engine value is not set.
|
|
- Improved the error message when attempting to update a plan file and no
|
|
project pragma is present. Thanks to Laurentiu Diaconu for the report
|
|
(#577).
|
|
- Fixed the error message when attempting to deploy a change that has
|
|
already been deployed to display the name of the change, rather than a
|
|
memory address. Thanks to Neil Mayhew for the report (#579).
|
|
- Added destination locking, currently implemented for PostgresQL and
|
|
MySQL. On starting a deploy or revert, Sqitch attempts to "lock the
|
|
destination" using advisory locks, to ensure that only one instance of
|
|
Sqitch makes changes to the database at any one time. This complements
|
|
the existing locking, which applies as each change is deployed or
|
|
reverted, as that pattern led to failures when multiple instances of
|
|
Sqitch were working at once. Thanks to Neil Mayhew for the report
|
|
(#579).
|
|
- Added the --lock-timeout option to the deploy, revert, rebase, and
|
|
checkout commands, to allow for shorter or longer times to wait for an
|
|
exclusive target database advisory lock for engines that support it.
|
|
Defaults to 60 seconds.
|
|
- Fixed the behavior of the plan command's `--max-count` option when used
|
|
with `--reverse` to show the proper items. Thanks to Adrian Klaver for
|
|
the report (#517).
|
|
- Fixed an issue that could cause bugs with the `check` command on
|
|
Firebird, Exasol, Oracle, and Vertica. Broken since the `check` command
|
|
was added in v1.1.0.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Nov 5 16:34:29 UTC 2020 - Dirk Stoecker <opensuse@dstoecker.de>
|
|
|
|
- updated to 1.1.0
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
1.1.0 2020-05-17T16:20:07Z
|
|
- Fixed Perl Pod errors, thanks to a pull request from Mohammad S Anwar
|
|
(#470).
|
|
- Fixed test failures when running with the localization set to German
|
|
or Italian. Thanks to Slaven Rezić for the report (#472).
|
|
- Fixed an issue when the full name of the current user is not set, so
|
|
that it properly falls back on the username. Thanks to Slaven Rezić and
|
|
Matthieu Foucault for the report and testing various fixes (#473).
|
|
- Eliminated an error when using the `-t` option to specify a target, due
|
|
to a missing dependency declaration in the Target class. Thanks to
|
|
Clinton Adams for the fix (#509)!
|
|
- Updated the IPC::System::Simple Win32 workaround added in 0.9999 to
|
|
properly support released versions of IPC::System::Simple. This fixes
|
|
errors running the database command-line clients on Windows (#503).
|
|
- Sqitch now only passes the `--password` option to the MySQL client if
|
|
it was not read from the `.my.cnf` file, as it's more secure to let
|
|
the client use `.my.cnf`, and it eliminates a warning from recent
|
|
versions of the client. Thanks to Kiel R Stirling for the fix (#484)!
|
|
- Added a note to the tutorials to skip setting the `engine.$engine.client`
|
|
config when using the Docker image.
|
|
- Added the new `check` command, which compares the SHA1 hashes of the
|
|
deploy scripts to the database, and reports if any have been modified
|
|
since they were deployed. Thanks to Matthieu Foucault for the pull
|
|
request and diligent work on this feature (#477)!
|
|
- Added the `--modified` option to the `rebase` and `revert` commands, to
|
|
revert to the earliest change with a modified deploy script. Handy for
|
|
rapid rebasing during iterative development cycles. Thanks to Matthieu
|
|
Foucault for this feature (#477)!
|
|
- Fixed an issue where the Snowflake engine would complain about not
|
|
finding the account name even for commands that don't need them, such
|
|
as `init`. Thanks to Stack Overflow user vbp13 for the report (#502).
|
|
|
|
1.0.0 2019-06-04T12:56:22Z
|
|
- Fixed test failure due to a hard-coded system error that may be
|
|
localized on non-en-US hosts. Thanks to Slaven Rezić for the catch
|
|
(#427).
|
|
- Now require Test::MockModule 0.17 to silence a warning during testing.
|
|
Thanks to Slaven Rezić for the suggestion.
|
|
- Fixed an error when Sqitch is run with no arguments. Thanks to Henrik
|
|
Tudborg for the report (#428).
|
|
- Fixed missing dependency on IO::Pager in the distribution metadata.
|
|
- Removed use of File::HomeDir, thanks to a PR from Karen Etheridge
|
|
(#433).
|
|
- Updated the tagline from "Sane database change management" to "Sensible
|
|
database change management" out of sensitivity to those subject to
|
|
mental illness (#435).
|
|
- Removed double-quoting of SQLite commands on Windows, inadvertently
|
|
added by the workaround for Windows quoting in v0.9999.
|
|
- Fixed a Snowflake issue where Sqitch failed to recognize the proper
|
|
error code for a missing table and therefore an uninitialized registry.
|
|
Thanks to @lerouxt and @kulmam92 for the report and fix (#439).
|
|
- Added check for project initialization when no engine config can be
|
|
found. When run from a directory with no configuration, Sqitch now
|
|
reports that the project is not initialized instead of complaining
|
|
about a lack of engine config (#437).
|
|
- Documented Snowflake key pair authentication in
|
|
`sqitch-authentication`, as well as `$SNOWSQL_PRIVATE_KEY_PASSPHRASE`
|
|
in `sqitch-environment`. Thanks to Casey Largent for figuring it out
|
|
(#441).
|
|
- Added the German localization. Thanks to Thomas Iguchi for the pull
|
|
request (#451).
|
|
- Renamed the French localization from "fr" to "fr_FR", so that systems
|
|
will actually find it.
|
|
- Added the `ask_yes_no()` method as a replacement for `ask_y_n()`, which
|
|
is now deprecated. The new method expects localized responses from the
|
|
user when translations are provided. Defaults to the English "yes" and
|
|
"no" when no translation is available. Suggested by German translator
|
|
Thomas Iguchi (#449).
|
|
- Fixed a bug where only project without a URI was allowed in the
|
|
registry. Thanks to Conding-Brunna for the report (#450).
|
|
- Clarified the role of project URIs for uniqueness: They don't allow
|
|
multiple projects with the same name, but do prevent the deployment of
|
|
a project with the same name but different URI.
|
|
- Fixed an issue where target variables could not be found when a target
|
|
name was not lowercase. Thanks to @maximejanssens for the report
|
|
(#454).
|
|
- Now require Config::GitLike 1.15 or higher.
|
|
- Fixed the indentation of variables emitted by the `show` actions of the
|
|
`target` and `engine` commands, fixing a "Negative repeat count does
|
|
nothing" warning in the process. Thanks to @maximejanssens for the
|
|
report (#454).
|
|
- Fixed a Snowflake test failure when the current system username has a
|
|
space or other character requiring URI escaping. Thanks to Ralph
|
|
Andrade for the report (#463).
|
|
- Fixed an issue where a wayward newline in some versions of SQLite
|
|
prevented Sqitch from parsing the version. Thanks to Kivanc Yazan
|
|
for the report (#465) and the fix (#465)!
|
|
- Fixed an error when Sqitch was run on a system without a valid
|
|
username, such as some Docker environments. Thanks to Ferdinand Salis
|
|
for the report (#459)!
|
|
- When Sqitch finds the registry does not exist on PostgreSQL, it now
|
|
sends a warning to the PostgreSQL log reporting that it will initialize
|
|
the database. This is to reduce confusion for folks watching the
|
|
PostgreSQL error log while Sqitch runs (#314).
|
|
|
|
0.9999 2019-02-01T15:29:40Z
|
|
[Bug Fixes]
|
|
- Fixed a test failure with the MySQL max limit value, mostly exhibited
|
|
on BSD platforms.
|
|
- Removed fallback in the PostgreSQL engine on the `$PGUSER` and
|
|
`$PGPASSWORD` environnement variables, as well as the system username,
|
|
since libpq does all that automatically, and collects data from other
|
|
sources that we did not (e.g., the password and connection service
|
|
files). Thanks to Tom Bloor for the report (issue #410).
|
|
- Changed dependency validation to prevent an error when a change required
|
|
from a different project has been reworked. Previously, when requiring a
|
|
change such as `foo:greeble`, Sqitch would raise an error if
|
|
`foo:greeble` was reworked, suggesting that the dependency be
|
|
tag-qualified to eliminate ambiguity. Now reworked dependencies may be
|
|
required without tag-qualification, though tag-qualification should still
|
|
be specified if functionality as of a particular tag is required.
|
|
- Added a workaround for the shell quoting issue on Windows. Applies to
|
|
IPC::System::Simple 1.29 and lower. See
|
|
[pjf/ipc-system-simple#29](https://github.com/pjf/ipc-system-simple/pull/29)
|
|
for details (#413).
|
|
- Fixed an issue with the MariaDB client where a deploy, revert, or
|
|
verify failure was not properly propagated to Sqitch. Sqitch now passes
|
|
`--abort-source-on-error` to the Maria `mysql` client to ensure that
|
|
SQL errors cause the client to abort with an error so that Sqitch can
|
|
properly handle it. Thanks to @mvgrimes for the original report and,
|
|
years later, the fix (#209).
|
|
- Fixed an issue with command argument parsing so that it truly never
|
|
returns a target without an engine specified, as documented.
|
|
- Removed documentation for methods that don't exist.
|
|
- Fixed test failures due to a change in Encode v2.99 that's stricter
|
|
about `undef` arguments that should be defined.
|
|
|
|
[Improvements]
|
|
- The Snowflake engine now consults the `connections.warehousename`,
|
|
`connections.dbname`, and `connections.rolename` variables in the
|
|
SnowSQL configuration file (`~/.snowsql/config`) before falling back on
|
|
the hard-coded warehouse name "sqitch" and using the system username as
|
|
the database name and no default for the role.
|
|
- Switched to using a constant internally to optimize windows-specific
|
|
code paths at compile time.
|
|
- When `deploy` detects undeployed dependencies, it now eliminates
|
|
duplicates before listing them in the error message.
|
|
- Now requiring IO::Pager v0.34 or later for its more consistent
|
|
interface.
|
|
- Added notes about creating databases to the tutorials. Thanks to Dave
|
|
Rolsky for the prompt (#315).
|
|
- Added a status message to tell the user when the registry is being
|
|
updated, rather than just show each individual update. Thanks to Ben
|
|
Hutton for the suggestion (#276).
|
|
- Added support for a `$SQITCH_TARGET` environment variable, which takes
|
|
precedence over all other target specifications except for command-line
|
|
options and arguments. Thanks to @mvgrimes for the suggestion (#203).
|
|
- Fixed target/engine/change argument parsing so it won't automatically
|
|
fail when `core.engine` isn't set unless no targets are found. This
|
|
lets engines be determined strictly from command-line arguments --
|
|
derived from targets, or just listed on their own -- whether or not
|
|
`core.engine` is set. This change eliminates the need for the
|
|
`no_default` parameter to the `parse_args()` method of App::Sqitch
|
|
Command. It also greatly reduces the need for the core `--engine`
|
|
option, which was previously required to work around this issue (see
|
|
below for its removal).
|
|
- Refactored config handling in tests to use a custom subclass of
|
|
App::Sqitch::Config instead of various mocks, temporary files, and the
|
|
like.
|
|
- Added advice to use the PL/pgSQL `ASSERT()` function for verify scripts
|
|
to the Postgres tutorial. Thanks to Sergii Tkachenko for the PR (#425).
|
|
|
|
[Target Variables]
|
|
- The `verify` command now reads `deploy.variables`, and individual
|
|
`verify.variables override `deploy.variables`, on the assumption that
|
|
the verify variables in general ought to be the same as the deploy
|
|
variables. This makes `verify` variable configuration consistent with
|
|
`revert` variable configuration.
|
|
- Variables set via the `--set-deploy` option on the `rebase` and
|
|
`checkout` commands no longer apply to both reverts and deploys, but
|
|
only deploys. Use the `--set` option to apply a variable to both
|
|
reverts and deploys.
|
|
- Added support for core, engine, and target variable configuration. The
|
|
simplest way to use them is via the `--set` option on the `init`,
|
|
`engine`, and `target` commands. These commands allow the configuration
|
|
of database client variables for specific engines and targets, as well
|
|
as defaults that apply to all change execution commands (`deploy`,
|
|
`revert`, `verify`, `rebase`, and `checkout`). The commands merge the
|
|
variables from each level in this priority order:
|
|
* `--set-deploy` and `--set-revert` options on `rebase` and `checkout`
|
|
* `--set` option
|
|
* `target.$target.variables`
|
|
* `engine.$engine.variables`
|
|
* `deploy.variables`, `revert.variables`, and `verify.variables`
|
|
* `core.variables`
|
|
See `sqitch-configuration` for general documentation of of the
|
|
hierarchy for merging variables and the documentation for each command
|
|
for specifics.
|
|
|
|
[Options Unification]
|
|
- Added the `--chdir`/`--cd`/`-C` option to specify a directory to change
|
|
to before executing any Sqitch commands. Thanks to Thomas Sibley for
|
|
the suggestion (#411).
|
|
- Added the `--no-pager` option to disable the pager (#414).
|
|
- Changed command-line parsing to allow core and command options to
|
|
appear anywhere on the line. Previously, core options had to come
|
|
before the command name, and command options after. No more. The caveat
|
|
is that command options that take arguments should either appear after
|
|
the command or use the `--opt=val` syntax instead of `--opt val`, so
|
|
that Sqitch doesn't think `val` is the command. Even in that case, it
|
|
will search the rest of the arguments to find a valid command.
|
|
However, to minimize this challenge, the documentation now suggests
|
|
and demonstrates putting all options after the command, like so:
|
|
`sqitch [command] [options]`.
|
|
- Simplified and clarified the distinction between core and command
|
|
options by removing all options from the core except those that affect
|
|
output and runtime context. The core options are:
|
|
* -C --chdir --cd <dir> Change to directory before performing any actions
|
|
* --etc-path Print the path to the etc directory and exit
|
|
* --no-pager Do not pipe output into a pager
|
|
* --quiet Quiet mode with non-error output suppressed
|
|
* -V --verbose Increment verbosity
|
|
* --version Print the version number and exit
|
|
* --help Show a list of commands and exit
|
|
* --man Print the introductory documentation and exit
|
|
- Relatedly, single-letter core options will now always be uppercase,
|
|
while single-letter command options will be lowercase. As such, `-V`
|
|
has been added as an alias for `--version`, although `-v` remains for
|
|
now, undocumented. It may be removed in the future should a compelling
|
|
use for `-v` in a command be discovered.
|
|
- All other options have been moved to the commands they affect. Their
|
|
use should remain mostly unchanged now that command options are parsed
|
|
from anywhere on the command-line, although we recommend that all
|
|
options come after commands. The options were moved as follows:
|
|
* `--registry`, `--client`, `--db-name`, `--db-user`, `--db-host`, and
|
|
`--db-port` (and their aliases) have been moved to the `checkout`,
|
|
`deploy`, `log`, `rebase`, `revert`, `status`, `upgrade`, and
|
|
`verify` commands.
|
|
* `--plan-file` and `--top-dir` (deprecated; see below) have been moved
|
|
to the `add`, `bundle`, `checkout`, `deploy`, `rebase`, `revert`,
|
|
`rework`, `show`, `status`, `tag`, and `verify` commands. They were
|
|
already supported by the `init`, `engine`, and `target` commands
|
|
(where `--top-dir` is not deprecated).
|
|
- Because some command options conflicted with core options, a few
|
|
options have been removed altogether, including:
|
|
* The `--verbose` option on the `--engine` and `--target` commands has
|
|
been removed, but no visible change should be apparent, since those
|
|
commands now read the core `--verbose` option.
|
|
* The undocumented `--dir` alias for `--top-dir` has been removed, as
|
|
it conflicted with the option of the same name but different meaning
|
|
in the `init`, `engine`, and `target` commands.
|
|
* The `-d` alias for `--set-deploy` in the `rebase` and `checkout`
|
|
commands has been changed to `-e` so as not to conflict with the `-d`
|
|
alias for `--db-name`.
|
|
* Added tests for all commands to ensure none of their options conflict
|
|
with core options. Will help prevent conflicts in the future.
|
|
|
|
[Deprecations & Removals]
|
|
- Deprecated the `--top-dir` option in favor of `--chdir` with a warning
|
|
except when used for configuration in the `init`, `engine`, and
|
|
`target` commands.
|
|
- Removed the core `--deploy-dir`, `--revert-dir`, and `--verify-dir`
|
|
options, which have been deprecated and triggering warnings since
|
|
v0.9993 (August 2015). The `--dir` option to the `init`, `engine`, and
|
|
`target` commands remains the favored interface for specifying script
|
|
directories.
|
|
- Removed the deprecated core `--engine` option. The `init` command still
|
|
supports it, while other commands are able to parse the engine name as
|
|
an argument --- e.g., `sqitch deploy mysql` --- or implicitly as part
|
|
of a target, as in `sqitch revert db:pg:tryme`. When Sqitch is unable
|
|
to determine the engine for a command, the error message no longer
|
|
mentions `--engine` and instead suggests specifying the engine via the
|
|
target. This option never triggered an error, but demonstration of its
|
|
use has been limited to `init` examples.
|
|
- Removed support for reading the `core.$engine` configuration, which has
|
|
been deprecated with warnings in favor of `engine.$engine` since 0.997
|
|
(November 2014). The `sqitch engine update-config` action remains
|
|
available to update old configurations, but may be removed in the
|
|
future.
|
|
- Removed the `--deploy`, `--revert`, and `--verify` options on the `add`
|
|
command, as well as their `--no-*` variants. They have been deprecated
|
|
with warnings in favor of the `--with` and `--without` options since
|
|
v0.990 (January 2014).
|
|
- Removed the `--deploy-template`, `--revert-template`, and
|
|
`--verify-template` options to the `add` command. They have been
|
|
deprecated with warnings in favor of the `--use` option since v0.990
|
|
(January 2014).
|
|
- Removed the `add.deploy_template`, `add.revert_template`, and
|
|
`add.verify_template` configuration settings. They have been deprecated
|
|
with warnings in favor of the `add.templates` configuration section
|
|
since v0.990 (January 2014).
|
|
- Removed the `@FIRST` and `@LAST` symbolic tags, which have been
|
|
deprecated with warnings in favor of `@ROOT` and `@HEAD`, respectively,
|
|
since 0.997 (November 2014).
|
|
- Removed the command-specific options with the string "target" in them,
|
|
such as `--to-target`, `--upto-target`, which have been deprecated with
|
|
warnings in in favor of options containing the string "change", such as
|
|
`--to-change` and `--upto-change`, since v0.997 (November 2014).
|
|
- Remove the `engine` and `target` command `set-*` actions and their
|
|
corresponding methods, which have been deprecated in favor of the
|
|
`alter` action since v0.9993 (August 2015).
|
|
- Removed the automatic updating of change and tag IDs in the Postgres
|
|
engine. This functionality was added in v0.940 (December 2012), when
|
|
Postgres was the only engine, and the SHA-1 hash for change and tag IDs
|
|
was changed. There were very few deployments at the time, and all
|
|
should long since have been updated.
|
|
|
|
[API Changes]
|
|
- Added the URI-overriding parameters `user`, `host`, `port`, and
|
|
`dbname` to App::Sqitch::Target so that command options can be used to
|
|
easily set them.
|
|
- Added support for passing attribute parameters to the `all_targets`
|
|
group constructor on App::Sqitch::Target, so that command-line options
|
|
can be used to assign attributes to all targets read from the
|
|
configuration.
|
|
- Aded the `target_params` method to App::Sqitch::Command and updated all
|
|
commands to use it when constructing targets. This allows commands to
|
|
define options for Target parameters, as required for moving options to
|
|
commands as described above.
|
|
- Added the `class_for` method to App::Sqitch::Command so that the new
|
|
options parser described above can load a command class without
|
|
instantiating an instance. Useful for searching command-line arguments
|
|
for a command name.
|
|
- Added the `create` constructor to App::Sqitch::Command to let Sqitch
|
|
instantiate an instance of a command once it finds one via `class_for`.
|
|
Previously, Sqitch used the `load` method, which handled the
|
|
functionality of both `class_for` and `create`. That method still
|
|
exists but is used only in tests.
|
|
- Added the ConnectingCommand role to define database connection options
|
|
for the commands that need them.
|
|
- Added the ContextCommand role to define command options for the
|
|
location of the plan file and top directory. This is also where use of
|
|
the deprecated form of `--top-dir` triggers a warning.
|
|
- Removed the `verbosity` attribute from App::Sqitch::Command::engine and
|
|
App::Sqitch::Command::target, since the `--verbose` option is no longer
|
|
needed. These commands now rely on the core `--verbose` option.
|
|
- Removed the copying of core options from the target class and
|
|
TargetConfigCommand role, since the attributes fetched from there are
|
|
no longer core options, but provided as attribute parameters to the
|
|
constructors by commands.
|
|
- Removed documentation for the optional `config` parameter to the
|
|
`all_targets` constructor of App::Sqitch::Target, since it was never
|
|
used by Sqitch. It always fetched the config from the required `sqitch`
|
|
parameter. Support for the `config` parameter has not been removed,
|
|
since third-parties might use it.
|
|
- Removed the `set_*` methods in the `engine` and `target` commands,
|
|
which have been deprecated in favor of the new `alter` method since
|
|
v0.9993 (August 2015).
|
|
- Removed the `old_id` and `old_info` methods from Change and Tag, which
|
|
date from v0.940 (December 2012), and were provided only to allow
|
|
existing Postgres databases to be updated from the old to new ID
|
|
format, now removed. There should be no other use case for these
|
|
methods.
|
|
|
|
0.9998 2018-10-03T20:53:58Z
|
|
- Fixed an issue where Sqitch would sometimes truncate the registry
|
|
version number fetched from MySQL, most likely because the Perl runtime
|
|
was using 32-bit integers. Fixed by casting the version to CHAR in the
|
|
query, before Perl ever see it. Thanks to Allen Godfrey David for the
|
|
report.
|
|
- Added the Snowflake engine.
|
|
- Now require URI::db v0.19 for Snowflake URI support.
|
|
- The Vertica and Exasol engines now require DBD::ODBC 1.59, which fixes
|
|
a Unicode issue. Thanks to Martin J. Evans for the quick fix
|
|
(perl5-dbi/DBD-ODBC#8)!
|
|
- Added the `bundle` command to `./Build`. This command installs only the
|
|
runtime dependencies into the `--install_base` directory. This should
|
|
simplify building distribution packages, binary installs, Docker images,
|
|
and the like.
|
|
- Added the `--with` option to `./Build`, to require that Sqitch be build
|
|
with the specified engine. Pass once for each engine. See the README
|
|
for the list of supported engines.
|
|
- Added a check for Hash::Merge 0.298 during installation, since that
|
|
release has a fatal bug that breaks Sqitch. If it's installed, the
|
|
installer will issue a warning and added v0.299 to its list of
|
|
dependencies. Thanks to Slaven Rezić for the suggestion (#377).
|
|
- Fixed the PostgreSQL engine so it properly checks the `psql` client
|
|
version to determine whether or not the `:registry` variable is
|
|
supported. Previously it relied on the server version, which would fail
|
|
if the server version was greater than 8.4 but the `psql` client was
|
|
not. Thanks to multiple folks reporting issues with registry names and
|
|
search paths (#314).
|
|
- The plan parser will now complain if a change specifies a duplicate
|
|
dependency. This should be less confusing than a database unique
|
|
violation. Thanks to Eric Bréchemier for the suggestion (#344).
|
|
- Moved the project to its own GitHub organization,
|
|
[Sqitchers](https://github.com/sqitchers).
|
|
- Fixed likely cause of Oracle buffer allocation bug when selecting
|
|
timestamp strings. Thanks to @johannwilfling for the bug report and to
|
|
@nmaqsudov for the analysis and solution (#316).
|
|
- Changed the way the conninfo string is passed to `psql` to eliminate
|
|
argument ordering problems on Windows. Thanks to @highlowhighlow for
|
|
the report (#384).
|
|
- Added `$SQITCH_USERNAME` environment variable to complement
|
|
`$SQITCH_PASSWORD`. It can be used to override the username set in
|
|
for a target.
|
|
- Added the `$SQITCH_FULLNAME` and `$SQITCH_EMAIL` environment
|
|
variables, which take precedence over the values of the `user.name` and
|
|
`user.email` config variables.
|
|
- Added the `$SQITCH_ORIG_SYSUSER`, `$SQITCH_ORIG_FULLNAME` and
|
|
`$SQITCH_ORIG_EMAIL` environment variables. For those situations when
|
|
Sqitch attempts to read OS data for user information, These new
|
|
environment variables override these system-derived values. The
|
|
intention is to allow an originating host to set these values on
|
|
another host where Sqitch will actually execute.
|
|
- Fixed an error triggered by whitespace trailing an engine name in the
|
|
configuration. Thanks to Jeremy Simkins for the report (#400).
|
|
- Refactored the engine-specific username and password attributes to
|
|
support a consistent search for values. Sqitch searches first for one
|
|
of its own environment variables (`$SQITCH_USERNAME` and
|
|
`$SQITCH_PASSSWORD`), then the target URI, and finally any engine-
|
|
specific values, which might include additional environment variables,
|
|
configuration files, the system user, or none at all.
|
|
- Database engines that implicitly relied on username and/or password
|
|
environment variables or on the system username now explicitly rely on
|
|
them. These include the Firebird, MySQL, Postgres, and Vertical
|
|
engines. This change should exhibit no change in the behavior of these
|
|
engines.
|
|
- Added support for the `$MYSQL_HOST` and `$MYSQL_TCP_PORT` environment
|
|
variables to the MySQL engine.
|
|
- Documented all supported engine-specific environment variables in the
|
|
sqitch-environment guide.
|
|
- Renamed the sqitch-passwords guide to sqitch-authentication and added a
|
|
section on username specification.
|
|
- Updated all URLs to use the https scheme. Only exceptions are tt2.org,
|
|
which doesn't support TLS, and conferences.embarcadero.com, which
|
|
appears to be down.
|
|
|
|
0.9997 2018-03-15T21:13:52Z
|
|
- Fixed the Firebird engine to properly detect multiple instances of a
|
|
change specified to `revert` and `verify`, matching the behavior of
|
|
displaying tag-qualified alternates added to the other engines in
|
|
v0.9996.
|
|
- Fixed test failure on Windows.
|
|
- Updated the MySQL and PostgreSQL tests to use process-specific database
|
|
names, to try to avoid conflicts when tests are being run by multiple
|
|
processes on the same box, as happens with CPAN smoke testing boxes.
|
|
- Fixed an issue where Sqitch would sometimes truncate the registry
|
|
version number fetched from Postgres, most likely because the Perl
|
|
runtime was using 32-bit integers. Fixed by casting the version to text
|
|
in the query, before Perl ever see it. Thanks to Malte Legenhausen for
|
|
the report (#343).
|
|
- The MySQL engine will now read the username from MySQL configuration
|
|
files. Thanks to Eliot Alter for the bug report (#353).
|
|
- Added Italian translation, with thanks to Luca Ferrari and @BeaData!
|
|
- Improved multi-value config examples in the `sqitch-config`
|
|
documentation to be a bit less confusing. Thanks to Emil for reporting
|
|
where he got confused!
|
|
- Added the Exasol engine. Thanks to Johan Wärlander for the PR (#362)!
|
|
- Fixed an issue where URI::db needed to be explicitly loaded. Thanks to
|
|
Hugh Esco for the report (#370)!
|
|
- Changed the exit value for `rebase` and `revert` from 1 to 0 when there
|
|
is no work to do. This is to match the expectation of non-zero exit
|
|
statuses only when a command is unsuccessful, as well as the behavior
|
|
of `deploy` as of v0.995. Nothing to do is considered successful.
|
|
Thanks to Paul Williams for the PR (#374)!
|
|
- Update `psql` options to use a conninfo string to honor connection
|
|
parameter key words for PostgreSQL targets. It can now take advantage
|
|
of the connection service file using `db:pg:///?service=$PGSERVICE` as
|
|
well as other connection parameters. Thanks to Paul Williams for the PR
|
|
(#375)!
|
|
|
|
0.9996 2017-07-17T18:33:12Z
|
|
- Fixed an error where Oracle sometimes truncated timestamp formats so
|
|
that date parsing failed. Thanks to Johann Wilfling for the report and
|
|
@nmaqsudov for the solution (#316).
|
|
- Added pager configuration, prioritizing the new `core.pager`
|
|
configuration variable over the `$PAGER` environment variable. The new
|
|
`$SQITCH_PAGER` environment variable trumps all. Thanks to Yati Sagade
|
|
for the pull request (#329).
|
|
- Documented the `core.editor` configuration variable.
|
|
- Updated PostgreSQL registry detection to avoid errors when not running
|
|
Sqitch as a superuser and the registry schema already exists. Done by
|
|
looking for the `changes` table in the `pg_tables` view instead of
|
|
looking for the registry schema in the `pg_namespace` catalog table,
|
|
and by using `CREATE SCHEMA IF NOT EXISTS` on PostgreSQL 9.3 and
|
|
higher. Thanks to @djk447 for the pull request (#307).
|
|
- Updated PostgreSQL registry detection to avoid errors when the `psql`
|
|
client is newer than the server version. Sqitch now fetches the version
|
|
from the server instead of parsing it from the client.
|
|
- Removed `no Moo::sification`, to allow modules to be used by Moose
|
|
applications. Replaced with tests to make sure Sqitch itself never uses
|
|
Moose. Thanks to @perigrin for the PR (#332).
|
|
- Specifying a change before a target name on the command-line no longer
|
|
ignores the target (#281).
|
|
- The `--db-*` options are now more consistently applied to a target,
|
|
including when the target is specified as a URI (#293).
|
|
- `HEAD` and `ROOT` are now properly recognized as aliases for `@HEAD`
|
|
and `@ROOT`, when querying the database. This was supposedly done in
|
|
v0.991, but due to a bug, it wasn't really. Sorry about that.
|
|
- The `revert` and `verify` commands will now fail if a change is
|
|
specified and matches multiple changes. This happens when referencing a
|
|
reworked change only by its name. In this case, Sqitch will emit an
|
|
error listing properly tag-qualified changes to use. Suggested by Jay
|
|
Hannah (#312).
|
|
- Sqitch no longer returns an error when a target name is passed to a
|
|
command and the default target's plan file does not exist (#324).
|
|
- Added missing options to the `rework` usage statement. Thanks to Jay
|
|
Hannah for the PR (#342).
|
|
- Passing an engine name or plan file as the `<database>` parameter to
|
|
the `log`, `status`, and `upgrade` commands now works correctly,
|
|
matching what the documentation has said for some time (#324).
|
|
- Added the `--target` option to the `plan` and `show` commands.
|
|
- Added the `<database>` parameter to the `plan` command.
|
|
- Sqitch now loads targets from all config files, not just the local
|
|
file, when trying to determine if a `<database>` parameter is a plan
|
|
file name.
|
|
- Improved the error message when a change is found more than once in a
|
|
plan, typically a reworked changed referenced only by name. The error
|
|
will no longer be "Key at multiple indexes", but "Change is ambiguous.
|
|
Please specify a tag-qualified change:", followed by a list of
|
|
tag-qualified variants of the change.
|
|
- Fixed a bug where the verify command would return a database error when
|
|
it finds no registry. Now it reports that the registry wasn't found in
|
|
the database.
|
|
|
|
0.9995 2016-07-27T09:23:55Z
|
|
- Taught the `add` command not to ignore the `--change` option.
|
|
- The `add` command now emits a usage statement when no change name is
|
|
passed to it.
|
|
- The `add` command now helpfully suggests using the --change option when
|
|
attempting to add a change with the same name as a target. Thanks to
|
|
Ivan Nunes for the report!
|
|
- The `tag` command now helpfully suggests using the --tag option when
|
|
attempting to add a tag with the same name as a target.
|
|
- Added `--global` as an alias for `--user` to the `config` command. This
|
|
alias benefits the muscle memory of Git users.
|
|
- Added a note for Git users to the `sqitch-revert` documentation, to
|
|
head off potential confusion with `git revert`. Thanks to Eric
|
|
Bréchemier for the "time travel" analogy and wording.
|
|
- Fixed an "uninitialized value" error when creating a registry database
|
|
on Windows. Thanks to Steven C. Buttgereit for the report (Issue #289).
|
|
- Fixed editor selection to prioritize the `core.editor` configuration
|
|
variable over the `$EDITOR` environment variable. The `$SQITCH_EDITOR`
|
|
environment variable still trumps all. Thanks to Jim Nasby for the pull
|
|
request (#296).
|
|
- Added detection of the `$VISUAL` environment variable to Editor
|
|
selection, prioritized after the `core.editor` configuration variable
|
|
and before the `$EDITOR` environment variable. Thanks to Jim Nasby for
|
|
the pull request (#296).
|
|
- Updated the DateTime code to set the locale via `set_locale()` instead
|
|
of `set()`, as the latter may actually change the local time
|
|
unintentionally, and has been deprecated since DateTime v1.04. Thanks
|
|
to Dave Rolsky for the pull request (#304).
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Jun 12 12:36:26 UTC 2016 - coolo@suse.com
|
|
|
|
- updated to 0.9994
|
|
see /usr/share/doc/packages/perl-App-Sqitch/Changes
|
|
|
|
0.9994 2016-01-08T19:46:43Z
|
|
- Reduced minimum required MySQL engine from 5.1.0 to 5.0.0. Thanks to
|
|
@dgc-wh for testing it (Issue #251).
|
|
- Fixed floating-point rounding issue with SQLite registry versions on
|
|
Perls with 16-byte doubles. Thanks to H. Merijn Brand for the report
|
|
and testing.
|
|
- Fixed an error when adding an engine with the `engine` command. Thanks
|
|
to Victor Mours for the report and fix!
|
|
- Updated the Oracle engine to support Oracle Wallet connection strings,
|
|
where no username or host is in the connection URI. Thanks to Timothy
|
|
Procter for the patch!
|
|
- Improved the installer's selection of the prefix in which to install
|
|
`etc` files to better match the `--installdirs` option, which defaults
|
|
to the "site" directories. Thanks to @carragom for the pull request
|
|
(#265).
|
|
- Added missing dash to `-engine` in sample calls to `sqitch init` in the
|
|
tutorials. Thanks to Andrew Dunstan for the spot (Issue #268).
|
|
- Fixed broken Vertica documentation links.
|
|
- Attempting to revert a database with no associated registry no longer
|
|
reports the registry as version 0, but correctly reports that no
|
|
registry can be found. Thanks to Arnaldo Piccinelli for the spot (Issue
|
|
#271).
|
|
- Fixed the search for change IDs in engines to match the search for
|
|
changes. Specifically, change ID seaerch now properly handles the
|
|
offset characters `~` and `^`. This bug mainly affected the `verify`
|
|
command, but it's good to address the inconsistency, done mainly by
|
|
adding the `find_change_id` and `change_id_offset_from_id` methods to
|
|
complement the `find_change` and `change_offset_from_id` methods.
|
|
Thanks to Andrew Dunstan for the spot (Issue #272).
|
|
- Fixed the `flips` table example in the MySQL tutorial. It was
|
|
inappropriately copied from the PostgreSQL tutorial at some point.
|
|
Thanks to Jeff Carpenter for the spot (Issue #254)!
|
|
|
|
0.9993 2015-08-17T17:55:26Z
|
|
[Bug Fixes]
|
|
- Eliminated test failures due to warnings from DateTime::Locale when
|
|
`LC_TIME` is set to C.UTF-8. Thanks to Shantanu Bhadoria for the report
|
|
and Dave Rolsky for the workaround.
|
|
- Fixed an error checking the registry version when the local uses a
|
|
comma for decimal values. Thanks to Steffen Müller for the report
|
|
(Issue #234).
|
|
- Worked around an error setting the MySQL storage engine using versions
|
|
of DBI prior to 1.631. Thanks to melon-babak for the report!
|
|
- Fixed an error from the Oracle engine when deploying more than 1000
|
|
changes. Thanks to Timothy Procter and Minh Hoang for the report and
|
|
testing the fix.
|
|
- Fixed a bunch of typos in error messages, comments, and documentation.
|
|
Thanks to Dmitriy for the pull request!
|
|
- Fixed test failures due to new warnings from File::Path on Perl
|
|
5.23.1.
|
|
- On Firebird, Looking up a change and tag in the database (via the
|
|
`--onto` option to `rebase` or the `--to` option to `revert`, among
|
|
others) would sometimes return the incorrect change if the change has
|
|
been reworked two or more times. Was fixed for the other engines in
|
|
v0.9991.
|
|
- Fixed the `--all` option used to apply a command to all known targets
|
|
so that it loads only targets specified by the local configuration.
|
|
Otherwise, user and system configuration can get in the way when they
|
|
specify engines and targets not used by the current project.
|
|
[Improvements]
|
|
- Added support for the `--set` option when deploying to MySQL. Thanks to
|
|
Chris Bandy for figuring out how to do it!
|
|
- Added support for a "reworked directory". By default, reworked change
|
|
scripts live in the deploy, revert, and verify directories along with
|
|
all the other change scripts. But if that starts to get too messy, or
|
|
you simply don't want to see them, add a `reworked_dir` setting to the
|
|
core, engine, or target config and reworked scripts will be stored
|
|
there, instead. Also supported are `reworked_deploy_dir`,
|
|
`reworked_revert_dir`, and `reworked_verify_dir`.
|
|
- Added the `--dir` option to the `init`, `engine`, and `target`
|
|
commands.
|
|
- Copied the core configuration options (`--engine`, `--target`,
|
|
`--plan-file`, `--registry`, etc.) to the `init`, `engine`, and
|
|
`target` commands. This means that they can be specified after the
|
|
command, which is a bit more natural. It also means that the
|
|
`--registry` and `--client` options of the `target` are no longer
|
|
deprecated.
|
|
- The `init` command on longer writes out commented values for the
|
|
`deploy_dir`, `revert_dir`, or `verify_dir` settings. I think these
|
|
settings are not commonly used, and it would start to get crowded if we
|
|
also added their "reworked" variants, which will be used still less.
|
|
- Added the `alter` action to the `engine` and `target` commands to set
|
|
engine and target properties.
|
|
- Added support for setting reworked directories to the `engine` and
|
|
`target` commands.
|
|
- Reformatted the output of the `engine` and `target` command `show`
|
|
actions to include reworked directories, and to bit a bit less flat.
|
|
- Attempting to add or alter an engine with a target URI that connects to
|
|
a different engine now triggers an error. For example, you can't set
|
|
the target for engine `pg` to `db:sqlite:`.
|
|
- The `add` and `alter` actions of the `engine` and `target` commands
|
|
now create script directories if they don't already exist.
|
|
- The `add` action of the `engine` and `target` commands now creates a
|
|
plan file if one does not exist in the specified location for the
|
|
engine or target.
|
|
- Added the `deploy_dir`, `revert_dir`, and `verify_dir` methods to
|
|
App::Sqitch::Plan::Change. Each points to the proper directory for the
|
|
target depending on whether or not the change has been reworked.
|
|
- In the MySQL engine, the following URI query params will be converted
|
|
to options passed to the command-line client, if they're present:
|
|
* mysql_compression=1 => --compress
|
|
* mysql_ssl=1 => --ssl
|
|
* mysql_connect_timeout => --connect_timeout
|
|
* mysql_init_command => --init-command
|
|
* mysql_socket => --socket
|
|
* mysql_ssl_client_key => --ssl-key
|
|
* mysql_ssl_client_cert => --ssl-cert
|
|
* mysql_ssl_ca_file => --ssl-ca
|
|
* mysql_ssl_ca_path => --ssl-capath
|
|
* mysql_ssl_cipher => --ssl-cipher
|
|
[Documentation]
|
|
- Added the "Overworked" section to sqitch-configuration guide with an
|
|
example of how to move reworked change scripts into a `reworked_dir`.
|
|
[Deprecations]
|
|
- Deprecated the `set-*` actions in the `engine` and `target` commands in
|
|
favor of the new `alter` action.
|
|
- The core `--deployed-dir`, `--revert-dir`, and `--verify-dir` options
|
|
are deprecated in favor of the `--dir` option on the `init`, `engine`,
|
|
and `target` command.
|
|
|
|
0.9992 2015-05-20T23:51:41Z
|
|
- On PostgreSQL, Sqitch now sets the `client_encoding` parameter to
|
|
`UTF8` for its own connection to the database. This ensures that data
|
|
sent to and from the databse should always be properly encoded and
|
|
decoded. Users should still set the proper encodings for change scripts
|
|
as appropriate.
|
|
- Fixed test failures due to path differences on Windows.
|
|
- DateTime::TimeZone is now explicitly required in an attempt to head off
|
|
"Cannot determine local time zone" errors.
|
|
- Corrected some typos and thinkos in `sqitchtutorial-oracle`, thanks to
|
|
George Hartzell.
|
|
- Improved the script to upgrade an Oracle registry to v1.0 to support
|
|
versions prior to Oracle 12, thanks to Timothy Procter.
|
|
- Added missing closing parenthesis to the "Nothing to deploy" message.
|
|
Thanks to George Hartzell for the pull request (Issue #226).
|
|
- Replaced the unique constraint on the `script_hash` column in the
|
|
`changes` registry table with a unique constraint on `project` and
|
|
`script_hash`. This is to allow a deploy script to be used in more than
|
|
one project in a single database. This change increments the registry
|
|
version to v1.1. Thanks to Timothy Procter for the report.
|
|
- Updated the registry check constraints to have consistent names on the
|
|
engines that support them. This will make it easier to modify the
|
|
constraints in the future.
|
|
- Fixed precision issues with the registry version on MySQL and Firebird.
|
|
- Added comment to sqitch-passwords guide that MySQL::Config is required
|
|
to read passwords from the MySQL configuration files. Thanks to
|
|
Sterling Hanenkamp for the patch!
|
|
|
|
0.9991 2015-04-03T23:14:39Z
|
|
[Improvements]
|
|
- Reduced minimum required MySQL engine from 5.6.4 to 5.1.0. Versions
|
|
prior to 5.6.4 lose the following features:
|
|
* Versions earlier than 5.6.4 is fractional second precision on
|
|
registry `DATETIME` columns. Since the ordering of those timestamps
|
|
is so important to the functioning of Sqitch, it will sleep in 100 ms
|
|
increments between logging changes to the registry until the time has
|
|
ticked over to the next second. Naturally, reverts and deploys will
|
|
be a little slower on versions of MySQL before 5.6.4, but accurate.
|
|
* Versions earlier than 5.5.0 lose the `checkit()` functions, which
|
|
would otherwise be used to emulate CHECK constraints in the registry,
|
|
as well as in user-created verify scripts, as recommended in the
|
|
MySQL tutorial, `sqitchtutorial-mysql`.
|
|
- Added a script to update the `DATETIME` columns in a MySQL Sqitch
|
|
registry that was upgraded to MySQL 5.6.4 or higher. It will be
|
|
installed as `tools/upgrade-registry-to-mysql-5.6.4.sql` in the
|
|
directory returned by `sqitch --etc`.
|
|
- Added a script to add the `checkit()` function and registry triggers to
|
|
emulate CHECK constraints to a MySQL Sqitch registry that was upgraded
|
|
to MySQL 5.5.0 or higher. It will be installed as
|
|
`tools/upgrade-registry-to-mysql-5.5.0.sql` in the directory returned
|
|
by `sqitch --etc`.
|
|
- The `init` command now throws an error when the plan file already
|
|
exists and is invalid or defined for a different project. Thanks to
|
|
Gabriel Potkány for the suggestion (Issue #214).
|
|
- All commands that take target arguments can now specify them as engine
|
|
names or plan file paths as well as target names and URIs.
|
|
- Added the `--all` option and the `$command.all` configuration variable
|
|
to the `add`, `rework`, `tag`, and `bundle` commands. This option tells
|
|
the commands to do their thing for all plans known from the
|
|
configuration, not just the default plan.
|
|
- Pass engine, target, or plan file names to the `add`, `rework`, `tag`,
|
|
and `bundle` commands` commands to specify specify one or more targets,
|
|
engines, and plans to act on.
|
|
- Added the `--change` option to the `add`, `rework`, and `tag` commands
|
|
to distinguish the change to be added, reworked, or tagged from
|
|
plan-specifying arguments, if necessary.
|
|
- Added the `--tag` option to the `tag` command to distinguish the tag to
|
|
be added from plan-specifying arguments, if necessary.
|
|
- Changed the short variant of the `--conflicts` option to the `add` and
|
|
`rework` commands from `-c` to `-x`. The `-c` option is now used as the
|
|
short variant for `--change` (and `--conflicts` has almost certainly
|
|
never been used, anyway).
|
|
- Added the `engine` and `project` variables to the execution of script
|
|
templates by the `add` command. The default templates now use it to
|
|
make their first lines one of:
|
|
* -- Deploy [% project %]:[% change %] to [% engine]
|
|
* -- Revert [% project %]:[% change %] from [% engine]
|
|
* -- Verify [% project %]:[% change %] on [% engine]
|
|
[Bug Fixes]
|
|
- DateTime::TimeZone::Local::Win32 is now required on Windows.
|
|
- The MySQL engine no longer passes `--skip-pager` on Windows, since
|
|
it is not supported there. Thanks to Gabriel Potkány for the report
|
|
(Issue #213).
|
|
- Fixed "no such table: changes" error when upgrading the SQLite
|
|
registry.
|
|
- Fixed upgrade failure on PostgreSQL 8.4. Thanks to Phillip Smith for
|
|
the report!
|
|
- Fixed an error when the `status` command `show_changes` and `show_tags`
|
|
configuration variables were set. Thanks to Adrian Klaver for the
|
|
report (Issue #219).
|
|
- Fixed `log` and `plan` usage statements to properly spell `--abbrev`.
|
|
Thanks to Adrian Klaver for the report (Issue #220).
|
|
- Fixed the formatting of change notes so that a space precedes the `#`
|
|
character whether the note was added by the `--note` option or via an
|
|
editor.
|
|
- Fixed a bug when parsing plan files with DOS/Windows line endings.
|
|
Thanks to Timothy Procter for the report (Issue #212).
|
|
- Looking up a change and tag in the database (via the `--onto` option to
|
|
`rebase` or the `--to` option to `revert`, among others) would
|
|
sometimes return the incorrect change if the change has been reworked
|
|
two or more times. Thanks to BryLo for the report!
|
|
[Documentation]
|
|
- Updated docs to be consistent in referring to the location of the system
|
|
configuration and template location as `$(prefix)/etc/sqitch`. Also
|
|
added notes pointing to the `--etc-dir` to find out exactly what that
|
|
resolves to. Suggested by Joseph Anthony Pasquale Holsten (Issue #167).
|
|
[Deprecations]
|
|
- Reverted deprecation of the database connection options. Target URIs
|
|
are still generally preferred, but sometimes you want to use a target
|
|
but just change the user name or database name. Retaining the options
|
|
is the easiest way to do this. Plus, a fair number of people have
|
|
scripts that use these options, and it seems petty to break them. Sorry
|
|
for the double-take here! The list of un-deprecated options is:
|
|
* `--db-client`
|
|
* `--db-host`
|
|
* `--db-port`
|
|
* `--db-username`
|
|
* `--db-password`
|
|
* `--db-name`
|
|
|
|
0.999 2015-02-12T19:43:45Z
|
|
- Improved MySQL missing table error detection by relying on error codes
|
|
instead of matching a (possibly localized) error string.
|
|
- Made the registry upgrade more transparent when deploying. Sqitch is
|
|
now is a little more vigilent in checking for things being out-of-date
|
|
and updating them.
|
|
- Fixed an issue where the `status` command would return an error when
|
|
run against a an older version of the registry.
|
|
- Fixed a Postgres test failure when DBD::Pg is installed but psql is not
|
|
in the path.
|
|
- Now require Config::GitLike 1.15 to build on Windows in order to avoid
|
|
test failures when Cwd::abs_path dies on non-existant paths.
|
|
- Clarified the behavior of each `deploy` reversion mode with regard to
|
|
deploy script vs. verify script failures, and with the expectation that
|
|
deploy scripts are atomic.
|
|
- Target passwords can now be set via a single environment variable,
|
|
`$SQITCH_PASSWORD`. Its value will override URI-specified password.
|
|
- Added the sqitch-passwords and sqitch-environment guides.
|
|
|
|
0.998 2015-01-15T22:17:44Z
|
|
- Fixed a bug in `sqitch engine update-config` where it would add data to
|
|
config files that did not previously have them, or report that data was
|
|
present in nonexistent config files.
|
|
- Added the `releases` table to the databases. This table will keep track
|
|
of releases of the Sqitch registry schema.
|
|
- The Oracle `registry` variable is now always `DEFINE`d when Oracle
|
|
scripts run.
|
|
- Added the `upgrade` command, which upgrades the schema for the Sqitch
|
|
registry for a target database.
|
|
- Added the `script_hash` column to the `changes` registry table. This
|
|
column contains a SHA-1 hash of the deploy script for the change at the
|
|
time it was deployed. For existing registries, the upgrade script sets
|
|
its value to be the same as the change ID. This value is update the
|
|
next time a project is deployed to the database.
|
|
- The error message when `deploy` cannot find the currently-deployed
|
|
change ID in the plan now includes more contextual information,
|
|
including the change name, associated tags, and the plan file name.
|
|
Suggested by Curtis Poe (Issue #205).
|
|
- Comments on Firebird registry objects are now created with the
|
|
`COMMENT` command, rather than INSERTs into catalog tables.
|
|
- Added support for "merge" events, though none are logged, yet.
|
|
|
|
0.997 2014-11-04T22:52:23Z
|
|
[New Features]
|
|
- Added support for new target properties. In addition to the existing
|
|
`uri`, `client`, and `registry` properties, targets may also configure
|
|
these properties via the new `--set` option to and `set-*` actions on
|
|
the `target` command:
|
|
* `top_dir`
|
|
* `plan_file`
|
|
* `extension`
|
|
* `deploy_dir`
|
|
* `revert_dir`
|
|
* `verify_dir`
|
|
- Added support for new engine configuration variables. In addition to
|
|
the existing `target`, `client`, and `registry` variables, engine
|
|
configuration may also include these variables:
|
|
* `top_dir`
|
|
* `plan_file`
|
|
* `extension`
|
|
* `deploy_dir`
|
|
* `revert_dir`
|
|
* `verify_dir`
|
|
- Rationalized the hierarchical configuration of deployment targets. The
|
|
properties of any given target will now be determined by examining
|
|
values in the following order:
|
|
* Command-line options
|
|
* Target configuration
|
|
* Engine configuration
|
|
* Core configuration
|
|
* Reasonable engine-specific defaults
|
|
- Added the `engine` command to simplify engine configuration. This
|
|
complements the newly-improved `target` command. Run `sqitch engine
|
|
update-config` to update deprecated engine configurations and start
|
|
using it.
|
|
- Added the sqitch-configuration guide to provide an overview of core,
|
|
engine, and target configuration. Includes some use-case examples and
|
|
best suggested practices.
|
|
[Improvements]
|
|
- Simplified the output of `sqitch help`, and added the more important
|
|
options to it.
|
|
- Added the `--guide` option to `sqitch help` to list Sqitch guides.
|
|
- Renamed the `--db-client` option to `--client`. `--db-client` still
|
|
works, but is deprecated.
|
|
- Added the `--registry` core option for parity with `--client`,
|
|
`--top-dir`, `--plan-file`, and the rest of the hierarchical
|
|
configuration properties.
|
|
- Updated the `init` documentation to better cover all the options
|
|
processed.
|
|
- Incremented the version plan file format version to v1.0.0. No changes;
|
|
it has been stable for at least a year, so it's time.
|
|
[Bug Fixes]
|
|
- At runtime, the Vertica engine now properly requires DBD::ODBC
|
|
instead of DBD::Pg.
|
|
- The Vertica engine now supports Vertica 6, as documented.
|
|
- Fixed a warning from Type::Utils, thanks to a report from Géraud
|
|
CONTINSOUZAS.
|
|
- The `status` command once again notices if the specified database is
|
|
uninitialized and says as much, rather than dying with an SQL error.
|
|
- The `--etc-path` option works again.
|
|
[Deprecations]
|
|
- Deprecated `core.$engine` configuration in favor of `engine.$engine`. A
|
|
warning will be emitted if Sqitch sees the former. Run `sqitch engine
|
|
update-config` to update your configurations. Existing `core.$engine`
|
|
configurations will be left in place for compatibility with older
|
|
versions of Sqitch, but the `sqitch engine` command will not modify
|
|
them, so they can get out-of-sync. Run `sqitch config --remove-section
|
|
core.$engine` to remove them.
|
|
- Formally deprecated the database connection options in favor of target
|
|
URIs. If any of these options is used, a warning will be issued. They
|
|
will be dropped in v1.0:
|
|
* `--db-host`
|
|
* `--db-port`
|
|
* `--db-username`
|
|
* `--db-password`
|
|
* `--db-name`
|
|
- Formally deprecated the database connection configuration variables in
|
|
favor of target URIs. If any of these variables is used, a warning will
|
|
be issued. Run `sqitch engine update-config` to update your
|
|
configurations. Existing `core.$engine` configurations will be left in
|
|
place for compatibility with older versions of Sqitch, but the `sqitch
|
|
engine` command will not modify them, so they can get out-of-sync. Run
|
|
`sqitch config --remove-section core.$engine` to remove them. Sqitch
|
|
will cease to support them in v1.0:
|
|
* `core.$engine.host`
|
|
* `core.$engine.port`
|
|
* `core.$engine.username`
|
|
* `core.$engine.password`
|
|
* `core.$engine.db_name`
|
|
- Deprecated the `--registry` and `--client` options of the `target`
|
|
command. All target properties should now be set via the new `--set`
|
|
option, such as `--set registry=reg`.
|
|
- Formally deprecated the following options of the `add` command. They
|
|
have been replaced with the `--with`, `--without`, and `--use` options
|
|
since v0.991. Their use will emit a warning, and they will be removed
|
|
in v1.0:
|
|
* `--deploy-template`
|
|
* `--revert-template`
|
|
* `--verify-template`
|
|
* `--deploy`
|
|
* `--no-deploy`
|
|
* `--revert`
|
|
* `--no-revert`
|
|
* `--verify`
|
|
* `--no-verify`
|
|
- Dropped support for the long-deprecated (and likely never used outside
|
|
ancient tests long deleted) engine configuration variables
|
|
`core.sqlite.sqitch_db` and `core.pg.sqitch_schema`. Both have been
|
|
replaced with `engine.$engine.registry`, which applies to all engines.
|
|
- Formally deprecated the `@FIRST` and `@LAST` symbolic tags. Their use
|
|
will trigger a warning to use `@ROOT` and `@HEAD`, instead. They will
|
|
be removed in v1.0.
|
|
[Internals]
|
|
- Moved target and engine configuration from App::Sqitch and
|
|
App::Sqitch::Engine to a new class, App::Sqitch::Target. This class is
|
|
solely responsible for finding the appropriate values for attributes on
|
|
every run. The target knows what plan and engine to use, based on those
|
|
properties. App::Sqitch is now responsible solely for encapsulating
|
|
command-line options, configuration, and utilities. Classes are now
|
|
responsible for instantiating both an App::Sqitch and
|
|
App::Sqitch::Target options as appropriate.
|
|
- Updated all classes to create both Sqitch and Target objects as
|
|
appropriate. This change touched almost every class.
|
|
- Replaced attributes in App::Sqitch that were previously set from
|
|
command-line options or configuration with a single attribute,
|
|
`options`, which is a hash only of the command-line options. Classes
|
|
are now responsible for finding the proper values in config or options.
|
|
Mostly this requirement is encapsulated by the new App::Sqitch::Target
|
|
class.
|
|
- Updated the command classes to use either a "default target" derived
|
|
from command-line options, engine configuration, and core
|
|
configuration, or a target looked up by name in the configuration
|
|
maintained by the `target` command.
|
|
|
|
0.996 2014-09-05T21:11:00Z
|
|
- Fixed one more test failure due to the introduction of "Negative repeat
|
|
count does nothing" warning in Perl 5.21.1.
|
|
- Fixed "Redundant argument in printf" warning on Perl 5.21.2.
|
|
- Switched from Digest::SHA1, which is deprecated, to Digest::SHA for
|
|
generating SHA-1 IDs.
|
|
- Switched from Mouse and Moose to Moo. Sqitch no longer depends on any
|
|
modules that use Moose, either. This results in an approximately 40%
|
|
startup time speedup.
|
|
- Loading of App::Sqitch::DateTime is now deferred until it's needed.
|
|
This is because DateTime is rather expensive to load. Since a number of
|
|
commands don't need it, it seems silly to load it in those cases.
|
|
- Now recommend Type::Tiny::XS and Class::XSAccessor for improved
|
|
performance.
|
|
- The `check` command now properly fails on a plan parse error, instead
|
|
of blindly continuing on.
|
|
- Fixed a failing test on PostgreSQL due to localization issues. Thanks
|
|
to Sven Schoberf for the report (Issue #171).
|
|
- Added the `revert.prompt_accept`, `rebase.prompt_accept`, and
|
|
`checkout.prompt_accept` boolean configuration variables. Set these
|
|
variables to false to change the default answer to the revert prompt to
|
|
"No". When rebasing or checking out, if the variables specific to those
|
|
commands are not set, Sqitch will fall back on the value of
|
|
`revert.prompt_accept`. Suggested by Graeme Lawton (Issue #164).
|
|
- The MySQL engine now sets the `$MYSQL_PWD` environment variable if a
|
|
password is provided in a target. This should simplify authentication
|
|
when running MySQL change scripts through the `mysql` client client
|
|
(Issue #150).
|
|
- The MySQL engine now reads `client` and `mysql` groups in the MySQL
|
|
configuration files for a password when connecting to the registry
|
|
database, and when the target URI includes no password. The MySQL
|
|
client already read those files, of course, but now the internal
|
|
database connection does as well (Issue #150).
|
|
- The Firebird engine now sets the `$ISC_PASSWORD` environment variable
|
|
if a password is provided in a target. This should simplify
|
|
authentication when running Firebird change scripts through the `isql`
|
|
client client. Patch from Ștefan Suciu.
|
|
- No longer passing URI query params as DBI params, because they are
|
|
already included in the DSN provided by URI::db.
|
|
- Added the Vertica engine.
|
|
|
|
0.995 2014-07-13T22:24:53Z
|
|
- Fixed test failures due to the introduction of "Negative repeat count
|
|
does nothing" warning in Perl 5.21.1.
|
|
- Fixed more test failures when DBD::Firebird is installed but Firebird
|
|
isql cannot be found.
|
|
- Fixed registry file naming issues on Win32 for the SQLite engine, and
|
|
as well as the tests that failed because of it.
|
|
- Worked around Config::GitLike bug on Windows in the target test.
|
|
- Changed the exit value for an attempt to deploy to an up-to-date
|
|
database from 1 to 0. In other words, it no longer looks like an error
|
|
(Issue #147).
|
|
|
|
0.994 2014-06-20T02:58:10Z
|
|
- Fixed installation failure due to missing IO::File module on Windows.
|
|
- Fixed file test failure for the Oracle engine on Windows.
|
|
- Fixed bug where namespace-autoclean: 0.16 caused errors such as
|
|
"Invalid object instance: 'yellow'".
|
|
- Fixed Oracle SQL*Plus capture test failure on Windows.
|
|
|
|
0.993 2014-06-04T20:14:34Z
|
|
- Fixed engine loading to prefer the engine implied by the target URI
|
|
over the `core.engine` configuration variable. This means that you no
|
|
longer have to pass `--engine` when using commands that accept a target
|
|
option or argument, such as `deploy`.
|
|
- Fixed test failure when DBD::Firebird is installed but Firebird isql
|
|
cannot be found.
|
|
- Fixed issue where the revert command fails to execute the proper revert
|
|
script. This can occur when a change has been reworked in the plan, but
|
|
the reworked version of the change has not been deployed to the
|
|
database. Thanks to Timothy Procter for the report (Issue #166).
|
|
- Fixed issue with aggregating text values with `COLLECT()` on Oracle.
|
|
Thanks to Timothy Procter for the digging and invocation of an Oracle
|
|
support request (Issue #91).
|
|
- Fixed issue where SQL*Plus could not run rework scripts because of the
|
|
`@` in the file name. It now uses a symlink (or copied file on Windows)
|
|
to circumvent the problem. Thanks to Timothy Procter for the report
|
|
(Issue #165).
|
|
- Fix issue where, on first deploy, the MySQL engine would fail to notice
|
|
that the server was not the right version of MySQL. Thanks to Luke
|
|
Young for the report (Issue #158).
|
|
- Made the `checkit()` MySQL function DETERMINISTIC, to improve
|
|
compatability with MariaDB. Thanks to Jesse Luehrs for the report
|
|
(Issue #158).
|
|
- Fixed deployment to PostgreSQL 8.4 so that it no longer chokes on the
|
|
`:tableopts`. Thanks to Justin Hawkins for the report!
|
|
|
|
0.992 2014-03-05T00:34:49Z
|
|
- Fixed target test failures on Windows.
|
|
- Added support for Postgres-XC to the PostgreSQL engine. Sqitch registry
|
|
tables are distributed by replication to all data nodes.
|
|
- Added support to MariaDB 5.3 and higher to the MySQL engine, thanks to
|
|
Ed Silva.
|
|
|
|
0.991 2014-01-16T23:24:33Z
|
|
- Greatly simplified determining the Firebird ISQL client. It no longer
|
|
tries so hard to find a full path, but does seach through the path list
|
|
for a likely candidate between fbsql, isql-fb, and isql (or equivalents
|
|
ending in .exe on Windows).
|
|
- Removed a bunch of inappropriately pasted stuff from the Firebird
|
|
tutorial, and updated it a bit.
|
|
- `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and
|
|
`@ROOT`, when querying the database, too. That means that `revert --to
|
|
HEAD` now works the same as `revert --to @HEAD`, as had been expected
|
|
in v0.990.
|
|
- Eliminated "use of uninitialized value" warnings when database
|
|
connections fail.
|
|
- Reduced the minimum required DBD::Firebird to v1.11.
|
|
- Fixed the `--verbose` option to the `target` command.
|
|
- Eliminated more user-configuration issues in tests, thanks to
|
|
chromatic.
|
|
- Fixed test failures when the `$PGPASSWORD` environment variable is set,
|
|
thanks to Ioan Rogers's test smoker.
|
|
|
|
0.990 2014-01-04T01:14:24Z
|
|
[New Features]
|
|
- Added new command and feature: `target`. Use it to manage multiple
|
|
database targets, each with an associated URI and, optionally, a
|
|
registry name and command-line client. Inspired by Git remotes.
|
|
- Added Firebird engine. Three cheers to Ștefan Suciu for this
|
|
contribution!
|
|
- Added support for the generation of arbitrary scripts from templates to
|
|
the `add` command. Just add template files to subdirectories of the
|
|
`templates` directory, and scripts will be created in a directory of
|
|
the same name based on those templates.
|
|
- Added `--open-editor` option (and aliases) to the `add` and `rework`
|
|
commands. This option will open the newly-added change scripts in the
|
|
preferred editor. Thanks to Thomas Sibley for the patch!
|
|
|
|
[Improvements]
|
|
- Improved database driver loading to ensure the proper version of the
|
|
driver is required.
|
|
- Non-fatal but possibly unexpected messages -- which correspond to exit
|
|
value 1 -- now send their messages to STDOUT instead of STDERR, and
|
|
respect the `--quiet` option. Thanks to @giorgio-v for the report!
|
|
- Added or replaced the `--target` option to commands that connect to a
|
|
database to specify the name of target managed by the new `target`
|
|
command or a database URI.
|
|
- `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and
|
|
`@ROOT`, respectively, since they are disallowed as change names,
|
|
anyway, and folks often use them out of habit from Git.
|
|
|
|
[Internals]
|
|
- Replaced the engine-specific connection attributes with three
|
|
attributes use by every engine:
|
|
* `target`: The name of a target managed by the new `target` command.
|
|
Defaults to a value stored for the `core.$engine.target`
|
|
configuration variable. If that variable does not exist, the target
|
|
falls back on the stringification of `uri`.
|
|
* `uri`: a database URI with the format `db:{engine}:{dbname}` or
|
|
`db:{engine}://{user}:{password}@{host}:{port}/{dbname}`. If its
|
|
value is not passed to the constructor, a `uri` value is looked up
|
|
for the associated `target`. If `target` is not passed or configured,
|
|
or if it has no URI associated with it, the `config.$engine.uri`
|
|
configuration variable is used. If that value does not exist, the URI
|
|
defaults to `db:$engine:`. In any of these cases, if any of the
|
|
`--db-*` options are passed, they will be merged into the URI.
|
|
* `registry`: the name to use for the Sqitch registry schema or
|
|
database, where Sqitch's own data will be stored, as appropriate to
|
|
each engine. If its value is not passed to the constructor, a
|
|
`registry` value is looked up for the associated `target`. If
|
|
`target` is not passed or configured, or if it has no registry
|
|
associated with it, the `config.$engine.registry` configuration
|
|
variable is used. If no value is found there, it defaults to an
|
|
engine-specific value, usually "sqitch".
|
|
|
|
[Bug Fixes]
|
|
- Fixed a bug when installing under local::lib. Thanks to Thomas Sibley
|
|
for the pull request!
|
|
- Eliminated "Wide character in print" warnings when piping the `log`
|
|
command.
|
|
- Documented that reworked changes do not have their verify tests run by
|
|
the `verify` command. They do run when using the `--verify` deploy
|
|
option.
|
|
- Removed the documentation for the `add.with_deploy`, `add.with_revert`,
|
|
and `add.with_verify` configuration variables, which were never
|
|
implemented.
|
|
|
|
[Deprecations]
|
|
- Deprecated engine-specific connection attributes and configuration
|
|
variables. See the "Internals" section for their replacements. The
|
|
deprecated options are:
|
|
* `core.$engine.username`
|
|
* `core.$engine.password`
|
|
* `core.$engine.db_name`
|
|
* `core.$engine.host`
|
|
* `core.$engine.port`
|
|
* `core.$engine.sqitch_schema`
|
|
* `core.$engine.sqitch_db`
|
|
- Deprecated all command-specific options with the string "target" in
|
|
them, such as `--to-target`, `--upto-target`, etc. They have been
|
|
replaced with options containing the string "change", instead, such as
|
|
`--to-change` and `--upto-change`. Few people used these options,
|
|
preferring their shorter aliases (`--to`, `--upto`, etc.).
|
|
- Deprecated the `--deploy-template`, `--revert-template`, and
|
|
`--verify-template` options to the `add` command. They are replaced
|
|
with a single option, `--use` which takes a key/value pair for the
|
|
script name and template path. This makes it useful for arbitrary
|
|
script generation, as well.
|
|
- Deprecated the `--deploy`, `--revert`, and `--verify` options to the
|
|
`add` command, as well as their `--no-*` variants. They are replaced
|
|
with two new options, `--with` and `--without`, to which a script name
|
|
is passed. These are useful for arbitrary script generation, as well.
|
|
- Deprecated the `add.deploy_template`, `add.revert_template`, and
|
|
`add.verify_template` configuration settings. They have been replaced
|
|
with a section, `add.templates`, which is more general, and supports
|
|
arbitrary script generation, as well.
|
|
|
|
[Incompatibilities]
|
|
- Removed the undocumented `--test` option to the `add` command.
|
|
- Changed the meaning of `--target` from specifying a change to
|
|
specifying a deployment target. Use the new `--change` option to
|
|
specify a change.
|
|
|
|
0.983 2013-11-21T21:50:12Z
|
|
- Fixed "Use of uninitialized value" in the MySQL engine. Thanks to
|
|
Jean-Michel REY for the report.
|
|
- All tests now protect against failures due to the presence of the
|
|
`$SQITCH_CONFIG` environment variable (issue #114).
|
|
- The installer now respects the `distdir` option to `Build.PL` when
|
|
searching for existing templates. Important for packaging.
|
|
- Fixed the error "Table 'sqitch.changes' doesn't exist" when deploying
|
|
to a MySQL database that exists but has not been initialized. Thanks to
|
|
Jean-Michel REY for the report!
|
|
- Refactored the handling of the C<--log-only> option so it sets an
|
|
engine attribute, rather than passing the flag to a whole stack of
|
|
method calls.
|
|
- Fixed "Argument "en_us" isn't numeric" error on Windows.
|
|
- Now using `LC_ALL` instead of `LC_MESSAGES` when setting the locale, as
|
|
the latter is not present on Windows.
|
|
- The sqitch-pg RPM now requires DBD::Pg 2.0.0 or higher.
|
|
- Improved handling of invalid command names so that the error message is
|
|
less ambiguous when triggered by a Perl parse error.
|
|
- Added `-m` as an alias for `--note`, for you Git folks out there.
|
|
- Added exception handling to the Postgres and Oracle engines to avoid
|
|
unexpected errors when deploying to a database that has not been
|
|
deployed to before.
|
|
- Updated detection of an uninitialized database to double-check with the
|
|
engine that it really thinks it's uninitialized, not just that the
|
|
"changes" table is missing. This should catch the case where the
|
|
database has its own "changes" table unrelated to Sqitch.
|
|
|
|
0.982 2013-09-11T18:26:07Z
|
|
- Errors thrown by Template toolkit are no longer silently ignored.
|
|
- Variables passed to change templates are now cloned before the
|
|
execution of each template. This prevents one template from deleting
|
|
variable values another template might also need.
|
|
- Fixed "The getpwnam function is unimplemented" errors on Win32.
|
|
- No longer runs revert scripts when deploying with `--log-only` and a
|
|
verify script fails, as that could lead to data loss (yikes!). Thanks
|
|
to BryLo for the report (issue #112).
|
|
|
|
0.981 2013-09-06T00:22:26Z
|
|
- Now use Encode::Locale to try to decode the user's full name from the
|
|
system encoding when fetched from the system on all OSes. Note that
|
|
this is not necessary if the `user.name` config is explicitly set, as
|
|
recommended. Issue #107.
|
|
- Removed the special-case handling of the user's full name fetched from
|
|
the system on OS X.
|
|
- Added call to `sleep` to test in an attempt to fix SQLite failures.
|
|
- The SQLite engine now requires that the SQLite client be 3.3.9 or
|
|
later, for support of the `-bail` option.
|
|
- Bug fix: The MySQL engine now properly uses the host, port, and
|
|
password options when connecting to the database. Thanks to vreb87 for
|
|
the report!
|
|
|
|
0.980 2013-08-28T21:40:00Z
|
|
- Changed the default SQLite Sqitch database name from
|
|
`$dbname-sqitch.$suffix` to `sqitch.$suffix`. The `$suffix` still
|
|
comes from the destination database name. This breaks compatibility
|
|
with previous releases. If you need the old name, set it with
|
|
`sqitch config core.sqlite.sqitch_db $dbname`.
|
|
- Fixed encoding of the user's full name when fetched from the system on
|
|
OS X. Thanks to Tomohiro Hosaka for the pull request!
|
|
- Fixed test failures when DBD::SQLite is installed but compiled with
|
|
SQLite 3.7.10 or lower.
|
|
- Fixed a bug where declaring a dependency on a reworked change would
|
|
incorrectly result in the error "Key "foo" matches multiple changes".
|
|
Thanks to BryLo for the report (issue #103).
|
|
- Modified tests to allow them to run in parallel without stomping on
|
|
each other.
|
|
- Bundling of options, such as `-vvv`, now works properly (issue #108).
|
|
- Added alias `--get-regexp` for `--get-regex` to the `config` command.
|
|
This brings it in line with the documentation for the `config` command
|
|
(Issue #110).
|
|
- Fixed all of the `config` command actions that contain a dash so that
|
|
they actually work. Thanks to Ștefan Suciu for the report (issue #110).
|
|
- All leading and trailing white space is now trimmed from plan notes,
|
|
rather than just vertical white space. Thanks to Ronan Dunklau for the
|
|
report (issue #106).
|
|
- The `status` command now notices if the specified database is
|
|
uninitialized and says as much, rather than dying with an SQL error
|
|
(issue #109).
|
|
- When reading the user's username from the system Sqitch now uses
|
|
Encode::Locale to try to decode the value from the system encoding.
|
|
Issue #107.
|
|
- Compatibility change: Changed the location and name of script template
|
|
files. Previously they were called `deploy.tmpl`, `revert.tmpl`, and
|
|
`verify.tmpl`, and they lived in the `templates` subdirectory of the
|
|
system-wide and user-specific configuration directories. They now live
|
|
in subdirectories of the `templates` directory named for each action
|
|
(deploy, revert, and verify), and with file names matching engine names
|
|
(`pg.tmpl`, `sqlite.tmpl`, `oracle.tmpl`, and `mysql.tmpl`). The
|
|
installer will move old files from the system-wide config directory
|
|
(`sqitch --etc-path`) to their new homes, named `pg.tmpl` and
|
|
`sqlite.tmpl`. It assumes no customizations exist for Oracle. If that's
|
|
not true in your case, simply copy the `pg.tmpl` files to
|
|
`oracle.tmpl`.
|
|
- Added the `--template-name` option to the `add` command. By default, it
|
|
looks for templates named for the current engine. The option allows for
|
|
the user of task-specific templates. For example, if you create
|
|
templates named `createtable.tmpl` in the `deploy`, `revert`, and
|
|
`verify` subdirectories of `~/.sqitch/templates`, You can specify
|
|
`--template-name createtable` to use those templates when adding a
|
|
change.
|
|
- Added the `--exists` option to the `show` command.
|
|
- Fixed the `--set` option to the `add` command so that duplicate keys
|
|
have their values passed to the template as an array, as documented.
|
|
- If Template::Toolkit is installed, the `add` command will use it for
|
|
processing templates instead of Template::Tiny. This makes it easy to
|
|
upgrade the templating environment just by installing a module.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Aug 12 12:37:59 UTC 2013 - darin@darins.net
|
|
|
|
- Initial packaging
|