Skip to content

Commit

Permalink
Merge develop for v1.0.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
theory committed Jun 4, 2019
2 parents ce8c93e + 7fd9ff2 commit 21fd119
Show file tree
Hide file tree
Showing 88 changed files with 1,135 additions and 624 deletions.
14 changes: 7 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- ./dev/prove -lr t

- stage: 📈 Coverage
if: branch = master
if: branch = develop
services: docker
env: COVERAGE=1
before_install:
Expand All @@ -61,7 +61,7 @@ jobs:

- &postgres
stage: 🐘 Postgres
if: branch = master
if: branch = develop
env: POSTGRES=11
before_install:
- source dev/linux-postgres
Expand Down Expand Up @@ -90,7 +90,7 @@ jobs:
# https://sqlite.org/chronology.html
- &sqlite
stage: 💡 SQLite
if: branch = master
if: branch = develop
env: SQLITE=3.26.0
before_install:
- source dev/linux-sqlite
Expand Down Expand Up @@ -140,7 +140,7 @@ jobs:
# https://hub.docker.com/_/mariadb
- &mysql
stage: 🐬 MySQL
if: branch = master
if: branch = develop
services: docker
env: MYSQL=mysql:8.0
before_install:
Expand Down Expand Up @@ -170,7 +170,7 @@ jobs:
# https://hub.docker.com/r/cjonesy/docker-vertica/tags
- &vertica
stage: 🔺 Vertica
if: branch = master
if: branch = develop
env: VERTICA=9.1.1-0
before_install:
- source dev/linux-vertica
Expand All @@ -189,7 +189,7 @@ jobs:
# https://hub.docker.com/r/exasol/docker-db/tags
- &exasol
stage: ☀️ Exasol
if: branch = master
if: branch = develop
env: EXASOL=6.1.1-d1
before_install:
- source dev/linux-exasol
Expand All @@ -202,7 +202,7 @@ jobs:
# https://hub.docker.com/r/jacobalberty/firebird/tags
- &firebird
stage: 🔥 Firebird
if: branch = master
if: branch = develop
env: FIREBIRD=3.0
before_install:
- source dev/linux-firebird
Expand Down
69 changes: 66 additions & 3 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,68 @@
Revision history for Perl extension App::Sqitch

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
Expand Down Expand Up @@ -163,9 +226,9 @@ Revision history for Perl extension App::Sqitch
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
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.
Expand Down
30 changes: 18 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ things:

* No opinions

Sqitch is not integrated with any framework, ORM, or platform. Rather, it
is a standalone change management system with no opinions about your
database engine, application framework, or your development environment.
Sqitch is not tied to any framework, ORM, or platform. Rather, it is a
standalone change management system with no opinions about your database
engine, application framework, or development environment.

* Native scripting

Expand All @@ -34,19 +34,25 @@ things:
changes from other Sqitch projects. This ensures proper order of
execution, even when you've committed changes to your VCS out-of-order.

* No numbering
* Deployment integrity

Change deployment is managed by maintaining a plan file. As such, there is
no need to number your changes, although you can if you want. Sqitch
doesn't much care how you name your changes.
Sqitch manages changes and dependencies via a plan file, and employs a
[Merkle tree](https://en.wikipedia.org/wiki/Merkle_tree "Wikipedia: “Merkle tree”")
pattern similar to
[Git](https://stackoverflow.com/a/18589734/ "Stack Overflow: “What is the mathematical structure that represents a Git repo”")
and [Blockchain](https://medium.com/byzantine-studio/blockchain-fundamentals-what-is-a-merkle-tree-d44c529391d7 "Medium: “Blockchain Fundamentals #1: What is a Merkle Tree?”")
to ensure deployment integrity.
As such, there is no need to number your changes, although you can if you
want. Sqitch doesn't much care how you name your changes.

* Iterative Development

Up until you tag and release your project, you can modify your change
deployment scripts as often as you like. They're not locked in just
because they've been committed to your VCS. This allows you to take an
iterative approach to developing your database schema. Or, better, you can
do test-driven database development.
Up until you [tag](https://sqitch.org/docs/manual/sqitch-tag/) and
[release](https://sqitch.org/docs/manual/sqitch-tag/) your project, you
can modify your change deployment scripts as often as you like. They're
not locked in just because they've been committed to your VCS. This allows
you to take an iterative approach to developing your database schema. Or,
better, you can do test-driven database development.

Want to learn more? The best place to start is in the tutorials:

Expand Down
1 change: 1 addition & 0 deletions bin/sqitch
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!perl -w -CAS

# VERSION
use POSIX qw(setlocale);
BEGIN {
if ($^O eq 'MSWin32') {
Expand Down
4 changes: 3 additions & 1 deletion dist.ini
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name = App-Sqitch
license = MIT
copyright_holder = "iovation Inc."
version = v1.0.0

[VersionFromModule]
[GatherDir]
[PruneCruft]
[ManifestSkip]
Expand All @@ -17,6 +17,7 @@ copyright_holder = "iovation Inc."
[ConfirmRelease]
[UploadToCPAN]
[RunExtraTests]
[OurPkgVersion]

[CPANFile]
filename = dist/cpanfile
Expand Down Expand Up @@ -50,6 +51,7 @@ Template::Tiny = 0.11
DateTime = 1.04
DateTime::TimeZone = 0
Pod::Escapes = 1.04
IO::Pager = 0.34

[Prereqs / RuntimeRecommends]
Pod::Simple = 1.41
Expand Down
33 changes: 19 additions & 14 deletions dist/sqitch.spec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Name: sqitch
Version: 0.9999
Version: 1.0.0
Release: 1%{?dist}
Summary: Sane database change management
Summary: Sensible database change management
License: MIT
Group: Development/Libraries
URL: https://sqitch.org/
Expand All @@ -14,7 +14,7 @@ BuildRequires: perl(Carp)
BuildRequires: perl(Class::XSAccessor) >= 1.18
BuildRequires: perl(Clone)
BuildRequires: perl(Config)
BuildRequires: perl(Config::GitLike) >= 1.11
BuildRequires: perl(Config::GitLike) >= 1.15
BuildRequires: perl(constant)
BuildRequires: perl(DateTime) >= 1.04
BuildRequires: perl(DateTime::TimeZone)
Expand All @@ -26,7 +26,6 @@ BuildRequires: perl(Encode::Locale)
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Copy)
BuildRequires: perl(File::Find)
BuildRequires: perl(File::HomeDir)
BuildRequires: perl(File::Path)
BuildRequires: perl(File::Spec)
BuildRequires: perl(File::Temp)
Expand Down Expand Up @@ -67,7 +66,7 @@ BuildRequires: perl(Test::Dir)
BuildRequires: perl(Test::Exception)
BuildRequires: perl(Test::File)
BuildRequires: perl(Test::File::Contents) >= 0.20
BuildRequires: perl(Test::MockModule) >= 0.05
BuildRequires: perl(Test::MockModule) >= 0.17
BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(Test::NoWarnings) >= 0.083
BuildRequires: perl(Test::Warn)
Expand All @@ -86,7 +85,7 @@ BuildRequires: perl(warnings)
Requires: perl(Class::XSAccessor) >= 1.18
Requires: perl(Clone)
Requires: perl(Config)
Requires: perl(Config::GitLike) >= 1.11
Requires: perl(Config::GitLike) >= 1.15
Requires: perl(constant)
Requires: perl(DateTime) >= 1.04
Requires: perl(DateTime::TimeZone)
Expand All @@ -96,7 +95,6 @@ Requires: perl(Encode)
Requires: perl(Encode::Locale)
Requires: perl(File::Basename)
Requires: perl(File::Copy)
Requires: perl(File::HomeDir)
Requires: perl(File::Path)
Requires: perl(File::Temp)
Requires: perl(Getopt::Long)
Expand Down Expand Up @@ -182,7 +180,7 @@ rm -rf $RPM_BUILD_ROOT
%config %{etcdir}/*

%package pg
Summary: Sane database change management for PostgreSQL
Summary: Sensible database change management for PostgreSQL
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: postgresql >= 8.4.0
Expand All @@ -199,7 +197,7 @@ package bundles the Sqitch PostgreSQL support.
# No additional files required.

%package sqlite
Summary: Sane database change management for SQLite
Summary: Sensible database change management for SQLite
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: sqlite
Expand All @@ -216,7 +214,7 @@ package bundles the Sqitch SQLite support.
# No additional files required.

%package oracle
Summary: Sane database change management for Oracle
Summary: Sensible database change management for Oracle
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: oracle-instantclient11.2-sqlplus
Expand All @@ -233,7 +231,7 @@ package bundles the Sqitch Oracle support.
# No additional files required.

%package mysql
Summary: Sane database change management for MySQL
Summary: Sensible database change management for MySQL
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: mysql >= 5.0.0
Expand All @@ -251,7 +249,7 @@ package bundles the Sqitch MySQL support.
# No additional files required.

%package firebird
Summary: Sane database change management for Firebird
Summary: Sensible database change management for Firebird
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: firebird >= 2.5.0
Expand All @@ -271,7 +269,7 @@ package bundles the Sqitch Firebird support.
# No additional files required.

%package vertica
Summary: Sane database change management for Vertica
Summary: Sensible database change management for Vertica
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: libverticaodbc.so
Expand All @@ -289,7 +287,7 @@ Sqitch Vertica support.
# No additional files required.

%package snowflake
Summary: Sane database change management for Snowflake
Summary: Sensible database change management for Snowflake
Group: Development/Libraries
Requires: sqitch >= %{version}
Requires: snowflake-odbc
Expand All @@ -307,6 +305,13 @@ also be installed.
# No additional files required.

%changelog
* Tue Jun 4 2019 David E. Wheeler <david.wheeler@iovation.com> 1.0.0-1
- Upgrade to v1.0.0.
- Config::GitLike now requires v1.15.
- Test::MockModule now requires v0.17.
- Removed File::HomeDir.
- Changed "sane" to "sensible" in the summary.

* Fri Feb 1 2019 David E. Wheeler <david.wheeler@iovation.com> 0.9999-1
- Upgrade to v0.9999.
- Added requirement for IO::Pager 0.34 or higher.
Expand Down
1 change: 0 additions & 1 deletion inc/Module/Build/Sqitch.pm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ sub new {
$p{requires}{'Win32::Locale'} = 0;
$p{requires}{'Win32::ShellQuote'} = 0;
$p{requires}{'DateTime::TimeZone::Local::Win32'} = 0;
$p{build_requires}{'Config::GitLike'} = '1.15';
}
if (eval { require Hash::Merge; 1 } && $Hash::Merge::VERSION eq '0.298') {
warn join "\n", (
Expand Down
Loading

0 comments on commit 21fd119

Please sign in to comment.