Skip to content

Commit

Permalink
Raise min version to PHP 7.3, check compatibility PHP 8.3 (#346)
Browse files Browse the repository at this point in the history
  • Loading branch information
terabytesoftw authored Jun 16, 2024
1 parent d697c96 commit dec1ea0
Show file tree
Hide file tree
Showing 30 changed files with 99 additions and 85 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2
61 changes: 45 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,46 @@
on:
- pull_request
- push
pull_request:
paths-ignore:
- 'docs/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- 'infection.json.dist'
- 'psalm.xml'

push:
paths-ignore:
- 'docs/**'
- 'README.md'
- 'CHANGELOG.md'
- '.gitignore'
- '.gitattributes'
- 'infection.json.dist'
- 'psalm.xml'

name: build

jobs:
tests:
name: PHP ${{ matrix.php-version }} / ES ${{ matrix.es-version }}
name: PHP ${{ matrix.php }} / ES ${{ matrix.es }}

env:
extensions: curl, mbstring, dom, intl
key: cache-v1

runs-on: ubuntu-latest

strategy:
matrix:
php-version:
- 5.6
- 7.0
- 7.1
- 7.2
php:
- 7.3
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3

es-version:
es:
- 8.1.3
- 7.14.0
- 7.7.0
Expand All @@ -32,24 +49,24 @@ jobs:

steps:
- name: Service elastisearch 8.1.3.
if: matrix.es-version == '8.1.3'
if: matrix.es == '8.1.3'
run: |
docker network create somenetwork
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -e "http.publish_host=127.0.0.1" -e "transport.host=127.0.0.1" -e "indices.id_field_data.enabled=true" -e "xpack.security.enabled=false" elasticsearch:${{ matrix.es-version }}
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -e "http.publish_host=127.0.0.1" -e "transport.host=127.0.0.1" -e "indices.id_field_data.enabled=true" -e "xpack.security.enabled=false" elasticsearch:${{ matrix.es }}
- name: Service elastisearch < 8.1.3.
if: matrix.es-version != '8.1.3'
if: matrix.es != '8.1.3'
run: |
docker network create somenetwork
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -e "http.publish_host=127.0.0.1" -e "transport.host=127.0.0.1" elasticsearch:${{ matrix.es-version }}
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -e "http.publish_host=127.0.0.1" -e "transport.host=127.0.0.1" elasticsearch:${{ matrix.es }}
- name: Checkout.
uses: actions/checkout@v3

- name: Install PHP with extensions.
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
ini-values: date.timezone='UTC'

Expand All @@ -60,4 +77,16 @@ jobs:
run: wget --retry-connrefused --waitretry=3 --timeout=30 -t 10 -O /dev/null http://127.0.0.1:9200

- name: Run tests with phpunit.
run: ES_VERSION=${{ matrix.es-version }} vendor/bin/phpunit
if: matrix.php != '8.1'
run: ES_VERSION=${{ matrix.es }} vendor/bin/phpunit --colors=always

- name: Run tests with phpunit and generate coverage.
if: matrix.php == '8.1'
run: ES_VERSION=${{ matrix.es }} vendor/bin/phpunit --coverage-clover=coverage.xml --colors=always

- name: Upload coverage to Codecov.
if: matrix.php == '8.1'
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ Documentation is at [docs/guide/README.md](docs/guide/README.md).
[![Latest Stable Version](https://poser.pugx.org/yiisoft/yii2-elasticsearch/v/stable.png)](https://packagist.org/packages/yiisoft/yii2-elasticsearch)
[![Total Downloads](https://poser.pugx.org/yiisoft/yii2-elasticsearch/downloads.png)](https://packagist.org/packages/yiisoft/yii2-elasticsearch)
[![Build Status](https://travis-ci.com/yiisoft/yii2-elasticsearch.svg?branch=master)](https://travis-ci.com/yiisoft/yii2-elasticsearch)
[![codecov](https://codecov.io/gh/yiisoft/yii2-elasticsearch/graph/badge.svg?token=oi71bPc1SU)](https://codecov.io/gh/yiisoft/yii2-elasticsearch)

Requirements
------------

- PHP 7.3 or higher.

Depending on the version of Elasticsearch you are using you need a different version of this extension.

- For Elasticsearch 1.6.0 to 1.7.6 use extension version 2.0.x
Expand Down
8 changes: 4 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@
}
],
"require": {
"yiisoft/yii2": "~2.0.14",
"php": ">=7.3",
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"paragonie/random_compat": ">=1"
"yiisoft/yii2": "~2.0.14"
},
"require-dev": {
"phpunit/phpunit": "4.8.27|~5.7.21|^6.2"
"phpunit/phpunit": "^9.6"
},
"autoload": {
"psr-4": { "yii\\elasticsearch\\": "" }
"psr-4": { "yii\\elasticsearch\\": "src" }
},
"config": {
"allow-plugins": {
Expand Down
37 changes: 26 additions & 11 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,13 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<phpunit bootstrap="./tests/bootstrap.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false">
<testsuites>
<testsuite name="Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="./tests/bootstrap.php"
colors="true" convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
>

<php>
<ini name="error_reporting" value="-1"/>
</php>

<testsuites>
<testsuite name="Yii2-ElasticSearch">
<directory>./tests</directory>
</testsuite>
</testsuites>

<coverage>
<include>
<directory>./src</directory>
</include>
</coverage>
</phpunit>

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion tests/ActiveDataProviderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

class ActiveDataProviderTest extends TestCase
{
public function setUp()
protected function setUp(): void
{
parent::setUp();

Expand Down
4 changes: 2 additions & 2 deletions tests/ActiveQueryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
class ActiveQueryTest extends TestCase
{
protected function setUp()
protected function setUp(): void
{
parent::setUp();

Expand Down Expand Up @@ -42,4 +42,4 @@ public function testColumn()
$result = $activeQuery->scalar('name', $this->getConnection());
$this->assertEquals('item1', $result);
}
}
}
6 changes: 3 additions & 3 deletions tests/ActiveRecordTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function getOrderItemClass()
return OrderItem::className();
}

public function setUp()
protected function setUp(): void
{
parent::setUp();

Expand Down Expand Up @@ -163,7 +163,7 @@ public function testSearch()
$this->assertTrue($customer instanceof Customer);
$this->assertEquals(2, $customer->_id);
}

public function testSuggestion()
{
$result = Customer::find()->addSuggester('customer_name', [
Expand All @@ -175,7 +175,7 @@ public function testSuggestion()

$this->assertCount(3, $result['suggest']['customer_name'][0]['options']);
}

public function testGetDb()
{
$this->mockApplication(['components' => ['elasticsearch' => Connection::className()]]);
Expand Down
5 changes: 3 additions & 2 deletions tests/ActiveRecordTestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -1141,13 +1141,14 @@ public function testViaWithCallable()
$cheapItems = $order->cheapItemsUsingViaWithCallable;

$this->assertCount(2, $expensiveItems);

$expensiveItemIds = [
$expensiveItems[0]->_id,
$expensiveItems[1]->_id,
];
$this->assertContains(4, $expensiveItemIds);
$this->assertContains(5, $expensiveItemIds);

$this->assertContains('4', $expensiveItemIds);
$this->assertContains('5', $expensiveItemIds);
$this->assertCount(1, $cheapItems);
$this->assertEquals(3, $cheapItems[0]->_id);
}
Expand Down
2 changes: 1 addition & 1 deletion tests/CommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CommandTest extends TestCase
/** @var Command */
private $command;

protected function setUp()
protected function setUp(): void
{
parent::setUp();
$this->command = $this->getConnection()->createCommand();
Expand Down
2 changes: 1 addition & 1 deletion tests/ConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class ConnectionTest extends TestCase
*/
private $connection;

protected function setUp()
protected function setUp(): void
{
parent::setUp();
$this->connection = $this->getConnection();
Expand Down
4 changes: 2 additions & 2 deletions tests/ElasticsearchTargetTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function testExport()
$this->assertArrayHasKey('category', $source);
}

protected function setUp()
protected function setUp(): void
{
parent::setUp();

Expand All @@ -61,7 +61,7 @@ protected function setUp()
]);
}

protected function tearDown()
protected function tearDown(): void
{
$command = $this->getConnection()->createCommand();
$command->deleteIndex($this->index);
Expand Down
2 changes: 1 addition & 1 deletion tests/QueryBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class QueryBuilderTest extends TestCase
*/
private $version;

public function setUp()
protected function setUp(): void
{
parent::setUp();
$command = $this->getConnection()->createCommand();
Expand Down
3 changes: 2 additions & 1 deletion tests/QueryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
class QueryTest extends TestCase
{
protected function setUp()
protected function setUp(): void
{
parent::setUp();

Expand Down Expand Up @@ -457,6 +457,7 @@ public function testRuntimeMappings()
// Check that Elasticsearch is version 7.11.0 or later before running this test
$elasticsearchInfo = $this->getConnection()->get('/');
if(!version_compare($elasticsearchInfo['version']['number'], '7.11.0', '>=')) {
$this->expectNotToPerformAssertions();
return;
}

Expand Down
10 changes: 2 additions & 8 deletions tests/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,6 @@
use yii\helpers\ArrayHelper;
use Yii;

// backward compatibility
if (!class_exists('\PHPUnit\Framework\TestCase')) {
class_alias('\PHPUnit_Framework_TestCase', '\PHPUnit\Framework\TestCase');
}


/**
* This is the base class for all yii framework unit tests.
*/
Expand Down Expand Up @@ -40,7 +34,7 @@ public static function getParam($name, $default = null)
* Clean up after test.
* By default the application created with [[mockApplication]] will be destroyed.
*/
protected function tearDown()
protected function tearDown(): void
{
parent::tearDown();
$this->destroyApplication();
Expand Down Expand Up @@ -86,7 +80,7 @@ protected function destroyApplication()
Yii::$container = new Container();
}

protected function setUp()
protected function setUp(): void
{
$this->mockApplication();

Expand Down
32 changes: 0 additions & 32 deletions tests/compatibility.php

This file was deleted.

0 comments on commit dec1ea0

Please sign in to comment.