From 99abce7c96326e5aa14afc6c6ce00c78cf2796a5 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 16:13:04 +0200 Subject: [PATCH 1/6] Added scrutinizer config --- .scrutinizer.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .scrutinizer.yml diff --git a/.scrutinizer.yml b/.scrutinizer.yml new file mode 100644 index 0000000..e69de29 From 9a6b69dd19e3875e74c7ecdf63f01bd2e6636a2f Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 16:20:37 +0200 Subject: [PATCH 2/6] Added scrutinizer config data, lowered requirements to PHP 7.0 --- .scrutinizer.yml | 47 +++++++++++++++++++++++++++++++++++++++++++++++ composer.json | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index e69de29..73d4ca9 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -0,0 +1,47 @@ +checks: + php: + code_rating: true + duplication: true + +filter: + excluded_paths: + - tests/* + +build: + nodes: + php70: + environment: + php: + version: 7.0.20 + tests: + override: + - php-scrutinizer-run + - + command: vendor/bin/phpunit --coverage-clover=coverage70 + coverage: + file: coverage70 + format: php-clover + php71: + environment: + php: + version: 7.1.12 + tests: + override: + - php-scrutinizer-run + - + command: vendor/bin/phpunit --coverage-clover=coverage71 + coverage: + file: coverage71 + format: php-clover + php72: + environment: + php: + version: 7.2.0 + tests: + override: + - php-scrutinizer-run + - + command: vendor/bin/phpunit --coverage-clover=coverage72 + coverage: + file: coverage72 + format: php-clover \ No newline at end of file diff --git a/composer.json b/composer.json index 7cfc15f..ab4c028 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ } ], "require": { - "php": ">=7.1", + "php": ">=7.0", "illuminate/database": "5.*" }, "require-dev": { From dc547268d58483a7f8b1baffd8d63b188233c352 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 16:32:45 +0200 Subject: [PATCH 3/6] Updated readme, lowered orchestra requirements to allow PHP7.0 --- README.md | 2 +- composer.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 405078d..e334207 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Eloquent Versioning -[![Latest Stable Version](https://poser.pugx.org/proai/eloquent-versioning/v/stable)](https://packagist.org/packages/proai/eloquent-versioning) [![Total Downloads](https://poser.pugx.org/proai/eloquent-versioning/downloads)](https://packagist.org/packages/proai/eloquent-versioning) [![Latest Unstable Version](https://poser.pugx.org/proai/eloquent-versioning/v/unstable)](https://packagist.org/packages/proai/eloquent-versioning) [![License](https://poser.pugx.org/proai/eloquent-versioning/license)](https://packagist.org/packages/proai/eloquent-versioning) +[![Build status](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/build.png?b=master) [![Quality score](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/quality-score.png?b=master) [![Latest Stable Version](https://poser.pugx.org/proai/eloquent-versioning/v/stable)](https://packagist.org/packages/proai/eloquent-versioning) [![Total Downloads](https://poser.pugx.org/proai/eloquent-versioning/downloads)](https://packagist.org/packages/proai/eloquent-versioning) [![Latest Unstable Version](https://poser.pugx.org/proai/eloquent-versioning/v/unstable)](https://packagist.org/packages/proai/eloquent-versioning) [![License](https://poser.pugx.org/proai/eloquent-versioning/license)](https://packagist.org/packages/proai/eloquent-versioning) This is an extension for the Eloquent ORM to support versioning. You can specify attributes as versioned. If an attribute is specified as versioned the value will be saved in a separate version table on each update. It is possible to use timestamps and soft deletes with this feature. diff --git a/composer.json b/composer.json index ab4c028..8db101e 100644 --- a/composer.json +++ b/composer.json @@ -25,10 +25,10 @@ "illuminate/database": "5.*" }, "require-dev": { - "phpunit/phpunit": "^7.0", + "phpunit/phpunit": "^6.0", "mockery/mockery": "^1.0", - "orchestra/testbench": "^3.6", - "orchestra/database": "^3.6" + "orchestra/testbench": "^3.5", + "orchestra/database": "^3.5" }, "autoload": { "psr-4": { From d8a7760b5432fa6e4ffd0f7f84ab5dabaa05ef44 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 17:52:49 +0200 Subject: [PATCH 4/6] Changed back to phpunit 7, orchestra 3.6 and PHP 7.1 because of broken tests --- .scrutinizer.yml | 12 ------------ composer.json | 8 ++++---- tests/TestCase.php | 1 - 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 73d4ca9..5e16797 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -9,18 +9,6 @@ filter: build: nodes: - php70: - environment: - php: - version: 7.0.20 - tests: - override: - - php-scrutinizer-run - - - command: vendor/bin/phpunit --coverage-clover=coverage70 - coverage: - file: coverage70 - format: php-clover php71: environment: php: diff --git a/composer.json b/composer.json index 8db101e..7cfc15f 100644 --- a/composer.json +++ b/composer.json @@ -21,14 +21,14 @@ } ], "require": { - "php": ">=7.0", + "php": ">=7.1", "illuminate/database": "5.*" }, "require-dev": { - "phpunit/phpunit": "^6.0", + "phpunit/phpunit": "^7.0", "mockery/mockery": "^1.0", - "orchestra/testbench": "^3.5", - "orchestra/database": "^3.5" + "orchestra/testbench": "^3.6", + "orchestra/database": "^3.6" }, "autoload": { "psr-4": { diff --git a/tests/TestCase.php b/tests/TestCase.php index f89c0dc..d1ee87c 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,7 +2,6 @@ namespace ProAI\Versioning\Tests; -use Orchestra\Database\ConsoleServiceProvider; use Orchestra\Testbench\TestCase as BaseTestCase; class TestCase extends BaseTestCase From f6217db42395ece2720d9680754ef8d83870b6e7 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 18:03:48 +0200 Subject: [PATCH 5/6] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e334207..2aafefa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Eloquent Versioning -[![Build status](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/build.png?b=master) [![Quality score](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/quality-score.png?b=master) [![Latest Stable Version](https://poser.pugx.org/proai/eloquent-versioning/v/stable)](https://packagist.org/packages/proai/eloquent-versioning) [![Total Downloads](https://poser.pugx.org/proai/eloquent-versioning/downloads)](https://packagist.org/packages/proai/eloquent-versioning) [![Latest Unstable Version](https://poser.pugx.org/proai/eloquent-versioning/v/unstable)](https://packagist.org/packages/proai/eloquent-versioning) [![License](https://poser.pugx.org/proai/eloquent-versioning/license)](https://packagist.org/packages/proai/eloquent-versioning) +[![Build status](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/build.png?b=master)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/) [![Quality score](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/ProAI/eloquent-versioning/) [![Latest Stable Version](https://poser.pugx.org/proai/eloquent-versioning/v/stable)](https://packagist.org/packages/proai/eloquent-versioning) [![Total Downloads](https://poser.pugx.org/proai/eloquent-versioning/downloads)](https://packagist.org/packages/proai/eloquent-versioning) [![Latest Unstable Version](https://poser.pugx.org/proai/eloquent-versioning/v/unstable)](https://packagist.org/packages/proai/eloquent-versioning) [![License](https://poser.pugx.org/proai/eloquent-versioning/license)](https://packagist.org/packages/proai/eloquent-versioning) This is an extension for the Eloquent ORM to support versioning. You can specify attributes as versioned. If an attribute is specified as versioned the value will be saved in a separate version table on each update. It is possible to use timestamps and soft deletes with this feature. From 6c0a0a6397f542c9e03407953d5697d900035087 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Sat, 26 May 2018 18:06:42 +0200 Subject: [PATCH 6/6] Minor fixes to readme --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2aafefa..f7c7ea7 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,14 @@ Schema::create('users', function(Blueprint $table) { }); Schema::create('users_version', function(Blueprint $table) { - $table->integer('ref_id')->primary(); - $table->integer('version')->primary(); + $table->integer('ref_id')->unsigned(); + $table->integer('version')->unsigned(); $table->string('email'); $table->string('city'); $table->timestamp('updated_at'); $table->timestamp('deleted_at'); + + $table->primary(['ref_id', 'version']); }); ... @@ -90,7 +92,7 @@ By default the query builder will fetch the latest version (e. g. `User::find(1) * `allVersions()` returns all versions of the queried items
Example: `User::allVersions()->get()` will return all versions of all users -* `moment(Carbon)` returns a specific version, closest but lower than the input date
Example: `User::moment(Carbon::now()->subWeek()->find(1)` will return the version at that point in time. +* `moment(Carbon)` returns a specific version, closest but lower than the input date
Example: `User::moment(Carbon::now()->subWeek())->find(1)` will return the version at that point in time. #### Create, update and delete records