Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Infection\Mutator\Mutator to a separate package #1963

Merged
merged 6 commits into from
May 15, 2024

Conversation

maks-rafalko
Copy link
Member

@maks-rafalko maks-rafalko commented May 14, 2024

This is a follow up PR to support custom mutators, see #1686

In order to provide our users (developers who are going to write custom mutators) a convenient interface, we need to extract it out of Infection core.

Thus, here is a new package: https://github.com/infection/mutator

Now, Mutator interface is there, and if someone decides to create a package with custom mutators, they will rely on this highly abstract and stable infection/mutator package, rather than relying on instable (in terms of Package Design) infection/infection.

On the other side, infection/infection now depends on infection/mutator as well.

test-framework-adapter(1)

If you need to understand package design principles and why I'm doing it, see

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add tests to make sure this change works as expected?

@maks-rafalko maks-rafalko enabled auto-merge (squash) May 14, 2024 22:57
@maks-rafalko maks-rafalko merged commit 18a92e9 into master May 15, 2024
55 checks passed
@maks-rafalko maks-rafalko deleted the feature/infection-mutator branch May 15, 2024 07:25
Copy link
Member

@sanmai sanmai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

github-merge-queue bot pushed a commit to Lendable/json-serializer that referenced this pull request May 28, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [infection/infection](https://togithub.com/infection/infection) |
`^0.28.1` -> `^0.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/infection%2finfection/0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/infection%2finfection/0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/infection%2finfection/0.28.1/0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/infection%2finfection/0.28.1/0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>infection/infection (infection/infection)</summary>

###
[`v0.29.0`](https://togithub.com/infection/infection/blob/HEAD/CHANGELOG.md#0290-2024-05-28)

[Compare
Source](https://togithub.com/infection/infection/compare/0.28.1...0.29.0)

[Full
Changelog](https://togithub.com/infection/infection/compare/0.28.1...0.29.0)

**Added:**

- Support custom mutators by
[@&#8203;vss414](https://togithub.com/vss414) in
[infection/infection#1686
- Custom mutator generator by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1969

Read about how to create custom mutators:
https://infection.github.io/guide/custom-mutators.html

**Changed:**

- Move `Infection\Mutator\Mutator` to a separate package by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1963
- Make `Mutator::getDefinition` return type non-nullable by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1958
- Enable Rector's `AddCoversClassAttributeRector` rule by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1962
- Mention Discord instead of Slack in issue github template by
[@&#8203;staabm](https://togithub.com/staabm) in
[infection/infection#1951
- test: Force mutators to include remedies by
[@&#8203;theofidry](https://togithub.com/theofidry) in
[infection/infection#1954
- Use the latest composer 2 to prevent issue with incompatibility for
Box and composer 2.1 by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1957
- Use the latest v1 test checker action by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1960
- Upgrade Rector and fix new issues by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1961
- Use new PHP-CS-Fixer with parallelization by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1964
- Remove our own custom FQCN visitor as we already use php-parser's
`NameResolver` visitor by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1967
- Replace deprecated constant
`NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN` with
`NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN` by
[@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1968
- Remove our own `ParentConnectorVisitor` and use `nikic-phpparser`'s
one by [@&#8203;maks-rafalko](https://togithub.com/maks-rafalko) in
[infection/infection#1970

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Lendable/json-serializer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants