cebe / php-openapi

Read and write OpenAPI yaml/json files and make the content accessible in PHP objects.
MIT License
466 stars 87 forks source link

Added missing return types to fix deprecation warnings in PHP 8.1 #143

Closed acelaya closed 2 years ago

acelaya commented 2 years ago

Closes #141

acelaya commented 2 years ago

@simPod every change in this PR is compatible with PHP 7.1

simPod commented 2 years ago

Hm, I see, mb. Though these are BC breaks so should go into 1.6 I guess.

I'd propose to have these merged into 1.5:

  1. https://github.com/cebe/php-openapi/pull/145
  2. https://github.com/cebe/php-openapi/pull/145

and maybe also:

  1. https://github.com/cebe/php-openapi/pull/123

Then this can be rebased with passing CI for v1.6 I'd say

garethellis36 commented 2 years ago

Hello - is there any possibility of this being merged and 1.6 being released soon please? If there's anything still pending that a new PR can address, please let me know and I'm happy to help. Thanks! :)

simPod commented 2 years ago

https://github.com/cebe/php-openapi/pull/134#issuecomment-1025575087

Sweetchuck commented 2 years ago

@acelaya The patch from this PR does not apply any more to the latest master (Commits on Feb 10, 2022 8bbbcf1aa3314c535ac315bcd4286ca9cded8a8a)

The latest commit this PR works with is 41db38d16ba157d4a1002b3087f43be3dabf9a2e Dec 21 2021

I don't want to send a PR to a PR (I really don't like this workflow on GitHub) After I resolved the conflicts. here is the result: .github/workflows/php.yml

name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  phpunit:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        php:
          - "7.1"
          - "7.2"
          - "7.3"
          - "7.4"
          - "8.0"
          - "8.1"
        dependencies:
          - "lowest"
          - "highest"
        symfony-yaml: ['^3.4', '^4', '^5', '^6']
        include:
          - os: "windows-latest"
            php: "8.0"
            dependencies: "highest"
            symfony-yaml: '5.4.2'
          - os: "macos-latest"
            php: "8.0"
            dependencies: "highest"
            symfony-yaml: '^5'
        exclude:
          # symfony/yaml v5 does not run on PHP 7.1
          - php: '7.1'
            symfony-yaml: '^5'
          # symfony/yaml v6 does not run on PHP 7.*
          - php: '7.1'
            symfony-yaml: '^6'
          - php: '7.2'
            symfony-yaml: '^6'
          - php: '7.3'
            symfony-yaml: '^6'
          - php: '7.4'
            symfony-yaml: '^6'
          # symfony/yaml v3.4 is not compatible with PHP 8.0 but has no upper-bound, so it installs on it
          - php: '8.0'
            symfony-yaml: '^3.4'

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          coverage: pcov
          tools: composer:v2

      - name: Require specific symfony/yaml version
        run: "composer require symfony/yaml:'${{ matrix.symfony-yaml }}' --prefer-dist --no-interaction --ansi --no-install"

      - name: "Install dependencies with Composer"
        uses: "ramsey/composer-install@v2"
        with:
          dependency-versions: "${{ matrix.dependencies }}"

      - name: Validate test data
        run: make lint

      - name: PHPUnit tests
        run: make test

      - name: Code coverage
        run: make coverage

And thank you for the work you have done so far.