Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Upstream changes: 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, prioritzed 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). 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.
- Loading branch information