Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update to 0.991. From the changelog:
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. 0.973 2013-07-03T13:47:22Z - Now Require DBD::SQLite compiled with SQLite 3.7.11 or higher. It always has, but now it throws a meaningful exception if an older version is compiled into DBD::SQLite. Thanks to Damon Buckwalter for the report. - When a deploy fails because of missing dependencies, the list of missing dependencies no longer contains duplicates. Thanks to Damon Buckwalter for the report. 0.972 2013-05-31T23:26:52Z - Fixed test failures on Windows. - Fixed locale configuration on Windows so that `sqitch` will actually run, rather than exiting with an error about `LC_MESSAGES` not being set. - Fixed a test hang on Windows when DBD::Oracle is installed but the Oracle libraries (`OCI.dll`) are not or cannot be found. This was triggering a UI dialog that did not dismiss itself. Using Win32::API to work around this issue. Thanks to Jan Dubois for the fix. 0.971 2013-05-18T21:08:51Z - Removed most uses of the smartmatch operator, since as of Perl 5.17.11 it is marked as experimental, and silenced the warning where it is still used. - Added 0.1s sleep between logging changes back-to-back in the engine tests, mostly to try to get SQLite to generate different timestamps. Pretty sure the recent test failures have been due to the passage of less than a millisecond between the two inserts. - Added the `shell` and `quote_shell` methods to Sqitch.pm for shelling out a command. - Sqitch now shells out to an editor when opening a file for the user to edit. For example, if the `$EDITOR` environment variable is set to `"emacs -nw"`, it will now work. Thanks to Florian Ragwitz for the report (issue #80). - Removed the pod-checking tests from the distribution. 0.970 2013-05-09T00:21:06Z - Fixed the default ordering of changes displayed by the `plan` command. They are now ascending by default. - Switched to PerlIO::utf8_strict for fast character encoding and decoding. - The help emitted when an unknown option is passed to `sqitch` now consists of a usage statement and brief table of options, rather than the entire man page. - Added the project name in a header to the output of the `plan` command. - Added the Oracle engine. - Added `sqitchtutorial-oracle.pod`, a Oracle-specific variant of `sqitchtutorial.pod`. - Added missing version declaration to the App::Sqitch::Plan::* modules. - Devel::StackTrace 1.30 is now properly required (it was previously recommended). - The `--show-tags` and `--show-changes` options to the `status` command now show the changes when the project plan cannot be found (issue #90). 0.965 2013-04-23T16:25:59Z - Fixed failing test due to line-ending character variations on Windows. Many thanks to Jan Dubois for the testing help. - Replaced all uses of `$/` in output to `"\n"`. Thanks to Jan Dubois for pointing out the incorrect use of `$/`. - Fixed build error that prevented installation on Perl 5.10 when the parent module was not installed. 0.964 2013-04-15T18:47:30Z - Fixed test failures on Perl versions lower than 5.14 when DBD::SQLite or DBD::Pg is not installed. - Removed DBD::SQLite from the list of build dependencies. - Fixed test failures due to encoded (wide-character) warnings on triggered on systems with non-english locales. Thanks to Alexandr Ciornii for the smoke testing that revealed this issue. - Removed overriding of Throwable's `previous_exception` in App::Sqitch::X on Throwable 0.200007 and higher, where it is no longer needed. - Changed test comparing file contents that fails on Windows to do a looser comparison and hopefully fix the test failure. 0.963 2013-04-12T19:11:29Z - Fixed a test failure when Git is in the execution path and the test is not run from a Git checkout. - Added `plan` to `sqitchchanges`, the contents of which are shown when Sqitch is run with no command. - Removed the unique constraint on tag names in the database, as it prevented two projects from having the same tag name. Replaced it with a unique constraint on the project and tag names. Folks with production PostgreSQL installs should run these queries: ALTER TABLE sqitch.tags DROP CONSTRAINT tags_tag_key, ADD UNIQUE(project, tag); COMMENT ON COLUMN sqitch.tags.tag IS 'Project-unique tag name.'; - Fixed failing tests when DBD::SQLite is not installed. - Removed dependency on Git::Wrapper. The `checkout` command does things very simply, and we already have tools for running command-line applications. So we just take advantage of that. The code is no more complicated than it was before. - Added the `core.vcs.client` configuration setting. Defaults to `git` (or `git.exe` on Windows). 0.962 2013-04-10T17:10:05Z - Fixed failing test on Perl 5.12 and lower. - Fixed the French translation by re-encoding it in UTF-8 (Ronan Dunklau). - Fixed the loading of the editor with placeholder text to properly encode that text as UTF-8 (Ronan Dunklau).
- Loading branch information