Documentation

Modules

Changes for version 0.9991

  • 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`