diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ab0c251 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +/.github export-ignore +/build export-ignore +/docs export-ignore +/tests export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/composer.lock export-ignore +/infection.json export-ignore +/phpunit.xml export-ignore diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..e9d271d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "composer" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml new file mode 100644 index 0000000..f2ef4a5 --- /dev/null +++ b/.github/workflows/php.yml @@ -0,0 +1,112 @@ +name: PHP + +on: + push: + branches: [ master ] + paths-ignore: + - '**.md' + pull_request: + branches: [ master ] + paths-ignore: + - '**.md' + +jobs: + tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + ini-values: zend.assertions=1, assert.exception=1 + coverage: xdebug + env: + update: true + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Tests + run: composer run-script phpunit + + - name: Codecov + uses: codecov/codecov-action@v1.0.14 + with: + file: './build/phpunit.clover.xml' + + mutation: + runs-on: ubuntu-latest + needs: [tests] + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + ini-values: zend.assertions=1, assert.exception=1 + coverage: xdebug + env: + update: true + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Mutation tests + run: composer run-script infection + + phpstan: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + ini-values: zend.assertions=1, assert.exception=1 + env: + update: true + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Phpstan + run: composer run-script phpstan + + codestyle: + runs-on: ubuntu-latest + if: ${{ false }} + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + env: + update: true + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Codestyle + run: composer run-script codestyle diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..88cbd8f --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at peldax@infinityloop.dev. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..03856e9 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | PHP version | Status | +| ------- | ------------------ |-------------|--------| +| 1.x | :heavy_check_mark: | 8.0 | Maintained and actively improved with new features. + +## Reporting a Vulnerability + +Report security bugs by emailing the maintainer at peldax@gmail.com. + +The maintainer will respond to your email as soon as he can, usually within 24 hours. +If the vulnerability is accepted, a bugfix will be released to all actively maintained versions. + +Depending on the severity, GitHub security advisory or `roave/security-advisories` can be used to inform users about the important bugfix release. diff --git a/infection.json b/infection.json new file mode 100644 index 0000000..f4901e0 --- /dev/null +++ b/infection.json @@ -0,0 +1,23 @@ +{ + "source": { + "directories": [ + "src" + ] + }, + "timeout": 30, + "logs": { + "text": "build/infection.log", + "summary": "build/summary.log", + "perMutator": "build/per-mutator.md" + }, + "tmpDir": "/tmp/infection", + "minMsi": 65, + "minCoveredMsi": 85, + "mutators": { + "@default": true, + "global-ignoreSourceCodeByRegex": [ + "\\\\assert\\(.*\\);" + ] + }, + "testFramework":"phpunit" +} diff --git a/src/Entity.php b/src/Entity.php index 94ace1f..69a50b8 100644 --- a/src/Entity.php +++ b/src/Entity.php @@ -7,4 +7,4 @@ interface Entity { -} \ No newline at end of file +}